ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Arch Linux 0.7 (Wombat) 安装指南(转)

Arch Linux 0.7 (Wombat) 安装指南(转)

原创 Linux操作系统 作者:ilg 时间:2019-06-02 11:15:06 0 删除 编辑
Arch Linux 0.7 (Wombat) 安装指南(转)

  提要:本文为 Arch Linux 0.7 (Wombat) 发行版的一般用户文档。?容包括如何获得一些必要的文件以及安装、配置一个可启动的基系统。此外还为系统设置及 Arch 特有的工具提供了一些简短的参考,例如,pacman 包管理器以及 ABS。

简介

关于 Arch Linux

  Arch Linux 是一个专门为 i686 优化的 linux 发行版本,灵感源于 CRUX ,一个由 Per Lidén 开发的很棒的发行版本。

  Arch 快速、轻量、灵活简单,这并不是些什么新潮时髦的用词,但却都很贴切。Arch 是为 i686 处理器优化的,所以你可以在你的 CPU 周期内得到更多。对比于 RedHat 这些版本,Arch 是轻量级的,它简单的设计让你可以轻易的扩展及以组建成任何所需的系统。

  简单易用的二进制软件包系统让你可以通过一个命令升级整个系统。Arch 也提供类似于 ports 的软件包构建系统(ABS)从而可以轻而易举的创建软件包,它同样可以使用一个命令进行同步。你还可以重建整个系统,只需一个命令哦。一切都是那么的简洁、透明。

  Arch Linux 致力于提供软件最新的稳定版本。当前我们支持着一个相当精简合理的核心软件包集合,它还有着一系列正在增长的由用户及 AL 开发人员制作的额外软件包。

  基于简单轻量这个目标, linux 系统中相对没用的部分已被省去,如 /usr/doc 以及信息页。以我的个人经验来看,它们很少被用到,如果需要,你仍可以在网上找到同样的信息,再说还有 man 呢:)

  Arch Linux 同时也致力于为 linux 用户提供一些更新的功能,如对 hotplug 及 udev 的支持。Arch Linux 0.7 (Wombat) 默认使用 2.6 的内核,支持 XFS/JFS 文件系统。

许可协议

  Arch Linux, pacman, 文档以及脚本的版权由 Jud Vient 拥有 (2002-2004) 并遵循 GNU General Public License 许可协议(简称GPL)发布。

感谢与回应

  本文是以 Judd Vinet judd@archlinux.org 的工作为基础的,Deninis dennis@archlinux.org 进行了一些校对以及一连串修正和添加的工作。校对和反馈请发送至 bugtracker。已经或将会通过提交校对和建议从而为 Arch Linux 官方文档的发展作出贡献的朋友不胜枚举,然而,没有你们的帮助,我们是无法维持与进步的,谢谢你们!

安装 Arch Linux

安装预览

  Arch Linux 是为 i686 处理器优化的,它不能运行于其它较低级别的芯片(i386, i486, i586)。一颗奔腾II或以上级别的处理器是必需的。

  我们有一个 i586 架构的核心软件包集合,但目前并不没有进行经常性的维护,有志愿者吗?

  在安装 Arch Linux 之前,你应该先决定好要使用哪一种安装方法。Arch Linux 为 CD-ROM 安装提供了一个可启动的 ISO 映像,同样也有基于软盘映像的 FTP 安装。你也可以下载大约只有200兆的 ISO 映像,它只包括基系统与内核的软件包的集合,其它都是相同的。

  如果没有 CDROM 驱动器,你自然就得用软盘和 FTP 进行安装。否则,你就可以使用 Arch 安装光盘了。你可以从下面列出的镜像中选择其中的一个下载及刻录最新的 ISO 映像;如果你的拨号链接很烂的话,也可以让别人为你刻录一份;又或者你没有刻录机,你也可以从 OSDisc 上购买光盘,它几乎是全球运送的。

  你也可以用 CD 进行 FTP 安装,软盘一般只作为最后的方法,因为那将会是痛苦而缓慢的过程,盘片也很容易损坏。

  此外,你不必担心使用旧版本的 ISO 映像进行安装,因为当你一旦建立起了基系统,升级到当前的版本将会是一件轻而易举的事情,除非你没有宽带。

  目前暂不支持在安装过程中使用 PPP 协议的拨号连接,因为所需的 pppd 后台程序和 ISDN 工具都没有包含在根磁盘映像中。

  你的局域网内必需有一个已经连接上因特网的网关并可以处理安装时的所有请求,才能保证 FTP 安装的成功。当然,你也可以在网中设置安装用的 FTP 服务器。重点是,你不能为你的电脑加上 Modem,然后使用安装程序通过它拨号上网,这样行不通。

  对于新手来说,最友好的安装方法莫过于从光盘上安装基系统以及所需的软件,然后当你建立好因特网链接后,再全面的升级系统以及加入你需要的软件。

  另一件在安装前你应该知道的事是,在安装过程中你会被问及一些关于硬盘分区、加载的模块以及对一些重要的系统文件修改的确认,如 lilo.conf 和 rc.conf。在这里,安装程序不会手把手的教你进行所有的设置,你得知道如何去选择。这对新手来说很重要,如果这已经吓着你了,那就把这文档读完,这样最少你会对即将被问及的问题有一些概念。在你折腾你的系统前如果还不是很明白的话,那上IRC,论坛,又或者在邻近找个高人。在安装完成之前,你很可能得经过一番折腾,别说我没提醒过你哦。应该说,似乎并不是那么糟:)

你所需要的

  • 对 linux 及你的系统的了解,特别是你的硬件
  • Arch Linux 安装介质

    (参见 镜像列表)
    • Arch Linux 安装, 或是
    • 2-7 张软盘, 这取决于你的需要: SCSI, ethernet, 等等.
  • 一台基于 i686 的计算机 (PPro, Pentium 2 or higher, Athlon/Duron, 等。 注意:并不支持AMD K6, Transmeta Crusoe, CyrixIII, 以及 VIA-C3.)
  • 可打发的时间

获得 Arch Linux

  你可以从 download page 中的任何镜像下载。如果你正在下载 基于 FTP 安装的软件映像,先确认是可提供这类软件包的镜像。同样,如果你将使用 CD 进行安装,先确认该镜像提供 ISO 映像。

  以下是镜像列表,以供参考(注意:它们可能会过时);请查询页面获得当前的列表。

  

下载镜像

http://prdownloads.sourceforge.net (ISO only)

美国

ftp://ftp.nethat.com

美国

ftp://ftp.ibiblio.org

美国

ftp://ftp.oit.unc.edu

美国

ftp://ftp-linux.cc.gatech.edu

美国

ftp://ftp.belnet.be

比利时

ftp://ftp.kegep.tuc.gr/archlinux/

希腊

ftp://ftp.du.se (ISO only)

瑞典

ftp://ftp.fsn.hu

匈牙利

http://darkstar.ist.utl.pt

葡萄牙

ftp://ftp.parrswood.net

英国

ftp://ftp.nluug.nl

荷兰

ftp://ftp.surfnet.nl

荷兰

ftp://ftp.archlinux.de

德国

ftp://ftp.mpi-sb.mpg.de

德国

ftp://ftp.tu-chemnitz.de

德国

ftp://ftp.gwdg.de

德国

ftp://ftp.rez-gif.supelec.fr

法国

http://archlinux.antesis.org

法国

ftp://archlinux.creativa.cl

智利

ftp://saule.mintis.lt

立陶宛

ftp://sunsite.icm.edu.pl

波兰

http://mirror.pacific.net.au

澳洲

ftp://gd.tuwien.ac.at

?地利

准备安装介质

