Arch 官方安装指南 (简体中文) (Deprecated)

From ArchWiki

Jump to: navigation, search


Article summary
这是正式的安装指南文件,不太适合新手
已有的语言版本
English
简体中文
正體中文
Česky
Русский
Español
Italiano
Related articles
Arch 新手安装指南 (简体中文) (适合新手)

这是Arch Linux的普通用户文档。它包括获取必要文件、安装及设置一个基本的、可启动的系统3个方面的内容。另外提供了系统规划及Arch专有工具,如包管理器pacman和Arch Build System(ABS)方面的简单参考。

翻译说明

根据Official_Arch_Linux_Install_Guide翻译而来。里面去掉了一些译者认为价值不大的内容(如LILO相关内容),如果您认为有添加的必要,可以与我联系或者自己添加。此文档适用于2009.02版本的安装。 在翻译过程中只保留了安装、初始配置、基本软件包管理方面的内容(如没有包括ABS系统的内容),目标是让用户参照本文档可以快速地安装、使用Arch Linux。至于如何把安装好的Arch Linux配置成合适自己的工作环境(如X等一些应用软件的安装、本地化设置等),请参阅维基其它内容。

Contents

简介

什么是Arch Linux?

Arch Linux 是一个专门为 i686 优化的 linux 发行版本,灵感源于 CRUX ,一个由 Per Lidén 开发的很棒的发行版本。 Arch Linux 是一个独立开发且专门为 i686 和 x86_64 优化的 linux 发行版本,灵感源于 CRUX.Arch Linux的开发侧重于简单、优雅、代码正确性的平衡以及软件的前沿性。Arch 是轻量级的,它简单的设计让你可以轻易的扩展及以组建成任何所需的系统。

许可协议

Arch Linux 以及脚本的版权由 Jud Vient(2002-2007) Aaron Griffin(2007-2009)并遵循 GNU General Public License 许可协议(简称GPL)发布。

安装Arch Linux

安装之前

Arch Linux针对i686处理器进行优化,因此无法运行在比这更低或者不兼容的x86 CPU上(如i386,i486,i586),你的处理器必需新于(包括)奔腾II或者K6-2。在安装Arch Linux 之前,你应该先决定要使用什么样的安装方法。Arch Linux提供了可启动的ISO光盘镜像和USB磁盘镜像(使用GRUB引导)。 对于光盘安装,Arch Linux提供3种不同的自启动ISO光盘镜像。ISO光盘镜像几乎能在所有带有CD-ROM设备的机器上使用,USB镜像则可以使用在任何能从USB设备启动的计算机系统。如果不能用GRUB来引导,我们同样提供了ISOLINUX引导的ISO镜像。Arch Linux提供了两种安装方式,它们只是提供软件包的方式不同而已。

  • Core镜像包含了核心软件包的快照。这种镜像特别适合网速慢或者难以设置网络的人使用。
  • ftp镜像不包含任何软件包,安装时候通过网络来安装软件包。使用这种镜像安装完成后系统就处于最新的状态,如果你的网速很快,这是首选。

以上两种镜像,你都可以设置安装程序在安装中通过ftp来获得软件包,所有这些镜像都可以当做全功能的恢复系统环境使用。镜像可以像正常安装的Arch Linux系统一样运行,实际上在镜像上的系统和安装的硬盘上的系统是一样的,只是安装在CD或USB设备上与安装在硬盘上的区别。它们包含了完整的基本(base)软件包、网络以及驱动。如果你运行镜像中突然有需要的软件而镜像不自带,你只要连上网络并用pacman安装即可。本文最后有一个简短的pacman命令参考。普通的安装过程(很推荐)是只安装“基本(base)”包以及上网的设备和驱动,最后只要你安装后启动系统,就可以进行全系统更新以及安装其他软件包。

获取Arch Linux

  • 你可以从下载页中的任何一个镜像下载Arch Linux。
  • 你可以从Archux、OSDisc或者LinuxCD 购买一个安装CD然后邮到你所在的地方。

准备安装介质

CD-ROM /CD光盘

  • 下载iso/<release>/archlinux-XXX.iso
  • 下载 iso/<release>/sha1sums.txt
  • 用sha1sum验证ISO镜像的完整性:
sha1sum --check sha1sums.txt
archlinux-XXX.iso: OK

USB /U盘

  • 下载iso/<release>/archlinux-XXX.img
  • 下载 iso/<release>/sha1sums.txt
  • 用sha1sum验证IMG镜像的完整性:
sha1sum --check sha1sums.txt
archlinux-XXX.img: OK
  • 把这个镜像写入大容量USB储存设备,如闪存/U盘等设备。用dd等类似命令写入:
dd if=archlinux-XXX.img of=/dev/sdX

请确认你用的是/dev/sdX 而非 /dev/sdX1。这个命令将不可挽回地删除你U盘中的所有文件,所以请确认你在运行从此命令时没有任何重要文件在内。

使用安装媒体

设置你的BIOS允许从CD-ROM或USB设备运行,把安装光盘放入光驱或U盘插上电脑,重启电脑。一旦安装介质启动你将看到Arch Linux的logo和让你选择GRUB菜单,一般你只需按下回车键。启动过程的最后你将在屏幕顶端看到一个登录提示符和一些简单的提示。你应该用root账户登录。此时你已经准备开始实际安装,或者做一些你认为必要的手动准备工作。 在启动安装程序前,有经验的用户能利用可用的shell工具来给硬盘或者其他设备做准备工作。注意:Arch Linux安装媒体中包含一个/arch/quickinst 的脚本以供有经验的用户使用。此脚本将安“基本(base)”软件包到用户指定的目标目录。如果你想进行一些特殊的安装(如RAID,LVM)或者不想使 用安装程序,你可以使用quickinst脚本,这样你就得安装后自己配置系统,因为安装中没有进行过任何形式的自动配置。

通用安装过程

安装步骤:

  1. 加载non-US键盘映射
  2. 运行安装程序
  3. 选择安装来源
    1. 使用CD-ROM 或其他来源
    2. FTP/HTTP方式
      1. 配置网络
      2. 选择源镜像
  4. 设置时钟
  5. 准备硬盘分区:
    1. 自动分区
    2. 手动分区
    3. 设置文件系统挂载点
  6. 选择软件包
  7. 安装软件包
  8. 配置系统
  9. 安装引导器
  10. 退出安装

加载non-US键盘映射

如果你需要非美国键盘映射且(或)需要设置别的字体,你可以使用km工具加载新的键盘映射表。

km

运行安装程序

现在你可以运行/arch/setup启动安装程序。

/arch/setup

在显示过一些说明信息之后,程序会提示你选择安装方法。你可以用上、下方向键来浏览菜单,用TAB键切换按钮、回车键选中。在安装过程的任何一步,你都可以按ALT-F7进入第7个虚拟控制台观察安装命令的输出结果,然后按ALT-F1可以返回安装程序正在运行的第1个控制台。如有需要你还可以切换到其它的控制台做一些所需的操作。

