Arch64 问答 (简体中文)

From ArchWiki

Jump to: navigation, search


i18n
English
Español
Ελληνικά
Italiano
简体中文
Русский

下面是关于Arch64的问答列表。

Contents

如何安装Arch64?

使用官方安装iso光盘.

移植完整吗?是否拥有所有Arch32环境下的软件包?

Core和Extra软件仓库都已移植,绝大部分都已是最新,只是滞后Arch Linux i686几小时或者几天。我们的TU正努力移植Community仓库。

目前的移植已经可以应付日常的桌面和服务器环境的使用。

64-bit是否意味着速度的飙升?

对于使用64-bit CPU寄存器(大型数据库之类)的应用,的确很多是这样的。某些多媒体应用程序的运行也明显更快。如果你知道哪个应用程序在使用SSE3扩展时运行更快,你可以自己重建这个软件包。我们用SSE2(from march=x86_64)和-O2优化参数进行编译。 详情请阅读http://forums.gentoo.org/viewtopic.php?t=221045 或者 http://www.thejemreport.com/mambo/content/view/74/74/

对于其它程序:如果需要等待输入的话,速度上不会有什么区别。

进一步详情请看Arch64_ToDoS。你将可以找到一个arch32/arch64软件包版本的比较列表。

对于个别启动问题请试试这些特殊内核启动标记:http://www.x86-64.org/lists/discuss/msg03747.html (死链接)

我现在运行着3个64-bit的Arch,它们在高负荷下运行得明显更好。It just seems to deliver more punch.

当你的glibc从2.4版本以下更新时请当心!

当你的glibc从2.4版本以下更新时,必须分步执行。因此仅当pacman -Su成功执行后才单独执行pacman -Sy glibc。否则库迁移可能会失败,而你只能用pacman.static修复。

如何提交bug?

请用Arch的flyspray错误跟踪系统提交。如果你认为这是和移植有关的问题,请在标题里注明x86_64!

有邮件列表吗?

当然,这里有个一般的关于arch移植的邮件列表

我该设置哪个仓库给pacman使用?

所有仓库都支持移植。

我该如何获得Arch64的PKGBUILD?

和Arch 32-bit一样,我们有ABS。缺省保存在/var/absabs从archlinux.org获取所有标记为CURRENT-64的CVS条目。

我该如何用已有的32-bit PKGBUILD来创建新的Arch64软件包?

我们有公有Arch32的PKGBUILD。你可以从CVS获取还未移植的32-bit PKGBUILD:

http://www.archlinux.org/cvs/

我该如何修补已有的PKGBUILD使它可以在Arch64下使用?

我们在所有移植了的包里加入这个变量:

arch=('i686' 'x86_64') 

直接修补source和md5sum区域使得可以使用完全不同的来源:

[ "$CARCH" = "x86_64" ] && source=(${source[@]} 'other source')
[ "$CARCH" = "x86_64" ] && md5sums=(${md5sums[@]} 'other md5sum')

在build区域可以这样修改:

[ "$CARCH" = "x86_64" ] && (patch -Np0 -i ../foo_x86_64.patch || return 1)

或者你需要更大的修改:

if [ "$CARCH" = "x86_64" ]; then
    configure/patch/sed      # for x86_64
  else configure/patch/sed   # for i686
fi

对于开发版本:

cvs commit -m "x86_64 updated/fixed or whatever"
cvs tag -cFR CURRENT-64 foo-package-directory (even for extra, community, unstable and testing)

Arch64缺少什么?

下列应用程序已证实不兼容64-bit:

  • 没有Sun自带的Java plugin;KDE的 Konqueror内建有自己的原生运行64-bit JavaPlugin!这是近来浏览JavaApplets的最佳解决方法。另外还有一个gcj-web-plugin (AUR中叫gcjplugin)可以在Gecko核心的浏览器里运行Java-Applets。
  • 只有extra仓库里的GPL gnash和swfdec部分真正支持的x86_64 Flash。
  • 闭源应用如Skype ── 它们没有提供100%的statically built binaries,所以还是需要32-bit的库。
  • 使用了x86 32-bit汇编代码的软件包(某些模拟器如zsnes和syslinux)


几乎所有软件都可以移植。如果你发现某个Arch32软件包可以在x86_64下编译而又没有移植,(例如你在其它64-bit发行版里发现不需要multilibs可以运行的),请联系开发人员。

我可以在Arch64下编译给i686用的32-bit软件包吗?

可以。你需要一个可用的i686 chroot (推荐在Arch64里使用i686 iso的"quickinstall"来安装)。从current仓库安装"linux32" 封装包,使得chroot象一个真正的i686系统。然后用这个脚本以root身份登录到chroot环境:

#!/bin/bash
mount --bind /dev /path-to-your-chroot/dev
mount --bind /dev/pts /path-to-your-chroot/dev/pts
mount --bind /dev/shm /path-to-your-chroot/dev/shm
mount -t proc none /path-to-your-chroot/proc
mount -t sysfs none /path-to-your-chroot/sys
linux32 chroot /path-to-your-chroot

如果你在x86_64宿主系统里保留了源码,你可以在脚本里再加入

"mount --bind /path-to-your-stored-sources /path-to-your-chroot/path-to-your-stored-sources" 

使得宿主可以共享源码给chroot系统,使得可以在/etc/makepkg.conf中用来创建软件包。

我能否在Arch64里运行32-bit应用程序?

可以!

不过: 我们的目标是成为最顶尖的发行版!32-bit已经过时。我们希望Arch64更先进,更纯粹。因此我们没有Multilib系统。我们不会在核心仓库里加入任何用来改善32-bit兼容性的软件包。也许我们会将它们放到AUR或者社区仓库。 不要期望开发人员对Arch64上运行32-bit应用程序会提供任何支持!

启动到Arch64,startx,打开一个终端:

xhost +local:
su
mount /dev/sda1 /mnt/arch32
mount --bind /proc /mnt/arch32/proc
chroot /mnt/arch32
su your32bitusername
/usr/bin/command-you want # or eg: /opt/mozilla/bin/firefox

某些32-bit应用程序(例如OpenOffice)可能需要其它绑定。下面几行可以放到rc.local里以确保满足所有32-bit应用程序的需要(假设fstab里已经挂载/mnt/arch32于):

mount --bind /dev /mnt/arch32/dev
mount --bind /dev/pts /mnt/arch32/dev/pts
mount --bind /dev/shm /mnt/arch32/dev/shm
mount --bind /proc /mnt/arch32/proc
mount --bind /proc/bus/usb /mnt/arch32/proc/bus/usb
mount --bind /sys /mnt/arch32/sys
mount --bind /tmp /mnt/arch32/tmp
#如果你不使用同一个home文件夹的话,可以注释掉下面这行
mount --bind /home /mnt/arch32/home

然后在终端里输入:

xhost +localhost
sudo chroot /mnt/arch32 su your32bitusername /opt/openoffice/program/soffice

我可以无需重新安装将我的系统从i686升级/切换到x86_64吗?

不可以。不过,你可以用Arch64安装光盘启动系统,挂载磁盘,备份所有你希望保留的非32-bit二进制文件(例如/home和/etc,然后开始安装。

Personal tools