软盘安装

  1. 下载 images/boot.img (路径相对于镜像的根目录)
  2. 下载 images/root.img
  3. 从 images/addons/ 子目录中下载其它所需的额外映像: ether_pcmcia.img PCMCIA 工具集/模块, Ethernet 模块 fs.img XFS/JFS 文件系统工具集, Ext2 加强工具集 keymaps_usb_firewire.img 附加的键盘映射/控制台字体, USB/Firewire 模块 raid_lvm.img RAID/LVM 模块及工具集 scsi.img SCSI modules
  4. 将下载的映像写入空白的软盘: (插入第一张软盘)

    # dd if=boot.img of=/dev/fd0

    (插入第二张软盘)

    # dd if=root.img of=/dev/fd0

    (插入软盘写入其余所需的额外映像)

    # dd if=scsi.img of=/dev/fd0

      如果你需要在 Windows 下写入这些映像,你可以下载 rawrite.exe,用它来代替 dd。

  5. 如果你想通过 FTP 进行安装,记下你的网络设置,稍后的安装中会用到:
    • IP 地址
    • 子网掩码
    • 网关
    • 网卡的以太网模块(如:eepro100,8139too)

光盘安装

  1. 下载 0.7/iso/i686/arch-0.7.iso(路径相对于镜像的根目录)
  2. 下载 0.7/iso/i686/arch-0.7.md5sum
  3. 使用 md5sum 对 ISO 映像进行验证:

    # md5sum --check arch-0.7.md5sum

    arch-0.7.iso: OK

  4. 刻录 ISO 映像(这得看你所使用的操作系统及软件)。如果你想下载的是基本或 beta 映像,取个适合的文件名,如:用 arch-0.7-base.iso 取代 arch-0.7.iso,对应与 m5sum 操作。
  5. 如果你想通过 FTP 进行安装,记下你的网络设置,稍后的安装中会用到:
    • IP 地址
    • 子网掩码
    • 网关
    • 网卡的以太网模块(如:eepro100,8139too)

使用光盘

  如果你不是从光盘启动,你应该直接跳到软盘安装指引,又或者你已经对启动过程熟悉无比,你也可以略过这唠叨的一段直接跳到通用安装规程,它概要的描述了安装 arch linux 的过程。

  使用 arch linux 安装光盘重启你的计算机。确认你的 bios 支持从光盘启动,如果不知道怎样做,仔细看看主板说明手册或求助于你的系统制造商。一旦从光盘启动后,启动提示行就不会无了期的等待你的输入或向你解释各个选项。如果你在一个 ide 系统上安装,直接在提示行上按下回车键。如果是 scsi 系统,输入 arch-scsi 启用支持 scsi 的内核。在这里你也可以输入一些你认为需要的内核的参数。

  如果你的光盘莫名其妙的启动失败了,而你又在使用一台较为旧式的光驱和 cd-rw 的光盘,试试使用 cd-r。一些老式的光驱(就像... dennis的)并不能读取 cd-rw 光盘。

  启动完成之后,你会看到屏幕上半部分有着由一些命令伴随着的根命令行,这会你就可以开始进行真正的安装了。别被这些命令唬着了,从光盘启动,你不再需要运行 loaddisk,因为这在启动过程中已经自动完成了。

使用软盘

  强烈推荐你使用 Arch Linux 光盘启动系统,不只是因为软盘很容易挂掉,而且整个启动的过程也会很长,如果你需要一些额外的模块,软盘片会让你疯掉的。注意:FTP 安装不受限于软盘启动,使用光盘启动同样可以进行 FTP 的安装。

  使用启动软盘重启你的计算机。一阵嘎吱嘎吱的噪音过后,你应该就看到启动提示行了,(译者笑,Jubb干脆取消软盘安装好了)它正急切的等待着你的输入,键入一些所需的内核的参数后按下回车。

  如果你使用的是 USB 键盘,你就需要在启动时自动加入对 USB 的支持。你可以通过 NEEDUSB 参数为你的 USB 总线类型进行设置。例如,如果你的桥接器为 UHCI ,那就应该在启动提示行中键入 arch NEEDUSB=uhci。在根盘片载入后,你将会被提示需要加载 USB 附加盘片,10 秒后将会自动装载。如果你不能确定 USB 总线的类型,试试使用 NEEDUSB=auto,这将会装载所有的 USB 总线模块(UHCI, OHCI, EHCI 三种)。

  启动过程中,你将会被提示:

VFS: Insert root floppy disk to be loaded into RAM disk and press ENTER

  插入根盘片然后按下回车。几经折腾后你会来到命令行,因为你将会需要通过以太网模块进行安装,所以你应该从 ether_pcmcia 盘片中加载相应模块。插入盘片然后运行:

# loaddisk /dev/floppy/0

  经过一会,所有以太网模块将会被解压至文件系统。如果运行上述命令后目录 /lib/modules/ 仍然的空的,又或者出现连串的错误,那么你的盘片很可能已经挂掉了。创建一张新的模块盘片然后重试。这种情况下并不需要重启,只需重新键入 loaddisk 命令即可。即使已经有几张盘片挂掉了,你也不必担心,因为这很平常(真不幸)。别说没人告诉过你哦。

  你也应该加载一些所需的附加盘片,像是 SCSI 或是 RAID/LVM。就如上述的那样使用 loaddisk 命令加载每张盘片,顺序并没有关系。

  如果你知道你需要的是哪个以太网模块,你应该现在就使用 modprobe 命令进行加载。如果你不知道,也不需要太担心,安装程序将会进行自动检测。

通用安装规程

  此时,你的系统应当是已经启动好,硬盘和安装源都必须是可用的,确认所有必需的模块都已经加载,如果有的话。

  安装步骤

  

  1. 运行安装
  2. 网络设置(仅对 FTP 安装)
  3. 硬盘分区

    1. 自动设置
    2. 硬盘分区
    3. 设置文件系统挂载点
  4. 选择软件包
  5. 安装软件包
  6. 安装内核
  7. 设置系统
  8. 安装启动管理器
  9. 退出安装

  有经验的用户可以通过提供的命令行工具在安装程序开始前预设硬盘或任何安装所需的设备。如果手工操作对你来说并不是急需的话,你可以跳过这一段。注意:Arch Linux 安装介质也为有经验的用户提供了一份 /arch/quickinst 脚本(译者注:快速安装脚本)。这份脚本会将基本的软件包安装到用户指定的目录中。如果你是用别的好玩的东东来进行安装(像 RAID 和 LVM),又或者你根本不想用安装程序,你大概会需要这份 quickinstl 脚本。

运行安装

  现在你可以通过运行 /arch/setup 来调用安装程序。一些相关讯息过后你将会被提示选择安装方法。如果你有一个快速的网络连接,那么 FTP 安装会是个更好的选择,这样可以确保你得到最新的软件包而不是光盘上可能已经过期的旧软件。注意:如果你的代理设置很难搞,那就麻烦了,因为如果没有光盘,这将是你安装 Arch Linux 唯一可行的方法。

  使用安装脚本时,完成每一步后确认你在子菜单中选择了 DONE。这将会为你下一步的操作保存下当前的设定。此外,避免退回到较前的步骤,因为这样会让安装程序混乱。

  架设自己的 FTP 软件包镜像或者是创建包含你所需要软件包的可启动安装光盘是件相当容易的事,这也使得在多台机器上安装 Arch Linux 变得更简单,于此同时,也节省了大量的镜像带宽,你简单我们轻松,考虑下吧!

  当你选择光盘安装时,你将只能安装光盘内的软件,它们可能已经很旧了。当然这也有优点,你并不需要连上网,因此对于拨号用户又或是不想下载大约最少 100MB软件包的用户来说,这是个值得推荐的选择。

  选择安装方式后(FTP/CDROM),你将会被带到安装菜单,里面按顺序的列出了必要的安装步骤。

  安装过程中的任何时候你都可以切换到五号虚拟控制台(ALT-F5)来查看安装过程中命令的输出。ALT-F1 可以切换回正在运行安装程序的一号控制台,如果需要,你还可以通过 F-键 在各个控制台间切换。