选择安装来源

首先你必须选择你想用哪种方法来安装Arch Linux。如果你拥有高速的网络,你更应选择FTP安装来确保获得最新的软件包而不是可能过时CD或者USB镜像。

CD-ROM或者其他来源

你选择CD-ROM或者其他来源安装,那你在这个过程中就只能安装CD中有可能过时的软件包,或者手动挂载包含软件包的目录(可能在DVD,U盘之类设备上)。当然这种安装方法有它的优点,那就是你不需要网络链接就可以安装,因此对于拨号上网的、不能或不愿下载整个软件包的用户们这是一个好选择。

FTP/HTTP方式
配置网络

配置网络允许你安装并配置网络设备。 如果你用的是无线网络设备你得手动配置,在这种情况下这个安装程序对你来说不怎么适用。已经列出了当前所有可用的网络设备。如果没有可用的以太网卡或者要使用其它的网卡,你可以先切换到其它终端(如按下ALT-F2切换到第2个终端),然后手动加载需要的模块。如果安装程序无法找到正确的网络模块,请检查你的网卡是否正常安装在主板上并且被内核所支持。 如果已经加载正确的模块,并且所有的网卡已经被列出来了,此时你可以选择要配置的网卡进行详细的设置。如果你的网络中有DHCP服务器,那么这里可以直接选择“YES”, 它将自动配置你的网络;如果你使用静态IP地址,请选择“NO”,你将手动输入网络信息。无论哪种方式,当你成功配置好网络后,可以在其它终端用一些标准工具(如ping)来测试网络是否连通。

选择源镜像

这步将允许你选择系统的首选软件包下载源镜像(以下简称源)。为了实现更快的下载速度,你应该选择离你比较近的源。在接下来的安装中,你将默认从这步所选择的源下载软件包。

注意:ftp.archlinux.org限制下载速度为50KB/s。

显然上面这些只适用于FTP/HTTP方式的安装,成功做完这些之后,选择“Return to Main Menu”返回主菜单。

设置时钟

“设置时钟”即是设置系统时钟和日期。如果你的BIOS中设置的是UTC,这里就使用UTC,如果BIOS是本地时间,那么使用”localtime”。如果你机器上有某个操作系统无法正确处理UTC时间(如windows),那么为了避免时间混乱,你需要把BIOS时间设置为本地时间,同时该变量设置为”localtime”;其它情况下最好使用UTC时间。下一步你将要选择你所在的大陆和国家然后设置日期和时间。

准备硬盘分区

选择“Prepare Hard Drive”后将会进入一个子菜单,在这里有2个选择可以准备安装的目标驱动器。

自动分区

第一个选择是“Auto-Prepare”,它会自动在你的硬盘上创建分区及相应的文件系统,分别用于/boot,swap,root(即/),这些分区会被挂载在适当的位置。更详细一点,这个选择将会创建以下分区:

  • 32 MB ext2 /boot 分区
  • 256 MB swap 分区
  • 7.5GB (/)根分区
  • /home 分区(所有剩余空间)

你将会被提示是否修改分区为你需要的大小,但是 /home 分区总是会使用掉剩余的磁盘空间。 自动分区将会抹掉所选硬盘的所有数据!!! 如果你想手动分区,请根据自己的需要(见下面2节),使用另外两个选项来准备目标介质:“Partition Hard Drives”,手动进行分区;“Set Filesystem Mountpoints”,设置文件系统挂载点。硬盘分区准备完毕后选择“Return to Main Menu” 返回到主菜单。

手动分区

如果你选择了“Auto-Prepare”来自动分区,请跳过“Partition Hard Drives”这一步! 如果你要手动分区,请在这一步选择要分区的硬盘,然后会自动运行cfdisk程序,在这里你可以自由的修改分区信息,修改完毕后依次选择 [Write]和[Quit]返回安装程序。你至少应该有一个根分区(/),并且记下每个分区的挂载位置,然后在下一步中进行设置。

设置文件系统挂载点

如果你选择了“Auto-Prepare”来自动分区,请跳过”Set Filesystem Mountpoints”这一步!只有当你在控制台或者在前一个选项中手动完成分区的情况下你才需要进入这个菜单设置文件系统挂载点。

安装程序首先询问用于swap的分区,要么在前面建立的分区中选择一个作为swap分区;要么直接选择”NONE”,这样你的系统将不会使用交换分区。安装程序本身不支持使用交换文件,如果你想使用交换文件,需要先设置好挂载点,然后使用swapon命令激活一个格式化好的分区上的交换文件。如果你选择了使用swap分区,安装程序将会询问是否在此分区创建文件系统,由于这个分区(swap)自动使用一个指定的文件系统,在这里你总是应该选“YES”的。

设置好交换分区之后,安装程序将会继续询问根文件系统(/)使用的分区,这是必须要有的。

接着安装程序会建议为/boot选择一个单独分区。具体如何选择取决于用户的分区策略。然后安装程序将反复询问不同的挂载点,直到用户选择”DONE”为止。 每当你指定一个要挂载的分区,安装程序都会询问是否要在选定的分区上创建文件系统。如果选择”YES”,程序会询问文件系统的类型(如果你不了解各种文件系统的特点,那么ext3是个不错的选择),然后根据指定的文件系统类型格式化分区,这会擦除该分区上所有的数据!当然你可以选择”NO”来保留分区上已有的文件系统。

如果想保留分区上的数据,强烈建议用户先备份再安装。否则一旦安装过程中发生不可预料的错误,不要说我们没有警告过你!

当用户挂载完所有分区,选择”DONE”之后,在真正格式化之前,安装程序会列出所有要格式化的分区及相应的挂载点,仔细检查无误后,选择”OK”来实际完成这上面所有的操作。完成分区、格式化、挂载点设置后请返回到主菜单进行下一步。

选择软件包

“Select Packages”让你选择需要从光盘、U盘或者FTP镜像上安装到机器上的软件。你可以选择你要安装的整个软件包组,然后再用空格键选择(或取消选择)具体的软件包来进行微调 。建议用户安装base中所有的包,其他组的包不必选择,除非你需要某些软件包来设置上网。选择了所需要的软件包之后,离开选择屏幕然后进行下一步的安装。

安装软件包

“Install Packages”将会把基本系统安装到硬盘,并根据依赖关系安装你在上一步选择的软件包。

配置系统

“Configure System”允许你编辑一些重要的系统配置文件。你将被询问使用哪个编辑器来编辑配置文件,编辑器有VIM和nano。

配置文件

下面这些是Arch Linux的核心配置文件,这里只列出最基本的配置文件。如果你需要配置一个特定的服务,请查看适当的手册页(manpage)或者查看所提到在线文档。多数情况下,Arch Linux的WIKI论坛能提供丰富的帮助资源。

  • /etc/rc.conf
  • /etc/fstab
  • /etc/mkinitcpio.conf
  • /etc/modprobe.conf
  • /etc/resolv.conf
  • /etc/hosts
  • /etc/hosts.deny
  • /etc/hosts.allow
  • /etc/locale.gen
  • /etc/pacman.d/mirrorlist