网络设置(仅对 FTP 安装)

  网络设置使用你能够安装以及设置你的网络设备。

  如果还没有 eth0 设备,安装程序会提示你是否需要检测网络模块。除非你想搞砸你的系统(这不应该发生),否则就选 YES;又或者选 NO,如果你想手动的装这些模块的话。如果安装程序检测不到匹配的网络模块,请先确认在这之前你已经通过 loaddisk 命令将可用的以太网模块正确的加载。如果是从光盘启动,那么这个过程是自动完成的。假如你的网卡仍然没被检测到,确认下它是不是已经插好以及是否被 Linux 内核所支持。

  当正确的模块被加载后,将会有 configure your network with DHCP (通过 DHCP 设置你的网络)的选项。如果你已经连上了 DHCP 服务器,那只需键入 YES,安装程序会完成余下的工作。如果你选择了 NO,你将会需要 enter the networking information manually(手动输入网络信息),就像我之前告诉你需要记下的一样。

  显而易见,这条输入项仅对应于 FTP 安装。

硬盘分区

  Prepare Hard Drive 会在子菜单里为你的目标硬盘提供两个可选项。

  第一个选项是 Auto-Prepare(自动设置),它会自动将你的硬盘分为 /boot,swap 和 root 三个区(译者注:分别是启动、交换和根分区),然后为这三个分区创建文件系统。这些分区会被自动挂载至适当的位置,确切来说,这个选项会创建:

  • 32MB 采用 ext2 文件系统的启动分区 /boot
  • 256MB 的交换分区 swap
  • 剩余空间为采用 ext3 文件系统的根分区 /

  具体的大小可以根据你的硬盘稍稍进行调节。如果你不太了解硬盘分区的话你可以选择这一项,但会被提醒:

  AUTO-PREPARE WILL ERASE ALL DATA ON THE CHOSEN HARD DRIVE!(自动设置将删除硬盘上所有的资料!)

仔细阅读安装程序给出的提醒,确认你所要进行分区的设备。

  你可以打开另一个控制台(ALT-F2)对你要分区的设备进行验证,键入以下然后回车:

# cfdisk -P s

  这里会显示当前所选设备的分区表,应该足以识别出该硬盘。

  如果没有设备名显示([nothing] will be COMPLETELY ERASED! ...(无法删除...))而在按下 YES 确认后安装程序又出现 Device not valid(无效设备)的错误提示,请先确认你已经加载了所需的设备模块,如 SCSI,RAID 等。你现在仍然可以切换到另一个控制台使用命令加载模块,然后通过 ALT-F1 返回到安装程序。

  如果你更喜欢手动分区,那就根据下面列出的说明使用另外两个选项,partitioning manually(硬盘分区)和 Set Filessystem Mountpoints(设置文件系统挂载点)设置目标盘。否则,Auto-Prepare (自动设置)完成以后,Return to Main Menu(返回主菜单)。

硬盘分区

  如果你已经选择了 Auto-Prepare(自动设置),那么请跳过 Partition Hard Drives(硬盘分区)。

  否则,你就应该选择需要进行分区的磁盘,然后你会进入到 cfdisk 程序,你可以在里面自由的修改分区信息直到你 [Write](写入)以及 [Quit] 退出。

  你至少需要一个交换分区以及一个根分区。

设置文件系统挂载点

  同样,如果你已经使用了 Auto-Prepare(自动设置),那么应该跳过Set Filesystem Mountpoints(设置文件系统挂载点)这一项。在进行设置之前你应当已经在上一个的选单中(又或者是通过什么别的方法)编辑好你的分区信息。

  选单内第一个问题是使用哪一个分区作为 swap(交换分区)。从列表中选取之前创建的 swap(交换分区),下一步将会是选择 root(根分区)。

  每当你指定需要挂载的分区时,系统将会询问你是否在这个分区上创建文件系统。如果你选择 YES,系统会询问你要创建哪种文件系统(个人喜好,真的。如果你不太明白,那就选择 ext2 好了),接下来被选择的分区将会被格式化,上面所有的数据会被删除。这应该没什么问题的,可是如果你想保存分区上任何已存在的文件,那在这里请选择 NO。

  如果你想保留分区上的数据,我强烈建议你先备份,这比祈祷在安装过程中不出错要好些。可别说我没提醒你!

  你将不会被问及在 swap(交换分区)上需要创建哪种文件系统,因为它使用自己专用的。

  如果你要挂载其它的分区,例如单独的 /boot(启动分区)或 /home(用户目录分区),现在就可以这么干了,很简单的。

  • 选择挂载分区
  • 选择文件系统(如果你想创建新的分区而不是保留数据)
  • 选择分区的挂载点

  重复以上的步骤直到你满意为止,然后选择 DONE(完成)来创建文件系统以及完成挂载。在格式化和挂载完所有的分区后,你将会回到 Main Menu(主菜单)继续余下的安装。

  不要将 /tmp(临时文件分区)挂载至单独的分区中,因为这样会把安装程序搞糊涂的!先别理它,让安装程序完成,等你有了一个可运行的系统后,你可以再进行手工设置。

选择软件包

  Select Packages(选择软件包)让你可以从光盘或 FTP 镜像中选择想要安装的软件包。

  如果你选择的是光盘安装,根据需要,你得告诉安装程序是不是要挂载光盘,又或者你已经将源盘挂载到 /src 上了。你可能需要从已检测出的设备的列表中 choose a CDROM drive(选择一个光盘驱动器),通常是选 CD。

  如果你的光驱不在列表中,请确认是不是已经加载了所需的模块,如 SCSI 或 USB 存储设备的支持。

  如果你选择的是 FTP 安装,你需要从列表中选择一个离你较近的镜像,或者选择 CUSTOM (自定义)来输入你可信的 FTP 路径作为安装源,例如你局域网内已经准备就绪的服务器,又或者是因为什么别的原因而没在被列出的镜像。

  无论你选择的是什么安装源,在软件包列表下载完成以后,你将会来到 package category selection(软件包类别选择)的选项。

  如果下载软件包列表时出错,你应该选择另一个 FTP 镜像,确认你的网络是连通的,而你又并没有漏填任何自定义服务器的地址。也可能是你弄错了 -- 把源盘挂载到 /src 目录去了(如果你选择了这项)。

  解决完这个,就可以根据你的需要来指定软件包组群进行安装了,然后再通过选择/取消单独的软件包进行调整。

  任何情况下,BASE 类别的所有软件包都会被选择,然后你应该选择其它包含你需要的软件包的组群。注意:individual package selection(单独软件包的选择)的选项只会在你选择了它所属的类别后出现,所以如果你只选择了 BASE,你将不能再加入任何其它的软件包。

  如果你只想要 select the bare minium(最小化安装),可又希望能 browse through all available packages (浏览所有软件包)看看还有什么可以添加的,那么你应该选择 NOT select all package by default(不默认选择所有软件包)的选项而不是select all package categories(选择所有软件包类别)。

  Select all packages by default?(选择所有默认的软件包吗?)这条问题很容易被误解,它主要是问你是否需要所有类别中的软件包。如果选择了 YES,那么 chosen categories(所选类别)内软件包whole list(完整的名单)会显示以及被选择,接下来你的工作就是 deselect(取消)你不需要的软件包了。

  如果选择 NO,安装程序会显示同样的软件包列表,但只有 BASE 类别会被选择,这样你就需要明确的知道你所要安装的任何其它软件包。

  选择 NO 有助于建立一个更小的系统!

  这里建议你只安装所有的 BASE 类别的软件包。不必为你没有安装所需要的软件包而担心,一旦基系统启动后,你可以很容易的安装更多的软件包,安装用于设置因特网连接的所有软件包是唯一的例外,这些软件包通常是:

dhcpcd (base) 如果你的客户端是 DHCP isdn4k-utils (network) 如果你使用 ISDN 拨号连接 ppp (daemons) 如果你使用模拟式调制解调器 rp-pppoe (network) 如果你使用 DSL 虚拟拨号

  提供下载的基本 ISO 映像中不包括 BASE 类别外的软件包,所以如果你需要拨号软件,请下载完整的 ISO 映像。

  完成软件包的选取后,离开选单继续下一步。

安装软件包.

安装软件包

  现在,Install Packages(安装软件包)的选项会将 pacman 和你所选取的软件包安装到硬盘以及解析它们的依赖性关系。

  如果你跳过了硬盘设置的选项,系统会询问你 root 分区挂载在哪里。这种情况仅限于手动的分区及创建文件系统的用户,这些用户需要输入根目录(用于安装软件包)。安装程序默认将 root 分区挂载到 /mnt,然后是其它的分区。

  错误及调试信息会在五号终端输出(ALT-F5)。在软件包安装完毕后,继续下一步,Install Kernel (安装内核)。

安装内核

  Install Kernel(安装内核)选项会询问你需要安装哪个内核映像。

2.6 IDE 安装只有 IDE 支持的 2.6.x 通用内核。注意:2.6.x 系列的内核已经可以直接使用 ATAPI 光盘刻录机以及 USB 存储设备而无需先模拟 SCSI。

2.6 SCSI 安装带有 IDE 及 SCSI 支持的 2.6.x 通用内核。如果你安装了任何 SCSI 驱动器,选择这一项;如果不确定,那就选择这项,尽管内核会稍微慢些、大些,但也比失败好。

2.4 IDE 安装只有 IDE 支持的 2.4.x 通用内核。 2.4 SCSI 安装带有 IDE 及 SCSI 支持的 2.4.x 通用内核。如果你安装了任何 SCSI 驱动器,又或者需要通过模拟 SCSI 来使用 IDE 光盘刻录机以及 USB 存储设备,选择这一项。

2.6 SRC 从源码安装 2.6 内核。如果你胆子不大就不要选这个了,因为你几乎都得自己来。

2.4 SRC 从源码安装 2.4 内核。再次提醒你,仅推荐你在基系统安装完成及运行后进行(如果通用内核确实不能满足你的需要时)。

  注意:Arch Linux 默认使用 2.6 内核。虽然这无关紧要,但我还是得告诉你。

设置系统

  Configure System(设置系统)选项允许你为新安装的系统编辑一些重要的配置文件。

  如果你真的很急,那完全可以跳过这一步,希望默认设置是有效的。但我强烈建议你重复这一步来更改所列出的配置文件。请查询系统设置这一节获得更详细的信息。

安装启动管理器

  Install Bootloader(安装启动管理器)选项会在你的硬盘上安装启动管理器,GRUB(推荐)或 LILO的其中一个,这取决于你的个人喜好。

  选择这个选项前,确认你已经编辑好正确的配置文件,或者最少检查一下所选择的默认设置。

  如果你选择了 install LILO(安装 LILO),那启动管理器将会根据你的配置文件进行自动的安装,而GRUB 则需要指定安装启动管理器的分区。这里你应当选择输入 LILO 的启动选项,通常是 [...]/disc,因为它涉及到硬盘的 master boot record(主引导记录)。如果出错,详细的错误信息通常会在五号虚拟终端输出。

  如果你打算建立一个多重引导的系统,那么将启动管理器安装到 root 或 /boot 分区会更好些,然后将你需要在 MBR 中保留的启动管理器提交该启动扇区。

  将一个启动管理器安装到 MBR 将会覆盖已有的启动管理器!如果你在运行一个多重启动的系统或是希望保留一个从别的系统安装的启动管理器,确认你明白我的意思,

退出安装

  现在 Exit Install(退出安装), 取出光盘,在命令行键入 reboot 命令!

  如果你的系统启动了,你可以用 root 登入而无需任何密码,所以登入系统后的第一件事就是要用 passwd 命令为 root 设置密码。参见用户管理部分加入一个用户,然后设置你的因特网连接

  恭喜!现在可以设置系统里你真正感兴趣的部分了。

系统设置

  这些是 Arch Linux 的核心配置文件。你应该学会怎样使用文本编辑器手动的编辑这些文件,因为将将不会有任何 GUI (图形界面)程序帮助你。这里只列出一些最基础的配置文件。如果你需要设置一个特定的服务,请阅读相应的 manpage (帮助页)或查询网上的文档。

  Arch Linux 没用使用任何抽象层来管理你的系统。这么一来,你就常常可以得到软件作者的指导又或者利用搜索引擎找到解决的方法而不会搞乱你的系统,因为系统并不关心这些问题。