/etc/rc.conf 该文件是Arch Linux主配置文件。在这个文件中你可以设置键盘映射、时区、主机名、网络、运行的后台服务、启动时加载的模块、个人设置等等。你必须 把这个文件中所有的设置及其说明都详细的看一下,理解它们的含义,根据自己的情况修改它们:

LOCALE: 这个变量可以设置系统语言,所有支持i18n的程序都会使用这个设置。在locale.gen文件中可以查看可用的locale。默认设置为美国英语。

HARDWARECLOCK: 如果你的BIOS中设置的是UTC,这里就使用UTC,如果BIOS是本地时间,那么使用”localtime”。如果你机器上有某个操作系统无法处理UTC时间(如windows),那么为了避免时间混乱,你需要把BIOS时间设置为本地时间,同时该变量设置为”localtime”;其它情况下最好使用UTC时间,这可以支持日光节约时间及其它一些有益的功能。

USEDIRECTISA:如果你设为“yes”将会让hwclock使用明确的I / O指令来存取硬件时钟。否则,hwclock将尝试用/dev/rtc这个假定已用rtc驱动程序驱动的设备。默认使用‘no’,适合于不用ISA机器的人。

TIMEZONE:指定你的时区。所有的时区设置都在/usr/share/zoneinfo目录下面,该变量的值为这个目录下对应设置文件的相对路径。例如中国用户可以设置成”Asia/Shanghai”,也就是使用/usr/share/zoneinfo/Asia/Shanghai这个设置文件。如果你现在还不知道你所在的地方对应的时区文件,可以稍后完成其它配置之后在网络上搜索一下再进行设置。

KEYMAP:该变量定义启动时加载的键盘映射表。所有可用的键盘映射表在/usr/share/kbd/keymaps下可以找到。请注意该设置只对TTY有效,对X无效。默认的设置为美国标准英语键盘 。

CONSOLEFONT: 该变量定义在启动时setfont程序加载的控制台字体。所有可用的字体在/usr/share/kbd/consolefonts下面可以找到。

CONSOLEMAP: 该变量定义在启动时setfont程序加载的控制台映射。所有可用的映射表在/usr/share/kbd/consoletrans下可以找到。如果你在locale变量中使用了utf8编码并且使用的程序会产生8位输出,那么你需要根据自己的语言选择合适的映射表(如拉丁文使用8859-1)。如果你平时在X下工作,可以忽略这个变量,因为它只对控制台程序有效。

USECOLOR:启用(或者禁用)启动时输出彩色信息。

MOD_AUTOLOAD: 如果设置为“yes”,Arch在启动时自动扫描机器硬件并试图自动加载合适的模块,这个功能是通过hwdetect程序完成的。

MOD_BLACKLIST: 这是一个数组变量,所有写入该变量的模块在启动的时候将会被禁止加载。例如,如果你不想使用PC扬声器,你可以把pcspkr模块加入到这个变量中。

MODULES: 这也是一个数组变量,所有写入该变量的模块在启动的时候都会被自动加载,这可以自动加载那些没有通过modprobe.conf绑定到特定硬件设备的模块。 直接把模块名称写入到这个变量当中即可,如果该模块需要输入参数可以在modprobe.conf指定。在模块名称前面加一个”!”可以禁止启动时该模块的加载(这与MOD_BALCKLIST不同!),这样在必要的时候可以临时取消一些模块的加载。 在这里加入一些指定的网络模块可以使得系统总是自动按照指定的模块序列检测网卡,这样固定的网络设备具有固定的接口编号,这可以避免每次启动系统后网络接口编号的混乱。当然,这个问题更好的解决办法是在udev中设定固定的接口标签。

USELVM :设置为“YES”时,在系统初始化过程中会调用vgchange程序来激活LVM组。如果你不知道这是什么意思,就不用管它。

HOSTNAME: 该变量设置机器主机名(不包含域部分)。这个变量该如何设置完全取决于你的选择,它可以是任何字母、数字、通用特殊字符的组合。当然也不要太出格。如果不明白就使用默认设置好了。

INTERFACES :该变量用来设置网络接口。默认设置及注释掉的说明很好地示范了设置方式。默认是使用DHCP自动配置网络;如果你不使用DHCP,你需要在这个变量中填入一些参数,至于参数的格式,你只要记住一点:该变量的内容与用ifconfig命令手动配置网络时传递的参数相同。

ROUTES: 通过该变量来定义静态网络路由。可以参考一下默认网关的定义方式。基本上变量的内容与传递给routes add命令的参数相同。如果你对此不清楚,可以不用修改它。

NET_PROFILES通过该变量可以在启动时加载不同的网络配置。在多网络环境中可以为每个网络进行不同的配置,然后通过该变量指定一个配置文件,方便地替代INTERFACES/ROUTES变量中的设置。如果你的机器需要在不同的时间、不同的地点连接不同的网络(如笔记本),你可以在/etc/network-profiles/目录下建立一些不同的配置文件(该目录下有一个设置模板以供参考),然后通过NET_PROFILES变量指定要加载的配置即可。

DAEMONS: 该变量中列出的是一些自动启动的脚本名称。所有的脚本都放在/etc/rc.d目录下。在脚本名称前面加一个“!”表示该脚本不会被执行;在脚本名称前面加一个”@”表示该脚本在后台执行,即不等序列中所有的脚本启动完成就直接继续下面的操作。一般情况下默认启动的一些脚本不需要进行修改,只有当你安装了一些服务程序(如sshd)并且希望它能在系统启动时自动运行,你可以把它的服务名称加入到这个变量当中。这一点是Arch与其它发行版不同的地方,其它发行版大多通过不同运行级别的到/etc/init.d/下的链接来完成脚本的自动运行。

/etc/fstab 该文件保存文件系统及挂载点设置。安装程序已经按照你的选择创建了一个合适的fstab文件,你可能需要修改UUID以确保无误(特别是当你使用LVM,RAID,加密根设备的时候)。 在当前的内核中,对ATA/IDE子系统引入了一个比较重要的变化:使用新的pata(并行ATA)驱动代替旧的IDE子系统,新的驱动下IDE磁盘的名称由had,hdb等变成sda,sdb等,和SCSI、SATA设备名称相同。所以当在/etc/mkinitcpio.conf的HOOKS中使用新的pata驱动时,/etc/fstab中的分区名称要作相应的改动!除了直接使用设备名称,还可以通过/dev/disk/by-uuid/…或者/dev/disk/by-label…的方式来引用正确的分区。仔细检查/etc/mkinitcpio.conf中的HOOKS,如果你使用了pata代替ide,硬盘设备名称形式为sd?;如果没有使用pata,硬盘设备名称形式为hd?。其它用到硬盘设备名称的配置文件也需要进行相应的修改。