配置文件

  在启动刚安装好的系统前,你至少应该看看这些文件。

  配置文件列表

  

  1. /etc/rc.conf
  2. /boot/grub/menu.lst
  3. /etc/lilo.conf
  4. /etc/hosts
  5. /etc/fstab
  6. /etc/modprobe.conf
  7. /etc/modules.conf
  8. /etc/resolv.conf
  9. /etc/conf.d/*
  10. /etc/profile

/etc/rc.conf

  这是 Arch Linux 的主配置文件。通过它你可以设置你的键盘、时区、主机名、网络、后台程序、启动时加载的模块,用户设置以及更多。你应该把文件中的设置从头到尾读一遍并搞懂它们:

HARDWARECLOCK(硬件时钟) 如果你的 BIOS 时钟设置的是 UTC 或是 GMT ,这里你都可以设为 UTC,又或者是 localtime,如果你的 BIOS 里是这么设置的话。假如你已经安装了一个操作系统但并不能正确的处理 UTC BIOS 时间,就像 Windows,那就在这里选择 localtime,否则最好还是使用 UTC,这样 daylight savings time(译者注:即日照节约时间。由于纬度的关系,由国家规定将时间拨快一小时,以节约能源)就不是什么问题了,它还有些别的好处。

TIMEZONE(时区) 指定你的时区。时区的相对路径从时区信息文件目录 /usr/share/zoneinfo 开始。例如,german 的时区是 Europe/Berlin,即 /usr/share/zoneinfo/Europe/Berlin。即使不知道你的时区文件确切的名字,现在也不用担心。

KEYMAP(键盘映射) 定义启动时跟随 loadkeys 程序加载的键盘映射。可用的键盘映射位于 /usr/share/kdb/keymaps。注意:这项设置仅对终端有效,而不作用于任何图形化的窗口管理器或 X。

CONSOLEFONT(控制台字体) 定义启动时跟随 setfont 程序加载的控制台字体。可用的字体位于 /usr/share/kdb/consolefonts。

USECOLOR(使用颜色) 启用(或禁用)启动时的彩色状态信息显示。 USELVM(使用 LVM) 设为 "YES" 来让系统在初始化时运行 vgchange 从而激活所有 LVM 组。如果你不明白这是什么意思,那就别碰它。

HOSTNAME(主机名) 设置机器的主机名(不包括域的部分)。这完全是你自己的选择,你可以使用字母、数字和一些常用的特殊字符例如破折号。但可别太标新立异了。

MODULES(模块) 在这里你可以定义启动时所需加载模块的名称而无需像 modprobe.conf(如果你在使用 2.4.x 的内核,那就是 modules.conf) 那样让它们绑定硬件设备。加入模块的名称就行了,如果需要,可以在 modprobe.conf 里加入一些选项。在模块名称前加叹号后该模块在启动时将不会被加载。

INTERFACES(接口) 在这里定义你的网络接口。默认部分及其说明已经足以解释清楚了。如果你不使用 DHCP 来设置而希望手工的在 shell 里进行设置,那就记下 ifconfig 命令显示出的与你将会设置的设备名同名的变量值。

ROUTES(路由) 在这里你可以使用任意的名字定义你自己的静态网络路由。可以参考 default gateway(默认网关)。基本上这部分和你使用 route add 命令提交的是一样的,所以如果你不知道该写些什么,推荐阅读 man route。

DAEMONS(后台程序) 这部分只列出了 /etc/rc.d 内包含的启动时触发的脚本的名称。如果脚本名前面加了叹号,它将不会被执行。通常来说你是不需要改动默认设置的,但如果你安装了像 sshd 这样的系统服务,那就要经常进行编辑了。

/boot/grub/menu.lst

  GRUB 是 Arch Linux 默认的启动管理器。如果你使用 GRUB ,那么你应该为你的启动设置检查和修改这个文件,否则你应该看如何 设置 LILO

  设置 GRUB 是十分容易的,最大的难处在于它使用了一套和 DevFS 以及 /dev 不同的设备命令方式;大至上,你的硬盘是被分为 (hd0)、(hd1) 等等的,IDE/SCSI 总线也使用同样的号码排列,就如 DevFS 子目录的 disc0、disc1等。磁盘上的分区为 (hd0,0)、(hd0,1),如此类推,0 意味着第一个分区。默认的 menu.lst 里有一些例子,好让你弄明白。

  一旦你掌握了设备命令的规则,你需要做的就只是为你的启动环节选择一个好的抬头,通过参数的形式为 root 提供正确的分区设备让它在启动时作为 / 被挂载,然后加入一行 kernel,它包括内核所在的分区和路径,以及启动参数。默认的设置应该是正常的了,你只需要检查 root 和 kernel 两行的信息是否正确。

  如需为其它操作系统启动扇区的加载添加启动选项,这个例子可能会有帮助。只需在文件的最后加入这一块,然后根据包含所需启动系统的启动扇区的分区来修改分区设备,你或许就可以成功的启动任何微软的操作系统。

# (1) Other OS

title My Other OS

rootnoverify (hd0,1)

makeactive

chainloader +1

  如要需要其它操作系统的高级设置,请查阅 GRUB 在线手册.

/etc/lilo.conf

  这是 LILO 启动管理器 的设置文件。如果想在你的系统上使用 LILO,检查这个文件确保它是正确的。查看 LILO 文档获得帮助。

  你应当检查的是 root= 这一行是否在映像部分内以及 boot= 是否位于文件的起始位置。root 这一行指定的是启动时作为根文件系统被挂载的设备。如果你不知道这里应该输入些什么,切换到另一个终端键入 mount 看看所列出的当前已挂载驱动器,然后查找显示着挂载在 /mnt 类型上的设备名的那行,这一行开始部分的设备路径就是应该在你的 lilo.conf 内 root 那行输入的路径。

  大多数情况下,boot 这行的默认设置应当是ok的,除非你想为多个操作系统做一些自作聪明的启动管理设置。这里涉及的设备应当与 root 的那行一样有着相同的盘号,但不是以 part1 结尾或仅仅是一个 disc。这一步涉及整个盘片,而不仅仅是一个分区,因为它将按你通常要的那样指示着 LILO 写入 MBR(主引导记录)。如果不是,你可以在稍后修复这可覆写的启动扇区。

  为预防一些悲剧的发生,你应当确认你知道如何恢复其它操作系统的启动扇区,例如使用 Windows 的 FIXBOOT/FIXMBR 工具。

  从安全角度来说,你应该保留 prompt 行下面的 lba32 选项,这将避免很多问题。

  有时候(取决于你的 BIOS)LILO 将不会在启动时运行而且会不停的弹出一个错误。多数情况下你可以通过移去 lba32 这一项解决,又或者你的硬件设置有些特别,这意味可能是你的 CD-ROM 驱动器是主盘而硬盘驱动器是从盘,而你的 BIOS 又对此非常敏感从而拒绝启动。为避免这种情况,你可以试试在 IDE 总线上把安装盘设置为主盘。如果你有一个 IDE 和 SCSI 混合的系统而情况又持续的话,那你可能需要用 LILO 里的 disk 和bios 选项作一些尝试;系统内的磁盘驱动器按 BIOS 进行顺序编号,从 0x80 开始。如果足够幸运,那 SCSI 控制器将会告诉你哪个驱动器有着哪个 BIOS ID,可是通常没有那么的走运。驱动器如何编号取决于你的 BIOS,所以最坏的情况下你只能猜了。典型的如下:

boot=/dev/discs0/disc0/disc

disk=/dev/discs0/disc0/disc bios=0x80

  disk 选项为 linux 的已知磁盘设备映射 BIOS ID。注意:这仍不能保证它们能正常工作,也许还会出错,但这总比你单单的重新整理硬件好。在这部分,可能出错以及需要特别处理的东西实在是太多了。多数情况下问题都可以通过 lba32 选项解决。旧式的硬盘在进行映射前往往都需要特别关注。

  读这节的时候别烦躁,我(Dennis)就试过在一个奇怪的系统上因为这个问题犯错,弄懂它们是个好主意。你也可能不会遇到这些问题,但如果有,那就用 GRUB吧 :)

  如何仅使用拯救磁盘重建 LILO 启动扇区会在稍后解释。

/etc/hosts

  这里你可以设置如何在你的网络上为其它计算机绑定主机名/IP。如果主机名不是 DNS 的一部分,你可以把它加进去。通常来说你不需要改变任何东西,但你可能想要在文件内加入系统的主机名和主机名 + 域名,为你的网络接口解析这个 IP。如果你不知道你在干什么,那在阅读 man hosts 前就不要做什么改动。

/etc/fstab

  你的文件系统设定及挂载点在这里进行设置。安装程序应该已经为你创建了必要的项目,但你还是应该检查一下确保它的正确性。

/etc/modprobe.conf

  仅适用于 2.6.x 内核。

  这个文件告诉内核它需要加载系统的哪些设备。例如,需要内核在启用网络的时候加载你的 Realtek 8139 以太网模块(如,设置 eth0),用这一行:

alias eth0 8139too

  这个文件的设置语法几乎与旧的 modules.conf 一样,除非你使用了一些奇怪地选项如 post-install,那你就需要花些时间阅读 man modprobe.conf了。

/etc/modules.conf

  仅适合于 2.4.x 内核

  这个文件告诉内核它需要加载系统的哪些设备。例如,需要内核在启用网络的时候加载你的 Realtek 8139 以太网模块(如,设置 eth0),用这一行:

alias eth0 8139too

/etc/resolv.conf

  利用这个文件设置你将要用到的 nameserver(即域名服务器)。设置如下:

search domain.tld

nameserver 192.168.0.1

nameserver 192.168.0.2

  用你的设置替换 domain.tld 和 ip 地址。search 域指定了自动为非法主机名添加的域。设置了这一项,ping myhost 将会如上所设的那样成为 ping myhost.domain.tld。这些设定通常不太重要,大多数人都不管它。如果你使用的是 DHCP,当网络启用时,这个文件会自动被填上正确的值,这意味着你完全可以也应该很高兴的跳过它。

/etc/conf.d/*

  设置过程中,这个文件是完全不重要的,提起它只是因为有趣。

  部分后台程序脚本在这个目录下对应着一个配置文件,它包含着一些或多或少有用的默认值。当一个后台程序启用时,它会首先在这个目录下查找它的配置文件的设定,然后是 /etc/rc.conf。这意味着你只需在 rc.conf 内设置适当的变量值就可以轻而易举的集中所有后台程序的控制选项,又或者你更喜欢分开多个文件进行设置。如果都是简单的脚本,生活是不是很棒?

/etc/profile

  这个脚本是每个用户登入初始化系统时运行的。在 Arch Linux 下它是很简洁的(多数设置是),你可以根据自己的需要编辑或定制它。

  特别指出,如果你要改变你的语言设定(默认的是英语),你可以在 /etc/profile 加入这行 export LANG=my_locale。使用 locale -a 命令可以获得系统可用 locales 的列表,选择一个最适合你替换 LANG 的值。

启动脚本

  Arch Linux 的启动非常简单,类似于 *BSD。运行的第一个启动脚本是 /etc/rc.sysinit,然后是 /etc/rc.multi(正常启动),最后是 /etc/rc.local。当启动的是 runlevel 1(单用户模式)时,/etc/rc.single 将会代替 /etc/rc.multi 运行。在 /etc/rc?.d/ 目录下,你将不会找到系列没完没了的符号链接来为所有可能的 runlevel(运行级别)定义启动序列。由于这样,Arch 仅提供了三个 runlevels(运行级别),如果你考虑要用 runlevel 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.d/*

/etc/rc.sysinit

  主要的系统启动脚本。它引导着一些重要的东西如挂载文件系统、运行 devfsd、激活交换分区、加载模块、设置本地化参数等等。或许你永远也不需要编辑这个文件!

/etc/rc.single

  单用户启动。正常启动下不使用。如果系统启用了单用户模式,例如启动或正常的多用户模式下使用了 init 1 命令,除syslogd,klogd 和 devfsd外,这个脚本确保了没有后台程序在运行。在确保远程用户不能做出一些可能导致数据丢失或损坏的情况下,如果需要对系统做出任何的修改,单用户模式是很有用的。

  对于桌面用户来说,这个烂模式通常是没什么用的。或许你永远也不需要编辑这个脚本。

/etc/rc.multi

  多用户启动脚本。它会在 /etc/rc.local 之后启动所有在 DAEMONS 队列中预设的后台程序(/etc/rc.conf 中设定)。你应该不需要去编辑它。

/etc/rc.local

  本地多用户启动脚本。这是放置你希望系统在启动过程的最后来运行的命令的好地方,它也是最后以及唯一一个你应该修改(如果有需要)的脚本,你有完全的自主权为这个脚本加入些什么。

  大多数普通的系统设置任务,例如加载模块,更改控制台字体或是设置设备,通常都有它们专属的位置。为避免混乱,rc.local 的加入不应该像你的 /etc/profile.d/ 或其它配置文件那样的随意。

/etc/rc.shutdown

  系统关闭脚本。它停止后台程序,?载文件系统,撤消交换分区等,别碰它。

/etc/rc.d/*

  这个目录包含的后台程序脚本引用自 rc.conf 的 DAEMONS 队列。可以在启动之外被唤起,你可以在系统运行的时候使用这些脚本来管理服务。例如如下的命令:

# /etc/rc.d/postfix stop

  将会停止 postfix。当然,只有在相应的软件包安装后(如例中的 postfix)脚本才会存在。基系统安装后你不会有很多的脚本,但其余所有相应的后台脚本一定是在这里结束的。除符号链接的争论外,这个目录与其它发行版的 /etc/rc3.d/ 或 /etc/init.d/ 非常的相似。

用户管理

  使用 util-linux 软件包所提供的标准命令可以添加/删除用户及组群:

useradd, userdel,

groupadd, groupdel,

passwd, 以及 gpasswd.

典型的用户添加命令如下:

# useradd -m -s /bin/bash johndoe

# passwd johndoe

  第一个命令将会为系统添加一个名为 johndoe 的用户,在 /home/johndoe 为他创建用户目录,然后在目录下放置一些默认的登入文件。系统还会将他登入的 Shell (命令行解释器)设定为 /bin/bash。

第二个命令将会向你请求一个 johndoe 用户的密码。激活帐户是需要设置密码的。

  作为命令 useradd 的另一可选项,adduser 脚本同样可以通过一些简单的问题交互为你的系统创建新的用户。

  余下的命令可通过查看 manpages 来获得更多的信息。

为日常工作创建一个或多个常规用户是个好主意,它可以充分的使用所有可用的安全的功能以及将可能的损害最小化,而 root 用户仅用于系统管理。

因特网连接

  由于开发人员的缺乏,在 Arch 上使用拨号连接至因特网需要进行很多的手工设置。如果有可能,最好还是设置一个专用的路由,这样你就可以让它在 Arch 作为默认的网关。

  Arch Linux Wiki 上有相当多关于拨号连接的文档。

模拟调制解调器

  要使用与 Hayes(译者注:贺氏公司) 兼容的外置模拟调制解调器,你最少需要预先安装有 ppp 软件包。根据你的需要以及 man pppd 的信息来修改 /etc/ppp/options。你需要定义一个 chat 脚本用于在初始链接建立以后向 ISP 提交你的用户名及密码。无论你经验丰富还是菜到家了,pppd 和 chat 在 manpages 里的例子都应该足以教会你怎样建立链接的了。在 DevFS 里,你的串行端口常常是 /dev/cua0 和/dev/cua1。

  你也可以选择安装 wvdial 或类似的工具轻松的进行设置,而不是去倒腾 pppd。

  如果你使用的是 WinModem(PCI 内置式的模拟调制解调器),可以在 LinModem 的主页上找到很多相关的信息。

ISDN

  建立 ISDN 链接需要三步:

  1. 安装及设置硬件
  2. 安装及设置 ISDN 工具
  3. 加入你的 ISP 设定

  当前的 Arch 通用内核包含了必要的 ISDN 模块,这意味着你将不需要重新编译内核(除非你使用的是相当旧式的 ISDN 硬件)。装好你的 ISDN 卡或是插上你 USB 接口的 ISDN 设备后,就可以试着用 modprobe 命令来加载 ISDN 模块了。几乎所有的被动式 ISDN PCI 卡都由 hisax 模块处理,它需要两个参数:type(类型)和 protocol(协议)。如果你的国家使用的是 1TR6 标准,你就必须把 protocol 设置为 '1';如果是 EuroISDN(EDSS1) 则为 '2';如果使用无 D-channel 的专线就应该选 '3';US NI1 则为 '4'。

  更多设置的细节已经包含在内核文档的 isdn 的子目录下,以及网上。

参数的类型取决于你的卡;内核文档的 README.HiSax 内列出了可能的类型。使用适当的选项,选择你的 ISDN 卡以及加载模块,如:

# modprobe hisax type=18 protocol=2

  这将会为我的 ELSA Quickstep 1000PCI 加载 hisax 模块(德国,EDSS1 协议)。在 /var/log/debug 文件内有相关的调试信息,你应该可以看到卡已经可以使用了。注意:如果你使用的是外置的 USB ISDN 适配器,可能需要先加载 usb 模块。

  一旦你确定了设定,就可以在 /etc/modprobe.conf(如果你使用 2.4.x 内核就是 /etc/modules.conf)里加入模块项:

alias ippp0 hisax

options hisax type=18 protocol=2

  你也可以只加入 options,然后将 hisax 加到 rc.conf 里的 MODULES 集。选择权在你,但这个例子有它的好处:模块在不需要使用前不会被加载。

  做完这些,你的硬件应该就可以工作了。现在需要基础工具集。

  安装 isdn4k-utils 软件包,然后阅读 isdnctrl 的 manpage,它将带你入门。manpage 里还有关于如何创建可被 isdnctrl 解析的配置文件的解说以及一些有用的设置例子。

  请注意,如果你使用的是 US NI1 标准,那就需要在 MSN 设定里加入你的 SPID,用冒号分隔。

  使用 isdnctrl 工具设置好你的 ISDN 卡后,应该就能够使用 PHONE_OUT 参数拨入你所指定的机器了,但是会在进行用户名及密码验证的时候失败,如果你设定了一个常规的类似于 PPP 的链接,那么在 /etc/ppp/pap-secrets 或 /etc/ppp/chap-secrets (取决于你的 ISP 所使用的验证协议)加入你的用户名和密码就可以了。如果拿不准,那就两个都填上好了。

  如果所有设定都正确,现在你应该能够用 isdnctrl dial ippp0 以 root 的身份建立拨号链接了。如果有任何的问题,记得查看日丈文件。

DSL (PPPoE)

  假设你的 PC 自身管理着与 ISP 的链接,那么这些细则就只和你有关了。如果你使用的是某种独立的路由器,那只需要定义正确的默认网关就可以了。

  使用 DSL 链接之前,你需要先插上网卡,将它连上 DSL-Modem。把装上的网卡加入 modules.conf/modprobe.conf 或 MODULES 集,接着是安装 rp-pppoe 软件包然后运行 adsl-setup 脚本来设置你的链接。输入所有资料后,你就可以使用下面的命令连接和断开线路了:

# /etc/rc.d/adsl start

  and

# /etc/rc.d/adsl stop

  这个设置通常是很简单直观的,manpage 里有更多的信息。如果你想在启动的时候自动拨号,把 adsl 加入你的 DAEMONS 集就可以了。

软件包管理

Pacman

  pacman 是一个追踪着系统上所有已安装软件的包管理器。它有着简单的依赖支持,对所有的软件包都使用标准的 tar-gz 存档格式。一些普通作业各自的命令在下面会有相应的解说。如需得到 pacman 最新的选项解释,查阅 man pacman。这部分纵览仅仅是让你初步了解一下 pacman 当前的能力。

  典型作业:

  

  1. 使用包文件加入一个新的软件包
  2. 使用包文件升级一个软件包
  3. 卸载软件包
  4. 更新软件包列表
  5. 升级系统
  6. 从软件库加入/升级一个软件包
  7. 列出已安装的软件包
  8. 查看指定软件包是否已安装
  9. 显示指定软件包的信息
  10. 显示软件包所包含的文件列表
  11. 查找指定文件所属的软件包

使用包文件加入一个新的软件包

# pacman --add foo.pkg.tar.gz

# pacman -A foo.pkg.tar.gz

  这将会在系统上安装 foo.pkg.tar.gz 软件包。如果不能满足依赖关系,pacman 会退出并显示错误和报告所缺少的依赖关系,但不会尝试自动解决依赖关系,如果你需要这功能,看看 --sync 选项。

使用包文件升级一个软件包

# pacman --upgrade foo.pkg.tar.gz

# pacman -U foo.pkg.tar.gz

  本质上这和 --add 是一样的,但它会还有升级已安装的软件包而不需要额外的开销。我个人很难想像你会宁愿用 --add 而不是 --upgrade。

卸载软件包

# pacman --remove foo

# pacman -R foo

  这会卸载属于 foo 的所有文件,已编辑过的配置文件除外。只需提供包名就可以了,无需使用 tar.gz 的后缀。

  如果需要完全卸载一个软件包,在上面的命令里加入 --nosave 选项就可以了。

更新软件包列表

# pacman --sync --refresh

# pacman -Sy

  这将会从 /etc/pacman.conf 内定义的软件库中取得新的主软件包列表以及将它解压添加至数据库域。在使用 --sysupgrade 之前你应该使用它来确保你得到的都是最新的软件包。取决于你 pacman.conf 的设定,这个命令可能需要一个可用的因特网链接来接入基于 FTP 的软件库。它和 Debian 的 apt-get update 命令很相似。

升级系统

# pacman --sync --sysupgrade

# pacman -Su

  这个命令会将本地的软件包版本与通过 --refresh 下载的主软件包列表内的版本对比,然后升级系统内所有过时的软件包。偶而运行这个命令可以让你的系统保持在最新的状态。注意:这个命令并不会更新主软件包列表,所以通常较为聪明的做法是把它们联合在一起:

# pacman --sync --refresh --sysupgrade

# pacman -Syu

  通过这些选项,pacman 将自动取得当前的主软件包列表和进行全面的系统升级,所有的依赖关系将会被自动解决。你将想要经常的运行这个。

从软件库加入/升级一个软件包

# pacman --sync foo

# pacman -S foo

  取得以及安装 foo 并满足它所有的依赖关系。在使用 sync 选项前,确认你已经更新了软件包列表,又或是在安装前加入了 --refresh 或 -y 的选项。不同于 --add,--sync 的安装和升级并没有不同。取决于你 pacman.conf 的设定,这个功能需要可用的因特网链接。

列出已安装的软件包

# pacman --query

# pacman -Q

  显示系统内所有已安装软件包的列表。

查看指定软件包是否已安装

# pacman --query foo

# pacman -Q foo

  你可以输入需要查找的名称而不是完整的软件名。如果 foo 已安装,那这个命令将会显示它的名称以及版本

显示指定软件包的信息

# pacman --query --info foo

# pacman -Qi foo

  显示已安装软件包 foo 的信息(大小、安装日期、创建日期、依赖关系、冲突等)。显示一个未安装的软件包的信息,可以加入 --file 或是 -p 选项,分别是:

# pacman --query --info --file foo.pkg.tar.gz

# pacman -Qip foo.pkg.tar.gz

显示软件包所包含的文件列表

# pacman --query --list foo

# pacman -Ql foo

  列出属于 foo 软件包的所有文件。

查找指定文件所属的软件包

# pacman --query --owns /path/to/file

# pacman -Qo /path/to/file

  显示文件通过完整路径作为参数所引用的软件包名称和版本

使用软件库

  软件库是软件包及其信息的合集,它可以位于本地目录或是远端的 FTP/HTTP 服务器。Arch 系统默认的软件库是 current,它保持着大部分软件的最新版本。

  许多用户选择激活 extra 软件库(包含着更多软件,不属于 Arch 核心软件集部分)。你可以在 /etc/pacman.conf 将它激活(在 uncommenting 的部分),默认是激活的。

  你也可以创建、维护以及使用你自己的软件库,具体查阅 pacman manpage

  如果你从光盘安装后又不可以访问因特网,额外的软件包可能就需要从光盘上安装了。你可以在光盘上找出它们然后使用 pacman -A packagename.pkg.tar.gz 进行安装,也可以暂时设置一个访问光盘的软件库。使用 mount /mnt/cd 命令将光盘挂载至 /mnt/cd(假设你的 fstab 已经正确的设置),然后在你的 /etc/pacman.conf 内加入下列:

[cd]

Server = file:///mnt/cd/arch/pkg

  然后你将可以安装额外的软件包来帮助你设置因特网链接。

Arch Build System (ABS)

二进制与源码

  pacman 负责的是二进制,而 ABS 则是源码:它帮助你从源码创建你自己的软件包,也允许你通过自定制来重建 Arch 的软件包。过程通常是:

  1. 与服务器同步你的 ABS 树(用 root 来运行 abs)。
  2. 建立新目录 /var/abs/local/ 来指定之后创建软件包的存储位置。
  3. 从 /var/abs/ 拷贝 PKGBUILD.proto 模型到新建立的目录下,删除 proto 后缀,编辑加入新的软件包。
  4. 在工作目录下用 PKGBUILD 文件运行 makepkg。
  5. 使用 pacman 安装新创建的软件包。
  6. 把软件包发给你的朋友吹吹牛(又或是发给 Archer 让她/他可以把它放入主 ABS 树)。

同步你的 ABS 树

  通过以 root 运行 abs 脚本,你可以同步在 /var/abs 下所有的 PKGBUILD 文件。同步需要 cvsup 软件包,如果没有安装系统将会提示。使用 CVS 作为中介,你可以在 ABS 内使用不同版本的树 - 仅需在 /etc/abs/supfile.arch 内进行设置。例如,默认的 supfile 是被设定为追踪 current 树的,它是最新的推荐源。你也可以追踪指定的版本,supfiles 的 comments 里可以得到更多的信息。

  ABS 支持多个软件库,它可以在 /etc/abs/abs.conf 里启用或是禁用。默认是的软件库是 current 和 extra,而 unstable 是禁用的。

  你还将看到一个 /etc/abs/supfile.extra 文件。它可以连接到所有不包含于主 ABS 软件库的非官方构建脚本。如果你不想使用这个软件库,可以删除这个文件,不过一般来说,编辑 abs.conf 要更为合理些。

如何创建软件包

  创建过程在 makepkg manpage 中有详细的解说,创建软件包时可以在上面查看相关的指令。如果这对你没有帮助,留意下 wiki 里的教程,又或者在论坛或 IRC 里请求帮助。

软件包准则

  为 Arch Linux 创建软件包时,你应当遵循下面的软件包准则,如果你想向 Arch Linux 提交你新的软件包时更是如此。

软件包命名

  • 软件包名只应由字母及数字字符组成;所有应当小写。
  • 软件包版本应当于作者发?的版本一致。如果需要,可以包含字母(如,nmap 的版本是 2.54BETA32)。版本标识不能有连字符!只能是字母、数字和句点。
  • 软件包的发?特指 Arch Linux 软件包。它允许用户区分新和旧的软件包创建脚本。当新的软件包首次发?时,号码从 1 开始。修正和优化后,软件包将会被重新发?到 AL 社区,号码将会增加。当一个新的版本出来时,发?号码重置为 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 大的软件包(自身包含了程序库、头文件及配置文件等),如 KDE,Mozilla 等。

makepkg 的职责

  当你使用 makepkg 创建软件包时,它将自己完成:

  1. 检查软件包的依赖是否满足。
  2. 从服务器上下载源码文件。
  3. 解开源码文件
  4. 打上必要的补丁
  5. 在伪根目录内创建软件以及安装
  6. 把 /usr/doc,/usr/info,/usr/share/doc 和 /usr/share/info 从软件包里删除。
  7. 移除二进制文件内的符号
  8. 移除程序库里的调试符号
  9. 在每个软件包内为其生成 meta 文件(译者注:即位元文件)
  10. 将伪根目录压缩入软件包文件内
  11. 将软件包文件存储到预设的目标目录(默认是 cwd)

其它

  尽量避免在 PKGBUILD 脚本内引入新的变量,因为它们可能与 makepkg 自身使用的变量发生冲突。

  无论如何都要避免使用 /usr/libexec/。使用 /usr/lib/{pkg} 来代替它。

  软件包内位元文件的 Packager 区域可以通过在 /etc/makepkg.conf 修改适当的选项使用软件包创建器来进行自定义,也可以通过在使用 makepkg 创建软件包前导出 PACKAGER 环境变量来进行自定义:

# export PACKAGER="John Doe "

提交软件包

  提交软件包前注意以下:

  1. 请在你的 PKGBUILD 文件的顶端加入一行注解,如下格式: # Contributor: Your Name

  2. 校验软件包的依赖关系(例如,运行 ldd,脚本所需的动态可执行检查工具,等等)。使用 namcap 也是个好主意,它是由 Jason Chu 编写的,用于分析软件包。namcap 会告诉你关于损坏的许可、缺少的依赖、不需要的依赖以及一些常见的错误。你可以使用 pacman 来安装 namcap。
  3. 所有的软件包都应当使用 tar 文件压缩格式,目录内应包含新近创建的软件包,PKGBUILD,filelist 以及附加的文件(补丁、安装文件...)。档案名应该最少包含有软件包的名称。
  4. 好好看看关于软件包的公告,了解它的状况,因为整个过程新的实施往往还正被开发人员讨论着。如果觉得你的软件包重要得不能再等了,你当然可以去寻求一个 Trusted User 的帮助,看他是否愿意将你的软件包加入他的软件库。

常见问题

  这里列出的常见问题仅涵盖启动或安装一个初始的 Arch Linux 系统。如果你更多有关于系统工具的使用、XFree86 的设置等,或是如何配置你的硬件的问题,请去 Wiki 。如果你觉得这里没有包含一个应当需要的问题,请通知本文的作者,地址在本文的顶端可以找到。

软件包的安装过程中,因为 B 不在软件包的集合中而导致 pacman 不能为 A 解析依赖性关系

  除非有许多人报告某处出现了严重的错误,否则你可能只是忘了挂载目的分区,使得 pacman 将软件包数据库解压时恰好填满内存最终导致这个错误。

  确认你在 Filesystem Mountpoints 菜单内选择的是 DONE 而不是 CANCEL。如果你使用了 Auto-Prepare 进行自动设置,这个错误是不应该发生的;否则请报告这个 bug。

启动时发现内核出现错误提示:Unable to open initial console(译者注:不能打开初始控制台)

  你可能自行编译了内核而又忘记加入 DevFS 的支持。当配置你的内核时,确认已选 /dev file system support 以及 Automatically mount at boot。Prompt for development and/or incomplete code/drivers 也需要选上来查看这些所有的选项。

如何使用命令 pacman -sync 从安装光盘中安装软件包(它会为我解决依赖关系吗)?

  如果你想从光盘上安装软件包而不是下载安装,那就挂载安装光盘(例如:/mnt/cd),然后将这行加到 /etc/pacman.conf [current] 下:

Server = file:///mnt/cd

  用你的挂载点替换 /mnt/cd。然后像平时的那样使用 pacman --sync - 它将会优先 /mnt/cd 目录下查找软件包。

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

  如果你需要创建、使用多个交换分区,你自然就不能用 Auto-Prepare 了。手动的创建分区,然后如你所需的创建多个交换分区。继续余下的安装,挂载设定会只请求一个交换分区,别在意。安装完成后在进行系统配置文件编辑的时候,你可以编辑 fstab 文件加入之前创建的每个交换分区。只需简单的将生成的交换分区那行拷贝过来然后根据你的设定修改所引用的设备就行了。当 swapon -a 作为初始化脚本运行时,额外的交换分区就会在启动后被激活。

  如果因为一些奇怪的理由,你不能等到安装完成后再激动多个交换分区/文件的话,那就不得不在其中一个虚拟终端上打开一个 shell 通过 swapon 来激活各个之前划分/准备好的交换分区/文件,然后再继续上述的安装。

  假如你还在为设置多个交换分区/文件而冥思苦想,那你就应该记着:内核需要交换空间时其实是在哭求着更多的内存,而不是交换空间。请喂好你的企鹅,谢谢。

如何使用恢复系统重新配置 LILO

  第一步,使用 Arch 安装光盘或磁盘启动。如果你的分区完好无损而无需检查,就应该按照指令所提示的提供 root= 的内核启动参数。那将会直接启动入你的系统,然后你就可以跳过其它步骤到最后一步:重新配置和运行 lilo了。

  如果不能直接启动到旧的根目录,那就像开始安装的一样用光盘进行启动。一旦进入了 shell,你就可以将硬盘中的根分区挂载到 /mnt 目录下,就如:

# mount /dev/discs/disc0/part3 /mnt

  然后分别挂载你根目录下的其它分区,如 /boot 分区:

# mount /dev/discs/disc0/part1 /mnt/boot

  现在需要将你的 DevFS 目录挂载到 /mnt 区域,好让 lilo 可以找到它:

# /mnt/bin/mount --bind /dev /mnt/dev

  一旦挂载完成后,使用命令 chroot /mnt 将这个 /mnt 目录转作你新的根目录。这将会打开一个新的 shell 并把你带到 mnt 目录下(也就是你的 /,译者注:根目录)。

  现在你可以根据喜好来编辑 /etc/lilo.conf 以及运行 lilo 作出需要的修正。当你准备退出这个根目录时,只需简单的键入 exit 就会回到原来的文件树下。现在可以 reboot 来测试你做出的修改了。

无法通过 SSH 登入我的机器!

  编辑你的 /etc/hosts.deny 文件。默认设置将会拒绝所有进入的链接。

如何在启动过程中加载功能模块?

  如果你要无条件的加载功能模块而无须与指定的设备绑定,在 /etc/rc.conf 的 MODULES 序列中加入该模块的名称。如果需要即时加载,使用 alias 命令将它作为常用模块加入你的 /etc/modprobe.conf(2.4 内核下是 /etc/modules.conf)。需要为你在 MODULES 序列中加载的模块传送选项时,仅应加入 /etc/modprobe.conf 内正确的 options 行中。

因为中断丢失导致内核拒绝启动

  内核拒绝启动。锁死于:

IRQ probe failed for hda

hda lost interrupt

  这个错误发生在内核 2.6.x 的一些硬盘控制器下。可行的方法是为内核在启动时加入 acpi=off 选项。

启用声音或读取 DVD 时出现拒绝访问的错误

  把你的用户加入 optical 和 audio 组。

# gpasswd -a johndoe optical

# gpasswd -a johndoe audio

  注销,然后使用普通用户登入(如,johndoe),这样刚才作出的组的修改就可以生效了。

  如果你有 DVD 驱动器,你可能要为你真实的 DVD 驱动器创建一个 /dev/dvd 的符号链接。

  例如,如果你使用 udev 而 DVD 驱动器又是 /dev/hdc 的话,你就可以使用 root 用户进行如下步骤:

# cat >>/etc/udev/rules.d/00.rules <

> KERNEL="hdc", NAME="hdc", SYMLINK="dvd"

> EOF

# /etc/start_udev

# mount /dev/pts

# mount /dev/shm

当我尝试用 pacman 安装软件时,出现这个错误:xorg 与 xfree86 发生冲突

  在我们全面转向 xorg 前这是个暂时的问题。当前仍有一些软件包明确的依赖于 xfree86,所以 pacman 才会搞混。

  你可以通过直接的安装 xorg 来解决这个问题,然后再安装其它的软件包。

# pacman -S xorg

# pacman -S otherpkg1 otherpkg2 ...

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14102/viewspace-116469/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2002-06-18

  • 博文量
    1715
  • 访问量
    1300203