/etc/mkinitcpio.conf 该文件用来调整系统初始化虚拟磁盘(即常说的initrd,initramfs)。initrd是一个压缩镜像,内核启动的时候会把它加载到内存当中。使用initrd是为了使系统自举以有能力访问真正的根文件系统。这意味着它必须加载访问IDE、SCSI、SATA、USB/FW等设备所需要的模块。一旦initrd加载了合适的模块(无论是直接通过modprobe命令还是通过udev),它就将系统控制权转交给Arch系统并继续启动过程。所以,initrd中只需要包含访问根文件系统所必须的模块,没有必要把所有要加载的模块都放到initrd当中。大多数要使用的模块在稍后的init进程中由udev加载。

默认情况下,mkinitcpio.conf中的设置是通过HOOKS加载支持全部IDE、SCSI、SATA设备的模块,也就是说默认的initrd几乎适合所有用户。这样做的缺点就是可能会加载许多不需要的模块,启动后通过lsmod命令可以查看所有加载的模块。加载过多的模块并不会对系统产生多大危害,但是许多用户仍然不喜欢这样的结果。这些用户可以修改mkinitcpio.conf文件的HOOKS,去除不需要的模块(如IDE、SCSI、RAID、USB等),然后重新制作initrd。 或者有经验的用户可以将需要的模块放在MODULES变量中加载,这可以进一步精简HOOKS。但是要注意察看文件中的注释,因为精简HOOKS是不是一件简单的事情。

如果你正在使用RAID或者加密的根文件系统,你需要设置底部的RAID/CRYPT变量。在维基中可以获取更多关于RAID/LVM、文件系统加密、mkinitcpio方面的内容。

当配置好mkinitcpio.conf文件后,必须以根用户运行mkinitcpio –p kernel26命令来重新制作镜像(除非你正在安装系统当中,此时当安装完内核之后由安装程序自动制作镜像)。

警告:如果mkinitcpio.conf文件设置有错误,系统可能会无法启动!所以在修改该文件的时候一定要非常小心。 在安装内核的时候会自动生成一个备用启动选项,它使用一个安全的默认镜像,当你配置的系统无法启动时可以试着使用该选项启动系统。 请仔细阅读fstab小节中关于pata转变问题的警告!

/etc/modprobe.conf 该文件告诉内核在启动时需要为系统设备加载的模块以及模块所需的参数。例如,为了让内核能够为Realtek8139网卡加载驱动模块并将其初始化为eth0网络接口,在modprobe.conf文件加入一行:

alias eth0 8139too

大多数用户不需要更改这个文件。更多详细信息可以察看:

man modprobe.conf

/etc/resolv.conf 通过该文件来手动设置要使用的域名解析服务器。文件格式为:

search domain.tld
nameserver 192.168.0.1
nameserver 192.168.0.2

将”domain.tld”及相应的IP换成自己的设置即可。”search domain.tld”表示当主机名不完整时,自动添加相应的域”domain.tld”来进行解析。这样设置后,当你”ping myhost”时实际上就是”ping myhost.domain.tld”。一般来说这些设置不是非常重要:如果你使用DHCP,就没必要修改该文件,当网络启动的时候系统会自动的修改合适的值;如果你使用静态IP,一般只要按照以前记下的网络信息将域名服务器的IP添加进去即可。

/etc/hosts 在这个文件中可以设定所有网络中主机名/ip的对应关系。如果DNS无法解析某个主机名,你可以将该主机名及其IP添加到这个文件中进行正确的解析。一般说来不需要修改这里的内容,只需要把自己机器的主机名+域及机器IP写到该文件即可,因为有一些服务程序(如postfix)如果不能正确解析本机名称会发生错误。如果你不了解相关内容,可以通过man hosts察看相应说明,或者让该文件保持默认即可。

/etc/hosts.deny 这个文件是用来拒绝网络服务访问的,默认拒绝所有的网络服务。

ALL: ALL: DENY

/etc/hosts.allow 这个文件允许网络服务访问。把你想用的网络服务添加到这里,如:允许任何计算机通过ssh连接到本机:

sshd: ALL: ALLOW

/etc/locale.gen 该文件列出了所有支持的locale及字符集。根据你的自己的语言文字,将合适的locale反注释掉,以根用户运行locale-gen命令来生成相应的locale即可,然后在系统中就可以使用这些locale了(例如将/etc/rc.conf中的LOCALE变量设置为对应的locale了,或者在启动X的时候设定合适的locale变量)。

在安装过程中,你不需要手动运行locale-gen。当你手动编辑完locale.gen文件后,安装程序会自动运行该命令。 默认情况下所有的locale(包括/etc/rc.conf中默认使用的en_US.utf8)都被注释掉了,为了使你的系统能正常工作,你必须编辑该文件并至少反注释掉在/etc/rc.conf中使用的locale(对中国用户来说一般只保留en_US及zh_CN相关的即可,译者注)。

/etc/pacman.d/mirrorlist 这个文件包含了Arch Linux软件库的镜像列表。pacman下载软件包的时候是安这些镜像在文件中所列的顺序来下载的。$repo这个宏将由pacman按照软件库来展开(core库、extra库、community库或testing库)。 如果你用的是ftp/http方式安装,你选择用来下载软件包的地址将会被加上镜像地址的顶端,它将作为你的新Arch Linux系统的默认源镜像。

Set Root Password 在这一步,你必须为你的系统设置root账号的密码。请慎重地选择这个密码,最好是字母数字与特殊字符混杂的密码,因为这个密码将会保护你系统的关键部分。 编辑配置文件完毕之后选择“Return”返回主菜单,将重新生成 initial ramdisk以启用你在mkinitcpio.conf中的改变。

安装引导器

“Install Bootloader”将会将引导器安装到硬盘上。你可以根据自己的喜好选择安装GRUB(建议)或者LILO。 在安装引导器之前,安装脚本会让你确认引导配置文件的正确性。请确保其中/系统(及/boot,如果单独分区的话)的配置正确。

/boot/grub/menu.lst

如果你打算使用GRUB,你应该检查和修改这个文件以便启动;否则你就得修改原来存在硬盘上的引导器的配置。安装程序预先是用UUID的,你可能要修改fstab中对应的内容。 在你检查过引导器配置的正确性之后,安装程序将问你把引导器安装在哪个分区。除非你使用别的启动引导器, 不然你应该把GRUB安装在硬盘的MBR中,通常你选择的应该是没有后缀的设备名(如/dev/sda代表第一个硬盘的mbr,/dev/sda1代表第一个硬盘的第一个分区的引导扇区。输入的时候一定要再三确认,不要搞混了) 配置GRUB非常简单,最大的难题是它使用了不同于/dev/的命名方案。硬盘通过(hd0),(hd1)…的形式命名,设备序号与其在IDE/SCSI总线上的位置相对应,分别对应Arch Linux系统中的sda,sdb…。而且分区编号也是从0开始。在默认的menu.lst文件有有一些转换的例子可以帮助你理解这种用法。

当你掌握了设备命名方法之后,你只要为你的启动选项设定正确的内核、正确的根系统分区,并取一个好听的名字就可以了。如果使用打包好的2.6.x内核,还需要添加一个合适的虚拟磁盘镜像文件。镜像文件的位置必须与内核位置相同。一般情况下使用默认设置即可,你只需要检查一下启动根分区(/boot)和系统根分区(/)的设置是否正确即可(特别是要注意到pata问题)。

如果要为其它的操作系统创建一个启动选项,可以参照下面的例子,它可以启动任何一个分区上的引导扇区。用这种方法可以方便的启动微软所有的操作系统,只要把下面这段代码加入到menu.lst文件的后面并修改相应的启动分区即可。

(1) Other OS
title My Other OS
rootnoverify (hd0,1)
makeactive
chainloader +1

关于利用GRUB启动其它操作系统方面的内容请参考GRUB在线手册。

GRUB配置文件设置正确后,安装程序会提示安装GRUB,一般按照默认选项将其安装到MBR即可。

退出安装

现在选择“Exit Install” ,然后将安装光盘从光驱中取出(或拔出U盘),在命令行下输入“reboot”,然后耐心地等待一会。 如果你的系统成功启动,你就可以以root账户和你刚刚设置的密码登录了。 恭喜你!欢迎来到你的新Arch Linux系统!

软件包管理

pacman简单命令

pacman是Arch Linux的软件包管理器,它可以追踪所有安装的软件。它支持简单的依赖检查,使用标准gzip压缩的tar包来管理所有的软件包。下面列出了一些常用的命令(分别使用长参数和短参数,它们的功能是完全一样的)。如果想了解更多有关pacman的命令参数,请查阅man pacman和Arch Linux的Pacman Wiki

典型工作:

  • 将一个软件包文件添加到系统
  • 使用软件包文件更新软件
  • 移除软件包
  • 更新软件包列表
  • 更新系统
  • 从软件仓库添加/更新软件
  • 列出所有已安装的软件
  • 检查某个软件包是否已经被安装
  • 显示指定软件包的信息
  • 显示软件中所有文件的列表
  • 找出某个指定文件所属的软件包


  • 将一个软件包文件添加到系统
pacman --add foo.pkg.tar.gz
pacman -A foo.pkg.tar.gz

这个命令会把foo.pkg.tar.gz软件包安装到系统。如果不能满足依赖关系,pacman会出错退出,并自动显示出缺少的依赖包。但是它不会尝试解决依赖关系,如果你想让它这么做,可以加上”--sync”参数。可以在一个命令中添加多个软件包,如果这些软件包之间有依赖关系,pacman会以正确的顺序来安装它们。

  • 使用软件包文件更新软件
pacman --upgrade foo.pkg.tar.gz
pacman -U foo.pkg.tar.gz

该参数的功能与 “--add”相同,区别在于如果要添加的包比已经安装的包版本要新的话,它会自动升级该软件。显然”--upgrade”比”--add”更好用,除非你仅仅只是想

让pacman检测一下某个软件包是否被安装。

  • 移除软件包
pacman --remove foo
pacman -R foo

该命令可以移除所有属于软件包foo的文件(已经修改过的配置文件除外)。只需要给出软件包名称即可,不用加上pkg.tar.gz的后缀。 要移除软件包所有的文件,可以在上述命令中加上”--nosave”参数。

  • 更新软件包列表
#pacman --sync --refresh
#pacman -Sy

该命令将从/etc/pacman.conf定义的软件仓库中获取最新的软件包列表,并解压到本机数据库。(在你更新系统(--sysupgrade)之前最好运行一下这个命令以确保下载的软件都是最新的。根据你在pacman.conf设置的软件仓库地址,该命令可能需要相应的FTP/HTTP连接。该命令的作用与Debian的”apt-get update”非常相似。)

  • 从软件仓库搜索软件包
# pacman --sync --search <正则表达式>
# pacman -Ss <正则表达式>

按名称或描述来搜索数据库,可以使用正则表达式。

  • 显示未安装软件包的详细信息
# pacman --sync --info foo
# pacman -Si foo

显示未安装的软件包foo 的详细信息(大小、编译日期、依赖i关系、冲突关系、等等)

  • 从软件仓库安装软件包
# pacman --sync foo
# pacman -S foo

检索并安装软件包foo,并自动完成所有的依赖关系。在做任何同步操作(--sync,-S)前一定要先更新软件包列表,或者在命令中加入”--refresh”或”-y”参数来

  • 列出所有已安装的软件
#pacman --query
#pacman -Q

该命令会显示系统中所有已安装软件包的列表。

  • 检查某个软件包是否已经被安装
#pacman --query foo
#pacman -Q foo

在上面的命令中加入一个软件包名称,如果该软件已安装,它会显示软件名称和版本;如果没有安装,不会显示任何信息。

  • 显示指定软件包的信息
#pacman --query --info foo
#pacman -Qi foo

该命令显示已安装软件foo的信息(大小,安装日期,创建日期,依赖关系,冲突等)。

  • 显示软件中所有文件的列表
#pacman --query --list foo
#pacman -Ql foo

该命令显示软件foo中所有文件的列表。

  • 找出某个指定文件所属的软件包
#pacman --query --owns /path/to/file
#pacman -Qo /path/to/file

该命令中的文件参数要使用完整路径(只有文件名是不会给出任何结果的),会显示包含指定文件的软件包的名称和版本。

访问软件仓库

软件包仓库是一个软件包及其元信息的集合,它可以位于本地目录或者远程FTP/HTTP服务器上。Arch系统中默认的仓库是core仓库(原文为current,译者注),里面的软件包由开发都进行更新、维护,里面的软件一般都是最新版本。

许多用户也会激活extra软件包仓库,它里面包含core仓库所没有的更多的软件包。你可以在/etc/pacman.conf中激活extra仓库,默认情况下该仓库是激活的。

你也以创建、维护你自己的软件包仓库,请察看pacman的manpage来获取详细信息。

如果你是用光盘安装,并且无法访问网络,你可能需要从光盘中安装额外的软件。具体内容请参考FAQs,特别是FAQ #3,它给出了如何使用安装光盘作为软件包仓库的方法。

系统配置其他部分

/etc/conf.d/*

在安装过程中,该目录下的内容并不重要。

一些服务程序脚本在这个目录中会有一个相应的配置文件,其中包含了一些有用的默认值。当一个服务程序启动后,它首先从这个配置文件中读取设置,然后再读

取/etc/rc.conf中的设置。这意味着你可以将一些服务公用的设置放在/etc/rc.conf文件中来简化设置。当然如果你喜欢为每个服务程序单独设置变量,也可以在/etc/conf.d

分别为它们创建一个配置文件。所有的服务都可以通过简单的脚本进行控制,这是多么美妙的事情。

/etc/profile

当每个用户登录到系统并开始初始化时会运行该脚本。在Arch Linux中该脚本非常简单(同其它方面一样,KISS)。你可以根据自己的需要来编辑它。

启动脚本

Arch Linux使用与*BSD系统类似的简单启动序列。第一个运行的启动脚本是/etc/rc.sysinit。它运行结束后,/etc/rc.multi被运行(正常启动时)。最后一个运行的脚本

是/etc/rc.local。当从运行级别1(即单用户模式)启动时,/etc/rc.single将取代/etc/rc.multi的运行。与其它系统不同,你不会在代表不同运行级别的/etc/rc?.d目录下

找到数不清的链接。事实上,Arch Linux只有3个运行级别,除了前面2个,另外一个就是运行级别5,它用来启动X。启动脚本会调用/etc/rc.conf中的变量和定义以

及/etc/rc.d/functions中的脚本。如果你打算创建自己的服务程序脚本,可以参考一下这些文件与现有的服务程序脚本。

启动脚本纵览:

  1. /etc/rc.sysinit
  2. /etc/rc.single
  3. /etc/rc.multi
  4. /etc/rc.local
  5. /etc/rc.shutdown
  6. /etc/rc.local.shutdown
  7. /etc/rc.d/*

/etc/rc.sysinit

这是主系统启动脚本。它完成一些启动过程中必须的工作,如挂载文件系统、运行udev、激活交换分区、加载模块、设置本地化参数等等。你最好永远不要编辑这个文件!

/etc/rc.single

当以单用户模式启动系统时运行该脚本,在正常情况下不会运行该脚本。如果系统以单用户模式启动,例如在启动时向内核传递参数1或者在正常多用户模式下运行命令init 1

,该脚本确保除了少数系统关键服务(syslog-ng,udev)之外没有其它服务运行。单用户模式用于在修改系统设置时确保没有其它用户使用系统,以免造成数据丢失或损坏。 对于桌面用户,单用户模式没有多大用处。同样的,你不需要修改这个脚本。

/etc/rc.multi

多用户启动脚本在调用完/etc/rc.local后,会启动在/etc/rc.conf中设定的所有服务程序。你也没有修改这个文件的必要。

/etc/rc.local

本地多用户启动脚本,你可以把你希望系统在启动过程结束后执行的命令放在这里,这些命令会在最后阶段执行。这是唯一一个你有可能会修改的启动脚本,你可以随意地在

这个脚本中加入任何命令。

大部分常见的系统配置任务,如加载模块、改变控制台字体、设置设备,都有自己专用的领地。为了避免混乱,你必须确保你在rc.local中加入的任何命令都不会比加在/etc/profile.d/或者其它已有配置文件中更合适。

/etc/rc.shutdown

系统关机脚本的任务是停止服务程序、制裁文件系统、解除交换分区等待。最好不要修改它。

/etc/rc.local.shutdown

与/etc/rc.local类似,在这个文件中可以放入任何你希望在rc.shutdown之前执行的命令。请注意默认情况下这个文件并不存在,如果你要创建这个文件,请确保它具有可执

行权限才能正常工作。

/etc/rc.d/*

该目录中存放着用于rc.conf中DAEMONS变量的服务程序脚本。除了在启动时被执行,你还可以在系统运行中利用这些脚本来管理服务程序。例如下面这个命令:

/etc/rc.d/postfix stop

将会停止postfix服务。当然只有你安装了相应的软件包之后,对应的脚本才会出现在这里。如果只安装了基本系统,这里的服务程序脚本是非常少的,随着软件包的安装,所有需要的启动脚本最终都会被放在这里。这个目录的作用与其它发行版中的/etc/rc3.d/或者/etc/init.d/相似,好处就是免去了数不清的链接。

用户管理

可以通过标准linux命令:useradd,userdel,groupadd,groupdel,passwd,gpasswd来添加或者删除用户和组。添加一个帐户的典型操作如下:

#useradd –m –s /bin/bash johndoe
#passwd johndoe

第一个命令向系统添加一个名为johndoe的用户,为他创建主目录/home/johndoe,将一些默认的登录文件放进主目录中,同时设定他的登录shell为/bin/bash。第二个命令为该帐户创建密码。只有创建密码之后该帐户才算被激活。

除了useradd命令,还可以通过adduser脚本来交互式的创建新帐户。 剩下的命令的用法可以察看相应的manpage。建议创建一个或多个普通用户用于日常使用,这可以大提高安全性、降低系统损坏的可能性。

访问因特网

由于缺乏解决拨号问题的开发者,通过拨号线路将Arch连接到因特网需要经历相当多的手工操作。如果可能,尽量设置一个专有的路由,然后就可以把它作为默认网关来使用

。 在Arch Linux维基上有一些拨号相关的文档:

模拟猫

要想使用外接的贺氏兼容模拟猫,你需要安装ppp软件包。根据自己的需要修改/etc/ppp/options文件(如有问题请察看man pppd)。你还要建立一个交互脚本(chat),用来在

初始连接建立后向ISP提交用户名和密码。pppd和chat的manpage里有详细的例子说明。使用udev的情况下,串口一般为/dev/tts/0和/dev/tts/1。 如果你觉得pppd太简陋了,可以安装wvdial或者类似的工具来简化设置过程。 如果你使用的是WinModem(不懂,内置猫?译者注),即内置猫PCI卡,你可以在LinModem的主页获取详细的信息。

ISDN

设置ISDN需要3个步骤:

  1. 安装、配置硬件
  2. 安装、配置ISDN工具包
  3. 配置自己的ISP

Arch打包好的内核中包含了必要的ISDN模块,这意味着你不必重新编译内核,除非你使用的是非常旧的ISDN硬件。将ISDN硬件设备连接到计算机上后,你可以试着使用

modprobe命令来加载相应的模块。几乎所有的被动式ISDN PCI卡都可以使用hisax模块,只需要为它添加型号和协议两个参数。根据你所在国使用的标准设定协议号:

  • “1”-1TR6
  • “2”-EuroISDN(EDSS1)
  • “3”-无D通道的租用线路
  • “4”-US NI1

内核文档中有如何设置这些参数的详细描述(ISDN分支),你可以在线访问它。型号参数取决于你使用的ISDN卡,内核文档中README.HiSax文件列出了所有支持的型号,查找

到你的卡对应的型号,然后通过下列命令来加载模块:

modprobe hisax type=18 protocol=2

上面这条命令会为ELSA Quickstep 1000PCI卡加载模块,并设置它使用EDSS1协议(德国)。/var/log/everything.log中记录了调试输出信息,如果出现问题可以在这里找到

线索。请注意,如果使用外部USB ISDN适配器,还需要先加载一些相应的USB模块。 一旦你确定卡及基设置可以正常工作,就可以把相应的模块放到/etc/modprobe.conf中:

alias ippp0 hisax
options hisax type=18 protocol=2


或者你也可以只把参数设置留在这里,而把hisax模块放到rc.conf的MODULES数组中进行加载。两种方法随你选择。不过前一种方法有一个优点:只有在使用到的时候才会真正的加载模块。

现在硬件已经正常工作,你需要一些基本的工具来真正地使用它!

安装isdn4k-utils软件包,通过man isdnctrl来获取更多的信息。在manpage中给出了配置文件的详细说明,并且给出了一些有用的例子。

如果你使用US NI1标准,你必须把SPID回到MSN的设置中,并用冒号隔开。

当你用isdnctrl工具配置好ISDN卡后,应该已经可以拨入PHONE-OUT参数指定的机器,但是会出现用户名、密码认证错误。所以和普通的模拟PPP连接一样,你需要把正确的用

户名和密码添加到/etc/ppp/pap-secrets或者/etc/ppp/chap-secrets,具体是哪个文件取决于你ISP的认证协议。如果不清楚,在两个文件中都写上就可以了。 如果你所有的设置都是正确的,现在应该已经可以以根用户身份,使用“isdnctrl dial ippp0”命令来建立拨号连接了。如果出现问题,记得检查日志文件!

DSL (PPPoE)

这段说明只对那些自身可以管理到ISP的连接的PC有关。你什么都不用做,除非你使用某种单独的路由,才需要定义一个正确的网关。 你首先要把连接DSL猫的网卡安装到计算机上,再加载网卡对应的模块(可以写入modeprobe.conf或者rc.conf),然后安装rp-pppoe软件包并使用pppoe-setup脚本来配置连接,最后输入所需的数据,这样才能建立DSL连接。建立连接或者断开连接的命令分别为:

/etc/rc.d/adsl start
/etc/rc.d/adsl stop

一般来说设置相当简单、明了,随时可以通过manpage来获取信息。如果想在启动时自动拨号,只需把adsl加入到DAEMONS数组中即可。

Arch Build System (ABS)

二进制文件 vs. 源码

在包管理中,pacman负责二进制文件方面,而ABS则是负责源码方面:它帮助你从源码开始建立你自己的自定义软件包,同时还让你可以用你定义的方式重建Arch Linux的软件

包。过程通常如下: 1. 与服务器同步你的ABS树。 2. 在/var/abs/local/里建立一个目录,其名字和你将要创建的软件包一样。 3. 将PKGBUILD.proto原型从/var/abs/复制到你新建立的目录中,删除掉.proto后缀,然后将它编辑为适合新软件包的需要。 4. 在PKGBUILD文件的工作目录中运行makepkg。 5. 用pacman安装新建立的软件包。 6. 把软件包发给你的朋友炫耀一番(或者把它给一位Arch用户让他/她迷上ABS)。

同步你的ABS树

通过以root身份运行abs脚本,你可以同步所有/vb/abs中所需包的文件。它需要cvsup包来执行,如果你没有安装的话会出现提示。当然这需要连上internet才行。使用CVS作

为传输介质使你可以紧跟ABS里的不同版本的树 ── 这可以在/etc/abs/supfile.arch里配置。例如,缺省的supfile设置为跟踪核心包树,这是最新而且是推荐使用的源码。

你也可以使用其它版本。详情可以查看supfiles中的注释。

ABS支持多个仓库,可以在/etc/abs/abs.conf中进行设置。缺省情况下abs只会选择core和extra仓库。

你还会发现一个/etc/abs/supfile.extra文件。它让你可以访问所有不在主ABS仓库中的非官方的创建脚本。如果你不想使用这个仓库,你可以删除这个文件,不过通常最好的

做法还是编辑abs.conf,取消你不需要的仓库。

如何创建软件包

创建过程在makepkg的man手册里已经详细解释了。你可以在它的指导下创建自己的软件包。如果还不够,在wiki里找一下有关教程,或者上论坛或者IRC寻求帮助。

软件包的指导规则

创建Arch Linux的软件包时,你应到遵循下列软件包的指导规则,特别是在你想将新软件包贡献给Arch Linux的时候。

软件包命名

  • 软件包的名字应当只包含字母与数字;所有字母都应该是小写。
  • 软件包的版本号应当和作者发布的版本号一致。如果有需要版本号可以包含字母(例如2.54beta32)。版本号不可以包含连接号!只允许字母、数字和小数点。
  • 软件包发布号对Arch Linux来说也是有明确用途的。它让用户可以区分包的新旧。当一个新软件包第一次发布时,发布号从1开始。然后经过了修改和优化,软件包再次发布

给公众,发布号就会递增。当一个新版本出来后,发布计数复位回1.软件包发布号的命名规则和版本号一样。

目录

配置文件应当放置在/etc目录,如果有超过一个以上的配置文件,依惯例使用一个子目录来保持/etc尽可能整洁。当你的软件包名为{pkgname}时,用/etc/{pkgname}/来放置

(或者其它恰当的名字,例如apache使用/etc/httpd/)。

软件包里的文件应当遵循下列的目录规则:

 /etc             系统必须的配置文件
 /usr/bin         程序可执行文件
 /usr/sbin        系统级程序
 /usr/lib         库文件
 /usr/include     头文件
 /usr/lib/{pkg}   模块、插件等等
 /usr/man         帮助手册
 /usr/share/{pkg} 应用程序数据
 /etc/{pkg}       {pkg}的配置文件
 /opt             不适合放置于Linux文件系统框架内的包可以放在这里

如果包里的文件可以很明确归类到以上目录,那就按这样做。如果有其它高一级的目录不适合这样放,可以使用/opt。

例如,acrobat里的Browser、Reader和Resource目录都同样在bin目录下。这不合适放置在正常的Linux文件系统框架内,所以我们把所有文件都放到/opt下。

都清楚了吗?好的。


makepkg的任务

当你用makepkg创建软件包时,它自动执行这些步骤:

  1. 检查包的依赖关系是否已经安装
  2. 从服务器上下载源文件
  3. 解压源文件
  4. 打上必要的补丁(patch)
  5. 创建软件,并安装到一个fake root
  6. 包里的删除/usr/doc、/usr/info、/usr/share/doc和/usr/share/info
  7. 去除二进制文件里的symbols
  8. 去除库里的debugging symbols
  9. 生成每个软件包都会包含的meta文件
  10. 将fake root压缩为软件包文件
  11. 将软件包存放在配置指定的目标目录(通常是当前目录)


其它

不要在你的PKGBUILD脚本里引入新的变量,除非没了它就无法创建包,因为这有可能和makepkg本身的变量发生冲突。如果一定需要一个新变量,那就在变量名前加下划线作为

前缀。

避免使用/usr/libexec/存放文件,可以换用/usr/lib/{pkgname}。

The "Packager" field from the package meta file can be customized by the package builder by modifying the appropriate option in the /etc/makepkg.conf file, or alternatively by exporting the PACKAGER environment variable before building packages with makepkg:

 export PACKAGER="John Doe <your.email>"

提交软件包至AUR 在提交任何软件包到AUR前,请注意以下内容:

  1. 任何情况下,一定不要提交用于编译官方二进制仓库已有软件包的PKGBUILDs ,如果所提交的软件包拥有启用了的扩展特性以及(或者)针对官方包的补丁则例外。如果是这样,应该在pkgname中简单明了表明不同点。比如说:提交一个包含sidebar补丁的screen的PKGBUILD,应该命名为screen-sidebar(或者别的)。 并且在PKGBUILDd provides数组变量中加上('screen'),以表示本软件包和官方的screen冲突。
  2. 为了保证已提交给AUR包的安全,请记住正确填写md5sum字段. md5sum可以用makepkg -g命令生成.
  3. 请在PKGBUILD文件顶部按照下列格式添加一行注释
# Contributor: Your Name <your.email>
  1. 核实软件包的依赖关系 (例如运行ldd以检测软件包调用的动态链接库).TU团队强烈建议使用Jason Chu (jason@archlinux.org)所写的namcap工具集,来分析你的软件包. namcap将会告诉你错误的权限、缺失/多余的依赖和其他常规错误。你可以使用pacman安装namcap。记住,namcap可以既可以用来检测 pkg.tar.gz 文件,也可以用于PKGBUILDs。
  2. 依赖问题是最常见的打包错误。 Namcap可以协助检测他们,但不一定全对。最好的方法还是查看源代码里面的文档以及程序的发布网站。
  3. 在你的PKGBUILD中不要使用replaces,除非你希望重命名你的软件包(。比如Ethereal 更名为Wireshark). 如果你仅仅是提供一个已有版本的更迭版, 使用conflicts (如果该软件包还被其他包依赖的话还有provides ). 主要的不同是: 在同步(-Sy)数据库后,pacman如果遇到含有replace字段的软件包,就会立刻取代已安装的符合replase变量值的软件包,不管他是那个仓库的; 另一方面,conflicts仅仅在你手动安装的时候才会去取代相应的包。(此段翻译不甚准确,读者可参阅原文,有志之士望修正)
  4. 所有上传到AUR的文件应该打包到 压缩的tar包文件中,里面是一个目录,包含着PKGBUILD文件的目录和其他编译所需的添加文件 (补丁,安装文件等)。例如:
foo/PKGBUILD
foo/foo.install
foo/foo_bar.diff
foo/foo.rc.conf

压缩包的文件名应该包含软件包的名称,例如:foo.tar.gz

压缩包不应该包含由makepkg创建的二进制包,也不应该包含到文件列表中

常见问题(FAQs)

这里的FAQs只列出了一些在安装、初始配置、启动Arch Linux过程中常见的问题。如果你在进一步使用(如系统工具、X11设置等)或者如何配置硬件遇到问题,请到维基中查

询。如果你认为某个问题应该列在这里,请通知该文档的作者(他的联系方式在该文档的最顶端)。

在安装软件包过程中,pacman报告错误:“因为软件B不在软件集中,无法解析软件A的依赖关系。”

除非是系统本身的问题(如果是这样,那么很快会收到许多用户的错误报告),一般说来是因为你可能没有正确地挂载目标分区,这导致pacman试图将软件包文件解压缩到虚

拟磁盘上,就导致了这个错误(一般刚完成安装后,如果fstab或者grub menu.lst中的根分区设置错误就会导致该错误。译者注)。 请确认在安装过程中设置文件系统挂载点一步中选择了“DONE”而不是“CANCEL”。一般如果你使用自动分区就不会出现这个问题,如果使用了自动分区后仍然出现这个错误

,请将你遇到的问题作为bug提交给开发团队。

如何利用pacman从光盘上安装软件包(自动解决依赖关系)?

如果你想从光盘上安装软件(例如无法访问网络时),首先要把光盘挂载到某处(如/mnt/cd),然后在/etc/pacman.conf的[core]下面加一行“Server = file:///mnt/cd”

。 用你的光盘挂载点代替上面的”/mnt/cd”。然后用”pacman --sync”来同步光盘上的软件包。

如何在安装过程中创建多交换分区?

如果你想使用多交换分区,那么就不能使用安装程序的自动分区功能。手动创建所需的交换分区,然后用mkswap命令在上面创建交换文件系统(这很重要,如果没有执行这个

命令,系统启动时会出问题)。然后继续下面的步骤,在设置挂载点时安装程序仍然只会询问一次交换分区,这没有关系。在完成安装要修改系统配置文件的时候,你可以修

改fstab文件,在里面为每个交换分区添加一个入口:这很简单,拷贝一下标准的交换分区设置行,然后粘贴、修改一下分区号就可以了。这样系统启动时初始化脚本会用”

swapon -a”命令自动激活所有的交换分区。 如果你想在安装完成之前就使用多交换分区,可以切换到另一个终端,然后利用swapon命令逐个激活要使用的交换分区。 在你真得打算使用多交换分区之前,你要明白一点:内核对内存的需求更为迫切,交换分区的大小不是非常重要。请好好照顾自己的小企鹅。谢谢。

无法ssh连接到机器!

编辑/etc/hosts.deny文件,允许远程IP访问。默认设置会拒绝所有的连接请求(不仅仅是ssh连接)。 Edit your /etc/hosts.deny file. The default configuration will reject all incoming connections, not only ssh connections.

如何在启动时加载模块?

如果你想加载未绑定到设备的模块,只要把模块名称加入到/etc/rc.conf的MODULES数组中即可。如果想在访问设备时才加载相关模块,按照通常的alias/option格式将模块添

加到/etc/modprobe.conf即可。如果udev无法正确的加载某个设备模块(这很少见),也可以使用这个方法。如果模块是通过MODULES变量加载的,而又想为它传递输入参数,

那么只把相应的参数按照option的格式添加到/etc/modprobe.conf中即可。

内核因为“中断丢失”无法启动

内核拒绝启动,并显示类似“had IRQ探测失败,had中断丢失”的错误信息。在2.6.x内核中,某些硬盘控制器会出现类似的错误,一般在启动时给内核传递”acpi=off”参数

可以解决这个问题。

播放音乐或者DVD时出现“拒绝访问”错误

用下面的命令将你当前使用的用户添加到optical和music组中:

gpasswd -a johndoe optical
gpasswd -a johndoe audio

先注销再重新登录以使组变换生效,此时就不存在设备权限问题了。 如果你有一个DVD驱动器,你可能需要创建一个链接(如/dev/dvd)到真正的DVD驱动器。一般情况下,udev已经帮你完成了这个工作,我们以此为例子描述一下如何创建类似

的链接。 例如,你的DVD设备名称为/dev/sdc,以根用户身份执行下面的操作:

cat >>/etc/udev/rules.d/00.rules <<EOF
> KERNEL="sdc", NAME="sdc", SYMLINK="dvd"
> EOF
/etc/start_udev
mount /dev/pts
mount /dev/shm

这样就可以通过/dev/dvd访问DVD驱动器了。

Personal tools