欢迎使用 Arch Linux 环境设置指南。Arch Linux 是一个非常灵活的发行版,这本书将指导你找到一个基本的系统。从那以后,你可以去任何你想去的方向。一个简单的服务器,一个完整的桌面系统,所有的华而不实。最终,Arch Linux 总是你对它的看法。
如今,安装 Arch Linux 可能看起来像是一件疯狂的工作,因为官方媒体上没有安装程序,只有一个指导方针可以遵循。没有安装程序的安装非常简单。对于有经验的用户来说,不用安装程序安装就更方便了。最新的 ISOs 要求您将机器连接到互联网,因为安装介质上不再有可用的软件包。
可以从https://www.archlinux.org/download/获得官方 ISO 图像文件。在此页面上,您将找到最新版本的下载链接。根据您的喜好,立即下载种子文件或国际标准化组织图像文件。
以下列表描述了我们将在本食谱中执行的主要任务:
- 准备、引导、设置键盘布局:我们准备从 Arch Linux 网站的下载页面获取 ISO 文件,存储在我们选择的首选介质上。在撰写本书时,在一个磁盘上有一个包含 i686 和 x86-64 架构的双 ISO 映像文件。用您喜欢的安装介质(光盘或 u 盘)启动电脑。在大多数电脑系统上,您可以通过按其中一个功能键来访问引导菜单,通常是在 F8 和 F12 之间,具体取决于主板制造商。在没有引导菜单的旧机器上,您可能需要在 BIOS 中更改引导顺序,在 BIOS 中,必须选择光盘(或 DVD/蓝光)作为尝试引导的第一个设备。我们还将解释如何使用不同于本食谱中默认的键盘布局。
- 创建、格式化和安装分区:您可以使用 cfdisk(用于 MBR 磁盘分区)或 cgdisk(用于 GUID 磁盘分区)按照您想要的方式对磁盘进行分区。创建分区后,我们可以选择用特定的文件系统格式化我们创建的分区。当所有分区都格式化后,我们需要挂载分区。首先我们将根分区挂载到
/mnt
。创建特定文件夹后,其他分区将在稍后装入。我们将用/dev/sdX
指定我们的设备;对你来说,这可以是/dev/sda
等等。 - 连接到互联网:为了能够继续安装 ISO,你需要连接到互联网,因为 ISO 上没有可供安装的软件包。对于无线网络,您需要使用 netcfg。当连接到有线网络时,只需使用 dhcpcd 或 dhclient。
- 安装基础系统和引导加载程序:现在基础系统是通过运行一个简单的脚本打包来安装的。Pacstrap 采用多个参数、目标位置以及您想要安装的包或组。对于想在自己的机器上开发的人来说,最好的
base
安装就是在默认安装的基础上增加base-devel
。对于普通终端用户来说,只要base
就足够了。 - 配置系统:在这个食谱中,我们将描述配置过程中要做什么的流程。有关如何配置系统的更多信息,请参考配置系统配方。
以下步骤将指导您准备、引导和设置键盘布局:
-
Once you have downloaded the ISO image file, you should also verify its integrity by downloading the
sha1sums.txt
file from the download page.现在你也可以通过验证国际标准化组织的签名来检查国际标准化组织是否完全有效。
-
Verify the integrity by issuing the
sha1sum -c sha1sums.txt
command and you'll see whether your download was successful or not. Also check if the signature of the ISO is correct by runninggpg -v archlinux-...iso.sig
:sha1sum -c sha1sums.txt gpg -v archlinux-2012-08-04-dual.iso.sig
以下屏幕截图显示了该步骤的执行情况:
-
正如您在前面的截图中看到的,ISO 的校验和是正常的,签名是有效的。
-
现在我们确定我们的 ISO 没问题了,我们可以用我们最喜欢的刻录程序把这个刻录成光盘。
-
将光盘插入驱动器,或将 u 盘插入电脑的 USB 端口。
-
进入引导菜单,或者让计算机从插入的安装介质自动引导。
-
If the previous steps are performed correctly, you will see the following screenshot:
-
选择你想要的架构,按进入,我们就上路了。
-
搜索您所在地区所需的键盘布局。可用的键盘布局可以在
/usr/share/kbd/keymaps/
找到。 -
用
loadkeys keyboardlayout
设置所需的键盘布局。
现在,让我们执行以下步骤来创建、格式化和装载分区:
-
启动 cfdisk 或 cgdisk,将第一个参数作为要分区的设备:
cfdisk /dev/sdX cgdisk /dev/sdX
-
创建您的分区方案。
-
存储分区方案。
-
使用
mkfs
命令在特定分区上创建文件系统:mkfs -t vfat /dev/sdX mkfs.ext4 -L root /dev/sdX
-
将根分区安装到
/mnt
:mount /dev/sdX3 /mnt
-
在
mount
下为其他分区创建目录:mkdir -p /mnt/boot
-
安装其他分区:
mount /dev/sdX1 /mnt/boot
连接到互联网需要以下步骤:
- 当我们需要无线网络时,创建一个 netcfg 配置文件并运行
netcfg mywireless
。 - 使用 dhclient 或 dhcpcd 获取 IP 地址。
安装基本系统和引导加载程序时,应执行以下步骤:
-
使用所需参数运行打包程序:
pacstrap /mnt base base-devel
-
安装想要的引导加载程序:目前最好的选择是 Syslinux。
-
引导加载程序的最终安装将在初始配置期间在 chroot 中完成(将在本书后面讨论)。
我们现在将列出配置过程中要执行的步骤:
-
用
genfstab
生成fstab
:genfstab -p /mnt >> /mnt/etc/fstab
-
将根目录改为系统位置:
arch-chroot /mnt
-
在
/etc/hostname
中设置您的主机名。 -
创建
/etc/localtime symlink
。 -
在
/etc/locale.conf
中设置您的区域设置。 -
在
/etc/locale.gen
中取消对已配置区域的注释。 -
运行
locale-gen
。 -
配置
/etc/mkinitcpio.conf
。 -
生成您的初始内存盘:
mkinitcpio -p linux
-
完成引导加载程序的安装。
-
用
passwd
设置根密码。 -
Leave the chroot environment (
exit
).
### 注
有关如何配置系统的更多信息,请参考*配置系统*配方。
### 注
关于执行的主要任务的详细描述,请参考本食谱的*准备*部分。
我们通过 torrent 下载了 ISO 映像文件,或者通过 HTTP 从下载页面上列出的镜像站点下载。sha1sum
命令让我们验证下载的 ISO 的完整性。除了校验和之外,我们还可以通过验证可用于国际标准化组织的签名来检查完整性。所以现在,我们可以放心,下载的文件是真实的。国际标准化组织包含一个完全运行的操作系统。它还包含执行系统恢复和安装的所有必要工具。
用loadkeys
设置的键盘配置将确保您在键盘上按下的键将被翻译成屏幕上正确的字母。使用与物理键盘不同的键盘布局可能会令人困惑。
然后,我们使用适当的工具(cfdisk 或 cgdisk)在选定的磁盘上创建分区方案。制作文件系统 ( mkfs )是创建文件系统的统一前端。使用它,我们在/mnt
下手动创建了我们的文件系统布局,方法是在根目录下创建我们的默认分区布局,并相应地挂载特定的分区。
您可以与您的无线网络建立连接(如果需要),然后使用 dhcpcd 或 dhclient 获取一个使您能够访问互联网的 IP 地址。
Pacstrap 将使用修改后的根位置运行pack man,以将所需的包安装到新创建的系统中。
例如,安装 Syslinux:
pacstrap /mnt syslinux
特定的配置文件将确保我们不必在每次启动时都重复执行所有这些步骤。
如果您愿意,可以直接从 u 盘使用官方 ISO。国际标准化组织的验证可能存在一些问题。接下来的两节将讨论它们,并为您提供解决方案。
为 Arch Linux 下载的 ISOs 都是“混合”映像,这意味着您可以将它们放在 u 盘上,它们将是可引导的。所以从 u 盘安装也很简单。将 u 盘放入机器中(警告:它将丢失所有数据)并发出以下命令:
dd if=archlinux-2012.08.04-dual.iso of=/dev/sdX bs=1M
确保你有if=the correct ISO filename
和of=/dev/sdX
,在这里你不会像/dev/sdX1
那样使用 u 盘的分区,而是使用完整的 u 盘。所以只能用/dev/sdX
。
当你的gpg keyring
中没有签名人的公钥时,你会得到一个类似的错误 gpg:无法检查签名:没有公钥。这意味着您必须首先导入签名者的公钥,然后才能验证签名:
gpg --keyserver wwwkeys.pgp.net --recv-keys 0x9741E8AC
导入公钥,在本例中是皮埃尔·施密茨的公钥。然后可以再次运行 ISO 的验证。验证现在应该会给你 **gpg:来自“Pierre Schmitz<Pierre @ archlinux . de>”**的良好签名。完成此处描述的步骤后,您将收到一条警告,指出密钥未通过可信签名认证。在验证国际标准化组织完整性的情况下,这并不重要。有关 GPG 和签名的更多信息,请参见http://www.gnupg.org/。
下一节将讨论一个好的桌面分区方案的常见示例。
在桌面系统上,尤其是 Arch Linux,我个人建议有一个单独的/var
分区。根据您对该分区的其他目标(例如,运行一个巨大的 MySQL 数据库、其他数据库等),合理的值应该是 5 GB 及以上。不要过度,否则/var
分区会有很多空位。为什么把/var
搞得这么大?Pacman 将其缓存保存在/var
中,您并不真的希望根文件系统被充满包缓存的磁盘所死锁。
- 引导分区 : 50 MB
- 交换分区:
- 当您的内存小于 4 GB 时:内存+三分之一的内存
- 当您的内存大于 4 GB 时:将其固定在 4 GB 上(实际上没有必要将其变大)
- 根分区 : 10 GB(游戏玩家可能想在这里转到 50 GB)
- Var 分区 : 5 GB(如果只用于缓存),上面存储了一些数据库的数据;我会根据需要上去
- 家庭分区:这些天你最终会拥有 300 到 400 GB 甚至更多
最初由 Arch Linux 开发的 netcfg 工具为我们提供了大量的选项,我们将在下一节中讨论。
示例配置可以在/etc/network.d/examples
文件夹中找到。在下表中,我们给出了 netcfg 包提供的示例配置列表:
连接类型
|
示例配置文件
|
| --- | --- |
| 无线/WEP 十六进制密钥 | wireless-wep
|
| 无线/WEP 字符串密钥 | wireless-wep-string-key
|
| 无线/WPA-个人(密码/预共享密钥) | wireless-wpa
|
| 无线/WPA-企业 |
wireless-wpa-config
(wpa_supplicant
is configured as external)wireless-wpa-configsection
(wpa_supplicant
Configuration is stored as a string)
|
| 有线/DHCP | ethernet-dhcp
|
| 有线/静态 IP | ethernet-static
|
| 有线/iproute 配置 | ethernet-iproute
|
关于接下来一些部分的更详细的解释,我会让你参考配置你的系统配方。
如果您喜欢在fstab
文件中使用 UUID 或标签,您可以向genfstab
脚本传递一个额外的参数:U
用于 UUID 或L
用于标签。
Syslinux 的最终安装必须在封闭的环境中完成。
/usr/sbin/syslinux-install_update -iam
如果前一个命令在尝试设置引导标志时失败,请使用以下命令:
/usr/sbin/syslinux-install_update -im
成功安装 Syslinux 后,通过编辑/boot/syslinux/syslinux.cfg
配置系统的引导方式。
在这个食谱中,我们将学习安装 Arch Linux。由于手动安装过程,这可能看起来有点可怕,但一点也不难。安装脚本实际上将指导您完成整个安装过程,您可以让系统在不到 10 分钟的时间内启动。在 Arch Linux 生态系统中,由于包的滚动发布,安装通常是一次完成,然后就再也不会了。也可以在https://wiki.archlinux.org/index.php/Beginners'_Guide查看初学者指南,了解 Arch Linux 的全部内容。由于 Arch Linux 是一个不断移动的目标,首选的安装方法是当您连接到互联网时,这样您就可以获取所有最新和最好的软件。即使在下载之前,也必须阅读http://www.archlinux.org/news/关于任何新发展的最新消息。
当我们只想要一点 Arch Linux 的味道,并且可能远不能确定这就是我们想要的全天使用时,考虑通过将其安装在虚拟机中来学习系统如何工作。在初学者指南中,有一个关于它的有用部分,位于https://wiki . archlinux . org/index . PHP/初学者指南# Install _ on _ a _ virtual _ machine。
我们可以从http://wiki.archlinux.org/index.php/Archboot获得大靴 ISO。在此页面上,我们将找到最新版本的下载链接。我们可以选择立即下载种子文件或国际标准化组织。
以下列表描述了我们将在本食谱中执行的主要任务:
-
准备安装介质:我们准备从 Archboot wiki 页面下载 ISO 文件,保存在我们选择的首选介质上。在撰写本文时,可以选择在一个磁盘上下载特定于体系结构的 ISO 或包含 i686 和 x86-64 体系结构的双 ISO。我建议下载双 ISO,这使得在任何电脑和任何这些架构上安装都没有任何麻烦。
-
引导安装介质并开始安装:使用您喜欢的安装介质(光盘或 u 盘)启动电脑。在大多数电脑系统上,您可以通过按其中一个功能键进入启动菜单,通常是在 F8 和 F12 之间,具体取决于主板制造商。在没有引导菜单的旧机器上,您可能需要在 BIOS 中更改引导顺序,在 BIOS 中,必须选择光盘(或 DVD/蓝光)作为尝试引导的第一个设备。
-
设置键盘和控制台字体:当使用不同于默认的键盘布局时,您肯定需要这个配方来配置您特定的键盘布局,并可选地配置您喜欢的控制台字体。如果您已经配置了这两项,安装程序还会将这些设置纳入我们已安装系统的配置中。
-
设置日期和时间:在这个食谱中,我们还将配置三个小部分——我们将设置我们的时区、当前时间和当前日期。
-
Auto preparing hard drive: The Auto-Prepare option will guide you with the creation of a default partition scheme. When we can't have our entire drive erased, or we want to differ from the default partition scheme chosen by the installer, we should skip to the steps for Manually preparing hard drive.
警告:选定的硬盘将被完全擦除。
-
手动准备硬盘:手动分区让你完全控制自己创建多少分区。这也可能涉及多个磁盘,因此完全自由。当您习惯分区时,请使用手动准备。
-
选择来源:我们可以选择是从互联网上可用的存储库中安装,还是从安装介质上可用的软件包中立即安装。最好选择文件传输协议/超文本传输协议,因为这将确保我们有最新的软件包可用。
-
选择软件包:在我看来,选择你的软件包最好的方法就是先安装基础系统。当我们完成并且系统独立启动时,根据需要添加软件包。安装程序会询问您是否想要添加额外的存储库,以便您能够一次安装所有内容。我认为这里的安全选项是不包含额外的存储库,从基础系统开始。一般来说,在需要的时候安装应用会更快。安装后,我们应该只检查一些自动创建的配置文件,以确保安装程序正确创建它们,并且我们将在安装引导加载程序后重新启动时获得一个可引导的系统。稍后将解释更广泛的配置。如果您想在安装过程中更改这里的任何内容,我建议您跳到配置您的系统配方,其中详细解释了配置。
-
安装引导加载程序:到食谱的最后,我们将拥有几乎所有我们需要的东西。然而,为了让我们的机器真正可用,我们将不得不安装引导加载程序,因为这款软件将使我们能够在重启时进入 Arch Linux。
让我们执行以下步骤来准备安装介质:
-
一旦我们下载了国际标准化组织图像文件,我们必须通过从
archboot
文件夹下载md5sum.txt
文件来验证其完整性。 -
We will verify the integrity by issuing the
md5sum -c md5sum.txt
command and checking whether our download was successful: -
正如我们所看到的,所有的 ISOs 都被下载了,但是 torrent 文件没有。这导致一些成功的检查和其他国家的文件没有找到,但最终我们知道我们下载的国际标准化组织文件是可以的。
-
现在我们确定我们的 ISO 没问题了,我们可以用我们最喜欢的刻录程序把这个刻录成光盘。
以下步骤将指导您引导安装介质并开始安装:
-
将光盘插入驱动器或将 u 盘插入电脑的 USB 端口。
-
进入引导菜单或让计算机从插入的安装介质自动引导。
-
If the previous steps went fine, we should see the following screenshot:
-
根据我们是要引导长期支持的 ( LTS )还是默认内核来选择架构。默认内核应该没问题,但是如果我们出于稳定性的原因想要运行 LTS 内核,我们可以选择它。按回车我们就上路了。
-
When the installation media is completely started, we get some initial information about the Archboot environment. When we press Enter, the installation scripts will be started:
-
When ready to go, press Enter and we will be presented with the MAIN MENU screen. The menu contains several steps that are followed in a chronological order for a fresh installation:
让我们执行以下步骤来设置键盘和控制台字体:
- 我们将看到键盘布局选项,您将获得一个列表,其中包含 Arch Linux 支持的所有可能的键盘布局。选择您的键盘布局并继续。
- 或者,您也可以选择自己喜欢的控制台字体。如果您不知道或不想这样做,只需返回主安装程序菜单并继续下一步。如果您有偏好,则选择设置控制台字体选项并选择您的字体。
让我们设置时区、当前时间和当前日期:
- 选择时区。这类似于大陆/首都。比如欧洲/布鲁塞尔。
- 为您的硬件时钟选择 UTC 。这将确保正确应用夏令时更改。
- 设置您当前的系统时间。这实际上是它现在在你的时区的时间。
- 设置您当前的系统日期。
要自动准备硬盘,应执行以下步骤:
- 首先,您可以选择使用旧的 MBR 分区表或新的 GUID (GPT)分区表。选择权完全在你。但是,对于较旧的机器,安全的选择是 MBR。对于较新的机器和带有 UEFI 启动的机器,建议使用 GPT 分区表。
- 选择您想要用于引导
(/boot
分区的大小。 - 选择要用于交换
(/swap
分区的大小。 - 选择要用于根
(/root
分区的大小。 - 剩余的磁盘空间将自动用于您的主(
/home
)分区,所有用户的数据都将驻留在该分区中。 - 选择要用于根分区和主分区的文件系统。这里最安全的选择是 ext4。如果你是一个有冒险精神的人,你可以去英国旅游公司或 NILFS。在选择使用当前标记的实验性文件系统之前,如果它确实是您想要使用的东西,请进行研究。
- 选择要在配置文件中使用的命名系统。
- 当我们完全确定一切正常时,我们继续,安装程序将准备整个驱动器。如果一切顺利,安装程序将声明准备成功。
手动准备硬盘时,应执行以下步骤:
-
选择分区类型(MBR 或 GPT)。有关详细信息,请参见为自动准备硬盘执行的步骤 1。
-
选择要分区的磁盘。
-
安装程序会根据您是选择使用 MBR 分区还是 GPT 分区向您显示 cfdisk 或 cgdisk。
-
创建分区后,我们需要回到分区菜单,使用设置文件系统挂载点选项。
-
首先,您需要选择要用作交换的分区。
-
然后,安装程序将要求您为您的系统选择根分区。
-
After these required partitions are selected, you can keep on selecting partitions and set their mount points to the location you want.
当我们进行手动分区布局时,我们可以应用手动部分中自动准备部分的提示。然而,通过使用手动方法,您获得了很多额外的自由来创建您喜欢的分区方案。
选择信号源需要以下步骤:
- 选择光盘或文件传输协议。
- 配置您的网络。
- 选择您想要使用的镜像(只有在选择了 FTP/HTTP 时才需要这样做)。
选择软件包需要以下步骤:
- 不要启用额外的存储库。
- 只选择基地;这包含了安装后获得一个工作系统所需的所有包。
- 选择要安装的软件包。
- 让安装脚本完成安装软件包的工作。
最后,让我们安装引导加载程序:
-
Choose the boot loader you like the best.
最著名的将是 GRUB 和 Syslinux——它们可能也是最受支持的。还有其他可用的引导加载程序,如 LILO。
-
安装程序将建议您检查它创建的配置文件。在大多数情况下,这种配置是正确的,但您应该始终检查它是否正确。查看配置文件中是否使用了正确的设备。您可以通过检查文件系统的布局来验证正确的设备。
-
Install the boot loader.
现在,您已经采取了在计算机上安装基本工作的 Arch Linux 系统所需的所有步骤,安装过程中剩下的唯一事情就是重新启动系统并删除安装介质。然后你可以享受你新安装的 Arch Linux 的第一次引导。
-
Reboot the system.
关于执行的主要任务的详细描述,请参考本食谱的准备部分。
我们通过种子文件或者直接使用网络浏览器下载了 Archboot ISO,并且md5sum
命令让我们验证下载的 ISO 的完整性。所以现在,我们可以放心,下载的文件是真实的。
如果没有验证校验和,切勿使用国际标准化组织。
Archboot ISO 包含一个完全正常工作的操作系统,所以我们首先启动它。按下进入键,我们自动登录到直播系统。接下来,安装脚本被调用,我们在 Archboot 安装脚本中被删除。
安装脚本将调用正确的应用来设置键盘布局和控制台字体,以及选定的日期和时间设置。安装脚本还将跟踪选定的值,并将它们放入适当的配置文件中。
如果我们选择了自动准备选项,那么基于我们所做的配置,安装程序将运行 fdisk 并创建我们想要的分区方案。
如果我们选择对磁盘进行手动分区,那么我们可以选择任何我们想要的布局。一旦我们对分区方案感到满意,安装程序就会问一些问题(例如:安装在哪里?什么文件系统?),并使用我们的答案将我们制作的分区装载到正确的装载点。安装脚本还将跟踪给出的答案,以便它们可以在以后用于生成配置文件。
安装脚本将向您显示 pacman 提供给您安装的软件包列表。当您在系统上选择了所有需要的软件包后,安装脚本会将这些带有一些额外参数的软件包传递回 pacman,PAC man 将执行实际安装。
安装结束时,将为您准备一份配置文件列表。这些配置文件供您查看。当您对配置文件满意时,保存它。安装脚本现在将使用配置文件将选定的引导加载程序放置到位。
当我们想要偏离默认设置时,我们可能需要一些额外的知识。所以我们一个一个来讨论。
从 Arch Linux 下载的 ISOs 都是“混合”映像,这意味着您可以将它们保存在 USB 驱动器上,并且它们将是可引导的。从 u 盘安装也很简单。只需将一个 USB 驱动器连接到您的机器,并发出以下命令:
dd if=archlinux-2012.04-2-archboot-dual.iso of=/dev/sdX bs=1M
u 盘上的所有信息都将被覆盖。
我们需要确保我们为if
参数设置了正确的输入文件,我们的 ISO。此外,输出文件参数必须是设备,而不是设备的某个分区,如of=/dev/sdX
。X
代表系统分配给 u 盘的字母。
在一些罕见的情况下,选择硬件时钟上的本地时间是最佳选择。例如,在 Windows XP 旁边安装 Arch Linux 时,这是一个不能在硬件时钟和系统时钟上处理不同时间的操作系统。Windows 操作系统的较新版本可以处理设置为世界协调时的硬件时钟。
分区是一个非常广泛的话题。它可以通过无数种组合来完成。我们现在将讨论理解分区所需的一些额外信息。也有一些不错的默认值,让系统快速启动和运行。
以下列表是正常桌面使用的选择。对于想玩很多游戏的人来说,这些尺寸选择不符合您的需求:
- 引导分区 : 50 MB
- 交换分区:
- 当您的内存小于 4 GB 时:内存+三分之一的内存
- 当您的内存超过 4 GB 时:将其固定在 4 GB 上(实际上没有必要将其变大)
- 根分区 : 10 GB(游戏玩家可能想在这里转到 50 GB)
- 家庭分区:这些天你最终会拥有 300 到 400 GB 甚至更多
当选择将哪个文件系统用于根分区和主分区时,您应该对文件系统的可能性了如指掌。当你不知道的时候,最好的选择是 ext4 ,因为这是目前默认的文件系统,具有现代的特性、良好的速度和健壮性,所以你不会丢失任何数据。
引导分区将自动用 ext2 文件系统格式化。这是最安全的选择,因为当您有一个格式化为 ext2 的引导分区时,您可以找到的所有引导加载程序都能够引导您的系统。
指向块设备(分区)有三种方法:
- UUID 方案:这是一个唯一的 ID,我们可以用它来指向一个块设备
- LABEL 方案:这里我们可以使用分区的标签来指向分区
- KERNEL 方案:这是最古老的通过直接指向设备节点来指向块设备的方法
使用 UUID 方案在您的配置中可能看起来很难看,但这是您始终指向正确设备的最确定的方式。假设你有一些硬件变化,设备是以一种新的方式订购的;这样,您仍然可以选择正确的块设备。
LABEL 方案看起来非常优雅和简单,但是可能会有一些名称冲突,因为多个物理磁盘分区可以有相同的名称。
KERNEL 方案实际上是最古老的,这里我们只是指向某个设备节点(比如/dev/sda1
),但这可能会在某天发生一些硬件变化后失败,这可能会导致设备节点的顺序不同。
在桌面系统上,尤其是在 Arch Linux 上,我建议有一个单独的/var
分区。根据您对该分区的其他目标(例如,运行一个巨大的 MySQL 数据库、其他数据库等),合适的值应该是 5 GB 及以上。不要过度,否则/var
分区会有很多空位。为什么这么大?Pacman 将其缓存保存在/var
中,您并不真的希望您的根文件系统被充满包缓存的磁盘所死锁。
从网上安装 Arch Linux 时,最好选择离家近的镜像,以获得最佳下载速度:
当网络启动并运行时,您可以选择一个镜像,并选择一个尽可能靠近您所在位置的镜像。这样我们会得到最好的表现。如果你对离你最近的镜像有疑问,可以随时选择mirrors.kernel.org这样的全局镜像,它会自动选择离你最近的服务器。
在安装 Arch Linux 的过程中,我们可以选择要安装的软件包列表。我现在将分享我自己喜欢的方式。当这是第一次安装时,我个人倾向于保留从基本组中选择的所有包。如果你真的坚持要从基本组中移除一些包,那就去移除它们吧,但是你真的应该知道在这种情况下你在做什么。
如果这不是 Arch Linux 的第一次安装,您肯定可以启用额外存储库的使用,这样您就可以选择一大堆应用,您肯定知道您想要在您的系统上安装这些应用。例如,您可以立即安装 Xorg、GNOME、XFce、KDE 等。对于第一次安装,我会一步一步来,把多余的留到现在。
在本食谱中,我们将解释用于识别您的系统的配置文件。通常,这些文件只需要配置一次,并在系统的整个生命周期内保持不变。
以下列表描述了我们将在本食谱中执行的主要任务:
- 配置主机名 : A 主机名是我们给一台机器取的名字,这样可以很容易的识别出我们在说的是哪台机器。因此,如果我们在一个网络中,我们可以很容易地通过主机名来区分不同的机器。
- 配置控制台:我们还会配置虚拟控制台,使用什么键盘布局,可能还会为这些配置一些特殊的字体和映射。
- 配置本地化:在本任务中,我们将用正确的本地化设置我们的机器。这可以在
locale.conf
文件中非常广泛地完成。在最常见的情况下,我们只在这个文件中设置LANG
和LC_COLLATE
。如果想缩小范围,可以通过输入man locale.conf
获取更多信息。然而,LC_COLLATE
是其他一切都失败时的退路。 - 配置时区:设置时区将确保您的系统时钟是正确的。这必须与
/etc/localtime
结合使用。实际上,它们必须一起更改,所以为了您的安全,请更改/etc/localtime
符号链接,然后立即将新时区添加到/etc/timezone
。 - 配置模块处理:是否加载默认不加载的额外模块?在“花哨”的硬件或第三方软件(如 VMware 或 VirtualBox)的情况下,我们可能需要这个。您可以在
/etc/modules-load.d/
中添加一个带有模块列表的配置文件。这些模块必须用换行符隔开。当你想在这些文件中添加一些注释时,你可以用#
或;
开始你的行。放在目录中的文件只需要一个额外的要求;名字必须以*.conf
结尾。
以下步骤配置主机名:
- 用
vim /etc/hostname
编辑主机名进行配置。
让我们列出配置控制台所需的步骤:
-
编辑〔t0〕。
-
添加关键字及其值。例如:
KEYMAP=us FONT=lat9w-16 FONT_MAP=8859-1_to_uni
让我们列出配置本地化所需的步骤:
-
要指出我们想要支持的语言环境,请编辑
/etc/locale.gen
。 -
当我们更改了
locale.gen
文件后,运行locale-gen
。 -
要指示我们默认使用的语言环境,请编辑
/etc/locale.conf
:LANG=en_US.UTF-8 LC_COLLATE=C
让我们列出配置时区所需的步骤:
-
创建指向您所在时区的符号链接【T0:
ln -s /usr/share/zoneinfo/Europe/Brussels /etc/localtimevim /etc/timezone
-
将时区名称复制到
/etc/timezone
中。
让我们列出配置模块所需的步骤:
-
加载模块时,在
/etc/modules-load.d/
添加一个配置文件。 -
For blacklisting and passing special parameters to modules, add a configuration file to
/etc/modprobe.d/
.关于执行的主要任务的详细描述,请参考本食谱的准备部分。
开机时,系统会读取/etc/hostname
文件的内容。这些内容将用于向用户标识系统,也用于标识网络中的机器。主机名主要是为了方便用户,因为它比一大串数字更容易记住。
终端将允许您在本地化的键盘上打字。屏幕上的输出将与键盘上按下的按钮相对应。此外,终端将以选定的字体向您显示文本输出。最后,它将在需要的地方翻译文本编码。在配置控制台的步骤中显示的示例中,输出将从 ISO-8859-1 转换为 Unicode。
如果LANG=en_US
,所有支持本地化的应用都会为您带来美式英语的输出。当应用没有选定的语言时,它将退回到“C 语言”。C 语言是计算机系统中的默认语言,所以这也将是英语。
系统上显示的时间将是您所在时区的时间。当您处于更改夏令时的时区时,您的电脑会自动适应夏令时。
所有驻留在以*.conf
结尾的/etc/modules-load.d/
中的文件将用于加载额外的模块。驻留在/etc/modprobe.d/
中的所有*.conf
文件将用于确定模块是否必须被列入黑名单,或者与一些特殊选项一起使用。
让我们看看一些提示和技巧,以便更容易地配置您想要的键盘映射和控制台字体,以及一种查找可用时区的简单方法。
通过列出文件夹/usr/share/kbd/keymaps
,我们可以得到所有可用键盘布局映射的列表。从下面的截图中,我们可以看到我们已经找到了比利时的布局,因此我们可以将KEYMAP=be-latin1
添加到我们的配置文件中:
我们可以通过列出/usr/share/kbd/consolefonts
找到控制台所有可用字体的列表。当我们找到所需的字体时,我们可以将其添加到配置文件中。比如CONSOLEFONT=Lat2-Terminus16.psfu.gz
。
为了得到可能的转换列表,我们可以取一个/usr/share/kbd/consoletrans
的列表。或者,我们可以将它添加到我们的配置文件中,但这并不总是需要的。比如CONSOLEMAP=8859-1_to_uni
。
找到你的时区并不困难,因为它几乎总是大陆/首都。我们可以在/usr/share/zoneinfo/
文件夹中运行ls
并从那里获取:
ls /usr/share/zoneinfo/
在这个食谱中,我们将看到 Arch Linux 中的包管理是如何围绕 pacman 进行的。 Pacman 只是包管理器的简称,并不是说包管理就是游戏的笑话。帕克曼的完整指南可以在https://wiki.archlinux.org/index.php/Pacman的维基上找到。Arch Linux 有三个官方存储库:[核心]、[额外]和[社区]。[核心]和[额外]都由 Arch Linux 开发人员维护,而[社区]存储库由可信用户维护。还有很多由 Arch Linux 爱好者维护的非官方存储库,它们安装了官方存储库中找不到的特定类型的软件,从而让你的生活变得轻松很多。非官方资料库的名单可以在上找到。
Arch Linux 使用的是完整的开放模型,这意味着官方存储库中提供的每一个软件都可以由用户重新构建。这就是我们所说的造拱系统或者 ABS 。Arch Linux 还通过 Arch 用户存储库或 AUR 为用户提供了一种非常简单的方式来共享存储库中找不到的其他软件的构建脚本。最后,在 https://wiki.archlinux.org/index.php/Common_Applications 的维基上还有一个很好的常用软件列表。这个列表可能会帮助您找到最适合您需求的应用。
以下列表描述了我们将在本食谱中执行的主要任务:
-
配置 pacman :首先,pacman 的默认配置在
/etc/pacman.conf
完成。其次,您的系统上也默认安装了/etc/pacman.d/mirrorlist
,其中包含安装过程中使用的选定镜像。镜像列表包含了 Arch Linux 的所有官方镜像。安装后得到的默认配置运行良好。您可以在https://wiki.archlinux.org/index.php/Pacman的维基页面上找到与 pacman 相关的所有信息。 -
全系统升级:一旦你的系统安装了所有适合你需求的软件,这可能是最常用的动作了。通常情况下,您只能不时地进行完整的系统升级。
-
Installing a package from the repositories: Installing packages with pacman is straightforward. We can pass multiple packages to the command to install more than one package, or we could even pass a groupname to install a whole group of packages.
我们也可以通过更新安装一个包,我们需要将包文件传递给 pacman,以便安装一些软件。
-
在存储库中搜索软件包:这将使我们能够搜索存储库中是否有我们最喜欢的软件,这样我们就可以轻松安装它。
-
从磁盘安装包:这实际上与从存储库安装的方式相同,只有一个例外:这里我们将文件传递给命令,而不是包名。
-
删除一个包:当我们厌倦了一个包,或者我们发现了一些新的软件,做同样的工作,但是更适合我们的需求,我们可以删除某个包,甚至是一个组。
-
清理包缓存:久而久之,我们不希望自己的磁盘被旧的包文件填满,所以时不时的清理包缓存是一个非常好的做法。
-
官方和非官方的存储库 : Arch Linux 默认给我们提供了很多包,这些都可以在官方的存储库中找到。官方存储库包含由 Arch Linux 开发人员和可信用户支持的包。
-
使用拱形构建系统:拱形构建系统 ( ABS )类似于您在 FreeBSD 中找到的端口系统。所有在官方存储库中创建包的构建脚本都可以通过 ABS 获得。这使您作为用户能够根据自己的意愿,用自己的编译器标志来重建每个包,等等。如果你想充分利用防抱死制动系统,你需要用 pacman 安装base-dev和防抱死制动系统。如果你只想检查事情是如何完成的,你只需要安装 abs。
-
Using the Arch User Repository: The Arch User Repository (AUR) contains packages not found in the official repositories and are pure user contributed content. So everyone registered on the AUR website https://aur.archlinux.org can upload new packages, so other users might benefit from that work. To use the AUR you must install base-devel. For more details about the AUR, I will refer to the wiki at https://wiki.archlinux.org/index.php/AUR.
-
使用 makepkg: Makepkg 是用于为 Arch Linux 构建包的工具。我不会太深入的使用,但会带你加快速度,让你的包从 ABS 或 AUR。Makepkg 假设安装了 base-dev。另见https://wiki.archlinux.org/index.php/Makepkg。Makepkg 必须在至少有一个名为
PKGBUILD
的文件的目录中调用。
让我们列出配置 pacman 所需的步骤:
- 编辑
/etc/pacman.conf
修改选项或添加/删除一些存储库。 - 编辑
/etc/pacman.d/mirrorlist
更改或添加一个带有官方存储库的镜像。 - 以 root 用户身份运行
pacman -Syu
进行完整系统升级。 - 要从存储库中安装软件包,在终端中以 root 用户身份运行
pacman -S somepackage
。 - 作为根用户,运行
pacman -Ss somepackage
在存储库中搜索包。 - 在终端中以 root 用户身份运行
pacman -U somepackage.pkg.tar.xz
,从磁盘安装软件包。 - 作为根用户,运行
pacman -R somepackage
移除包。 - 要清理包缓存,请以 root 用户身份运行
pacman -Sc
并回答问题。
让我们列出配置官方和非官方存储库所需的步骤:
- 打开
/etc/pacman.conf
。 - 禁用或启用官方存储库,或添加非官方存储库。
让我们列出使用防抱死制动系统所需的步骤:
-
安装基础开发和 abs:
pacman -Syu base-devel abs
-
可选编辑
/etc/abs.conf
。 -
让腹肌同步
abs
脚本。你必须以 root 用户身份运行 abs。
让我们列出使用 AUR 所需的步骤:
-
安装基础开发:
pacman -Syu base-devel
-
在 AUR 搜索您最喜欢的应用。
-
下载 tarball 并开始构建它。
让我们列出使用 makepkg 所需的步骤:
-
转到包含 buildscript 的文件夹(
PKGBUILD
)。 -
运行
makepkg
。 -
This should get the package to build. If it is missing dependencies to build the package, you will need to install those first.
关于执行的主要任务的详细描述,请参考本食谱的准备部分。
pacman.conf
中设置的选项将决定 pacman 的行为。这些变化从忽略包或组,从更新到额外的存储库。我们在 mirrorlist 中定义的内容将决定我们的包来自哪里(来自哪个服务器)。
完整系统升级命令会将本地软件包数据库与远程软件包数据库同步,根据您安装的软件包,它会询问您是否要继续安装某些升级的软件包。
pacman -S somepackage
命令会查找你传递的包名或包组,如果存在,会继续尝试安装。
在执行pacman -Ss somepackage
命令时,pacman 将在本地同步的数据库中搜索我们正在寻找的包是否在某个地方可用。如果是这样的话,我们将看看有什么版本可供我们安装。
在执行pacman -U somepackage.pkg.tar.xz
命令时,pacman 将检查包的依赖关系,并尝试将这些依赖关系与您想要安装的包一起安装。当一切顺利时,它会将包装安装在 tarball 内的正确位置。
执行pacman -R somepackage
命令时,包装将从系统中移除。包唯一剩下的东西就是缓存中的一个条目。
在执行pacman -Sc
命令时,pacman 会寻找旧的包文件,并询问您是否希望从文件系统中删除这些文件。
帕克曼将pacman.conf
用于选项和存储库。所有启用的存储库现在都将用于软件包安装。如果我们有一些配置不匹配,帕克曼会通知我们。
Abs 将使用rsync
将官方存储库中使用的构建脚本同步到您的本地计算机。例如,这将帮助您构建一个官方支持的包,并启用或禁用其他选项。
AUR 实际上只是一个收集了用户贡献的构建脚本的网站。如果您最喜欢的应用已经在那里可用,您可以从其他人已经完成的工作中受益。通过评论做出改进也非常容易。
Makepkg 将读取PKGBUILD
文件中描述的信息,以正确构建包,并以正确的格式让 pacman 将其安装到您的系统上。
pacman.conf
文件有由[section]
定义的部分。这些部分中可以定义一些选项。有一个名为[options]
的特殊区域,可以为 pacman 配置全局选项。其他部分是默认或用户定义的存储库。关于存储库,声明的顺序很重要。最靠近文件顶部的存储库将优先,按降序排列。这对于提供同名包的存储库非常重要。顺序也很重要,以便理解为什么[testing]
必须定义在[core]
之上。一般来说pacman.conf
文件通过注释的方式很好地记录了所提供的选项,但是在这里我们将尝试深入解释它们。
镜像列表是一个列出了所有官方 Arch Linux 镜像的文件。让我们找一个离家更近的镜子,这样我们就可以获得最好的下载速度。我们可以在这里定义多个服务器。请注意,这不会给我们来自最新服务器的包,但是当列表中的第一个不可访问时,第二个可以使用,因此我们仍然能够更新我们的系统。
pacman.conf
选项可以在https://www.archlinux.org/pacman/pacman.conf.5.html找到。默认情况下,一切都应该开箱即用。默认值对于新用户来说也应该足够了。
以下是[core]
存储库的示例。我们可以看到包需要签名检查,并且我们对配置的服务器使用 mirrorlist。
[core]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist
以下示例将使用[options]
部分中定义的默认SigLevel
,当使用时,它将首先尝试使用 FTP,当该选项不可用时,它将返回到 HTTP:
[otherrepository]
Server = ftp://10.0.0.1/$repo/$arch
Server = http://10.0.0.1/$repo/$arch
在下面的示例中,我们有一个本地存储库,您可以在其中看到可用于填写Server
选项的所有可能的 URL:
[somelocalrepository]
Server = file:///home/packages/$repo/$arch
默认情况下,官方存储库列在pacman.conf
中。默认情况下,并非所有选项都处于启用状态。还有一个不错的非官方软件库列表,在那里你可以找到一些非常高质量的软件。
有关官方存储库以及在什么情况下应该启用或禁用它们的完整信息,请查看https://wiki . archlinux . org/index . PHP/The _ Arch _ Linux _ Repositories。
由于建立自己的存储库很容易,所以有很多用户正在构建一组特定的包,并将它们作为非官方的存储库提供给每个人。非官方存储库的完整列表可以在https://wiki . archlinux . org/index . PHP/野史 _ 用户 _ 存储库上找到。
通过使用防抱死制动系统,我们作为用户在我们的系统上获得了很大的灵活性。对于首次使用防抱死制动系统的用户,您可能想查看位于https://wiki.archlinux.org/index.php/ABS的防抱死制动系统维基页面。简单介绍,也可以参考https://wiki.archlinux.org/index.php/ABS_FAQ。
Systemd 为我们提供了一种更现代的引导方法。它还受益于现代多核处理器,并依靠非常积极的并行化来快速完成工作。Arch Linux 默认提供 systemd。Systemd 使用“所谓的服务文件”来定义某个服务或“所谓的守护进程”必须如何以及何时启动。
以下列表描述了我们将在本食谱中执行的主要任务:
- 安装系统
- 设置默认目标:使用 initscripts 时,可以将默认目标与运行级别进行比较。这是不一样的,但源于同样的想法,你希望在某些情况下开始一些东西。“所谓的运行级”在系统世界中被称为目标。
- 手动启动服务:使用
systemctl
命令,我们可以按需启动和停止服务。 - 启动时启用服务:当然 systemd 可以在启动时启动服务。启用或禁用这些服务非常简单。
让我们列出安装 systemd 所需的步骤:
-
安装系统和系统拱装置,通过运行
pacman -S systemd systemd-arch-units
进行安装。 -
通过编辑
/boot/syslinux/syslinux.cfg
:APPEND initrd=/initramfs-linux.img root=/dev/sda2rootfstype=ext4 ro init=/bin/systemd
将
init=/bin/systemd
添加到您的内核命令行
让我们列出设置默认目标所需的步骤:
-
如果你想以图形系统结束,启用图形目标:
systemctl enable graphical.target
-
当一个终端足够时,多用户目标就足够了:
systemctl enable multi-user.target
-
通过运行以下命令手动启动服务:
systemctl start service
-
Enable services during boot time by running the following command:
systemctl enable service
关于执行的主要任务的详细描述,请参考本食谱的准备部分。
我们需要 systemd-arch-units 包,因为并非所有提供服务的包都提供了能够与 systemd 一起使用的服务文件。由于我们在内核命令行中添加了init=/bin/systemd
,系统将使用 systemd 进行启动。
这几天只有两个目标可以自动设置为默认目标,因为只有graphical.target
和multi-user.target
提供默认目标安装。
在systemctl start service
命令中,service
实际上是一个文件的名称。例如,网络管理器有一个名为NetworkManager.service
的系统服务文件,我们需要将这个全名传递给systemctl
命令。例如:
systemctl start NetworkManager.service
为了能够知道在引导期间启动哪些服务,systemctl
将在正确的位置创建指向特定服务文件的符号链接,systemd 将在引导期间搜索这些文件。
一旦我们对 systemd 引导我们的系统感到满意,我们最终可以对它进行更多的微调。
以下命令将为 initscripts 的兼容性提供符号链接:
pacman -S systemd-sysvcompat
结果是您可以在内核命令行中省略额外的参数init=/bin/systemd
。
我们可以通过更改引导加载程序配置中的内核命令行来轻松更改所需的目标。这使得测试某些特定目标是否适合我们的需求变得容易。
类似于在使用 initscripts 时在内核命令行中附加一个数字,我们也可以使用systemd.unit
参数为 systemd 这样做。
例如,考虑将 Syslinux 作为引导加载程序,打开/boot/syslinux/syslinux.cfg
并将systemd.unit=multi-user.target
添加到内核命令行:
APPEND initrd=/initramfs-linux.img root=/dev/sda2 rootfstype=ext4ro systemd.unit=multi-user.target
前面的例子对于只有 systemd 的系统有效,否则我们也需要init=/bin/systemd
。
我们可能想知道我们的系统上有哪些服务,当然我们也想知道我们可以用这些服务做什么。
我们可以列出所有使用过的服务,或者通过运行以下命令选择列出所有可用的服务:
systemctl list-units --type=service
systemctl list-units -a --type=service
默认情况下,systemd 支持start
、stop
、restart
、reload
和status
等动作。可用动作更多,可通过发布man systemctl
找到。
在启用服务之前,我们可能需要检查服务是否尚未启用。我们可以通过使用is-enabled
操作来检查在引导过程中是否已经启用了服务来启动:
systemctl is-enabled service
如果我们找到一些不再需要的服务,我们会想禁用它。有时,我们不再希望在引导过程中启动某些服务,因此我们需要禁用它们:
systemctl disable service
在这个食谱中,我们将学习 initscripts。 Initscripts 是确保您的计算机正常启动的脚本集合。它还提供必要的功能和工具来管理系统上的服务。Initscripts 的服务通常被称为守护程序(https://wiki.archlinux.org/index.php/Daemon)。如今,使用 initscripts 引导仍然可以与 systemd 结合使用,但是随着时间的推移,initscripts 的使用将被阻止和淘汰。 Systemd 是一个守护进程,它控制你的系统的启动,也管理在其上运行的服务。initscripts 是用 Bash 编写的,所以需要的时候很容易阅读和修改。关于 Arch Linux 引导过程的扩展信息可以在https://wiki.archlinux.org/index.php/Arch_Boot_Process找到。
以下列表描述了我们将在本食谱中执行的主要任务:
- 改变运行级别:运行级别的定义有些抽象。运行级别将决定启动哪些应用。Arch Linux 使用了一些全局定义的运行级别,我们可以准确地找到它们在https://wiki.archlinux.org/index.php/Runlevels上的作用。当系统运行时,您可以动态更改运行级别,或者您可能希望在机器上执行一些管理操作,要求您更改运行级别。
- 设置默认运行级别:默认使用的运行级别为
3
。这是不启动X
的多用户运行级别。 - 手动启动一个服务(守护进程):有了 initscripts,一些服务的启动和停止所需的所有文件也只是 Bash 脚本,所以可以直接调用。
- 自动启动服务(守护程序):引导期间启动的守护程序列表配置在
DAEMONS
阵列内的rc.conf
文件中。
以下步骤更改运行级别:
- 运行
telinit runlevel
更改运行级别,其中runlevel
是从0
到6
的数字。
让我们列出设置默认运行级别所需的步骤:
-
编辑〔t0〕。
-
改变你找到的线
id:3:initdefault:
。这里你已经看到默认选择的运行级别是3
。 -
通过运行
telinit q
,测试您的配置是否正确。 -
要手动启动服务(守护程序),首先直接调用脚本:
/etc/rc.d/somedaemon start
让我们列出自动启动服务(守护程序)所需的步骤:
-
编辑〔t0〕。
-
随意在
DAEMONS
数组中添加一个新项目:DAEMONS=(syslog-ng network crond)
-
Save the file.
关于执行的主要任务的详细描述,请参考本食谱的准备部分。
telinit
命令将改变运行级别,根据您切换到的数量,一些正在运行的应用和守护程序可能会停止或刚刚启动。
在inittab
文件中设置的默认选定运行级别决定了在电脑启动期间将使用哪些脚本。这也是为什么您总是需要通过运行telinit q
来检查配置是否正确的原因,因为如果inittab
文件以某种方式损坏,您的系统将无法启动。
位于/etc/rc.d/
文件夹中的 Bash 脚本将是可执行的。默认情况下,它还将提供三个动作:start
、stop
和restart
。
在启动期间,initscripts 将读取在rc.conf
文件中定义的DAEMONS
数组,并且按照它们被定义的顺序,所有守护程序将在启动期间启动。
现在让我们谈谈一些与这个食谱相关的一般信息。
运行级别只是数字,但对我们人类来说,记住句子更容易。所以我们对一个动作和运行级别号进行匹配。
以下列表定义了每个运行级别编号:
0
电源关闭1
:单用户模式(救援模式)2
和4
:这些都是用户定义的,但是和其他系统一样,默认情况下它们和3
是一样的3
:多用户模式;用户可以通过终端或网络登录5
:多用户图形化模式;这是运行级3 + X
(一些显示管理器)6
:重启emergency
:应急 Shell(开机失败时会遇到)
/etc/inittab
文件的修改会导致系统无法启动。因此,还有其他方法来配置默认运行级别。
我们可以在引导加载器配置文件中配置的内核命令行中设置我们想要的默认运行级别。这将允许我们安全地切换运行级别。
让我们执行以下步骤,通过引导加载程序(本例中为 Syslinux)设置默认运行级别:
-
Edit
/boot/syslinux/syslinux.cfg
.APPEND initrd=/initramfs-linux.img root=/dev/sda2rooftfstype=ext4 ro 5
我们已经将默认运行级别设置为
5
(图形模式)。
Arch Linux 提供了一个助手应用,使得在一个命令中启动多个守护程序变得容易。
默认情况下,有助于启动守护程序的脚本通常会提供三个操作:
start
:启动守护进程stop
:停止守护进程restart
:重启守护进程
另一个常见的动作是reload
,这有助于正在运行的守护进程在没有真正停止的情况下实际重新加载其配置。
Arch Linux 提供了一个助手,可以在一个命令中启动和停止多个服务。助手附带了一个不错的手册页,你可以通过发布man rc.d
来阅读。
rc.d action daemon1 daemon2 ...
您可以提供给rc.d
的动作与您可以直接传递给脚本的动作相同。所以如果一个脚本提供了reload
动作,rc.d
可以使用它。
现在,启动守护程序的默认方式是顺序的。第一个必须正确启动,然后才能启动下一个。我们可以通过稍微不同地配置DAEMONS
阵列来提高引导时间。
如果我们想让某个服务与其后续服务并行启动,您可以在DAEMONS
数组的条目前添加@
:
DAEMONS=(syslog-ng network @crond)
我们也可以在DAEMONS
数组中保留一个服务,但仍然禁止它自动启动。为此,我们需要在服务前面添加!
:
DAEMONS=(syslog-ng !network crond)
我们可以通过运行rc.d list
获得所有可用服务的列表。
在本食谱中,我们将学习如何使用 Xorg 配置图形用户界面。当我们想要将我们的系统用作桌面系统时,我们将会以这样或那样的方式需要 Xorg。如今,Xorg 是在基于 Linux 的系统上显示和使用图形界面的事实标准。此外,对于大多数单屏幕设置,您不需要配置任何东西。多屏设置和带有专有驱动程序的设置是这一规则的例外。有些发行版为您提供了安装正确视频驱动程序的工具;Arch Linux 没有。因此,最终我们将需要找出安装哪个驱动程序。相对于键盘、鼠标和许多其他输入设备,Xorg 几乎可以自动找到它们。在某些情况下,输入设备需要安装额外的 Xorg 驱动程序。
以下列表描述了我们将在本食谱中执行的主要任务:
-
安装 Xorg :我们将安装基本的必需包,以便能够使用 Xorg 图形系统。
-
改变键盘布局:对于大多数人来说不需要改变键盘布局,因为大多数人使用的是 QWERTY。但是对于世界上一些正在使用其他布局的地方,这可能会派上用场。
-
安装输入驱动:当我们有一些特殊的输入硬件时,我们可能需要安装额外的输入驱动。现在所有的东西都应该被自动检测,但是有时候为了满足你的输入硬件的特定要求,我们需要安装输入驱动程序。例如,笔记本电脑用户可能需要为他们的触摸板安装 Synaptics 驱动程序。
-
安装视频驱动:首先我们需要弄清楚我们的系统中安装了哪些显卡,什么驱动最适合它们使用。
-
使用专有的 NVIDIA 驱动程序:专有的 NVIDIA 驱动程序很容易在 Arch Linux 上安装,因为它们可以在官方的存储库中找到。Arch Linux 维基(https://wiki.archlinux.org/index.php/NVIDIA)中有一篇文章涵盖了所有的细节。
-
Using the proprietary AMD drivers: The reference for using the AMD (ATI) Catalyst drivers with Arch Linux is the following wiki page:
https://wiki.archlinux.org/index.php/ATI_Catalyst
在这个页面上,我们找到了让 Catalyst 驱动程序在您的硬件上正常工作所需的一大堆信息。
不久前,催化剂和催化剂应用包进入了官方存储库。所以它们变得非常容易安装。
-
安装 xorg-服务器:
pacman -S xorg-server
现在让我们更改键盘布局:
-
运行
setxkbmap
命令,然后运行所需的键盘布局:setxkbmap be
-
安装输入驱动程序:
pacman -S xf86-input-synaptics
让我们列出安装视频驱动程序所需的步骤:
-
找到系统中使用的显卡。
-
搜索是否有可用的驱动程序:
pacman -Ss xf86-video
-
安装驱动程序:
pacman -S xf86-video-driver
让我们列出使用专有 NVIDIA 驱动程序所需的步骤:
-
安装英伟达和英伟达-utils:
pacman -S nvidia nvidia-utils
-
创建配置文件
/etc/X11/xorg.conf.d/20-nvidia.conf
。 -
重新启动并查看驱动程序是否正在使用。
让我们列出使用专有 AMD 驱动程序所需的步骤:
-
通过运行以下命令安装催化剂和催化剂应用:
pacman -S catalyst-dkms catalyst-utils
-
将
nomodeset
参数添加到内核命令行,以确保开源驱动程序不会启动:APPEND initrd=/initramfs-linux.img root=/dev/sda3rootfstype=btrfs ro vga=773 nomodeset
-
Add a default configuration file
/etc/X11/xorg.conf.d/20-catalyst.conf
so that Xorg knows it has to use the proprietary driver.Section "Device" Identifier "aticard" Driver "fglrx" EndSection
关于执行的主要任务的详细描述,请参考本食谱的准备部分。
Pacman 将下载并安装 xorg-server 包及其最低限度需要的依赖项。
setxkbmap
命令将改变选定的键盘布局。比如我们默认是美国布局,运行setxkbmap be
后会是比利时的 AZERTY 布局。
pacman 会将特定的驱动程序安装到您的系统中,这将为 Xorg 提供理解触摸板输入并正确处理它的方法。
NVIDIA 驱动程序应该会被 Xorg 自动检测到,但为了确保您可以在/etc/X11/xorg.conf.d/
中添加一个文件,例如/etc/X11/xorg.conf.d/20-nvidia.conf
:
Section "Device"
Identifier "NVIDIAcard"
Driver "nvidia"
EndSection
需要时,您可以通过发出以下命令来创建默认配置:
nvidia-xconfig
当有两个连接的屏幕时,您还可以自动生成 twinview 默认配置:
nvidia-xconfig –twinview
当我们使用 AMD 专有驱动时,设置nomodeset
参数可以确保内置内核驱动不会开始与专有驱动冲突。Xorg 配置文件将确保 Xorg 启动时没有错误。虽然不完全必要,但我们确保 Xorg 使用驱动程序并为我们提供良好的服务。
我们可以选择直接使用我们的图形环境,这将意味着安装 xorg-xinit,或者我们可以使用带有显示管理器的 xorg 环境。A 显示管理器是一个图形化的登录屏幕,所以我们可以全程使用 Xorg。
为了直接从终端启动 Xorg,我们首先需要安装 xorg-xinit 包来实现这一点:
pacman -S xorg-xinit
然后startx
命令会让我们进入 X 服务器。当在没有配置的情况下直接使用它时,X 将不会启动,因为默认配置会请求一些丢失的应用。让我们继续安装:
pacman -S xorg-twm xorg-xclock xterm
为了我们自己的方便,最好安装一个窗口管理器 ( WM )或者一个桌面环境。有关窗口管理器的完整列表,请访问https://wiki.archlinux.org/index.php/Window_manager。有关桌面环境的完整列表,请访问https://wiki.archlinux.org/index.php/Desktop_Environment。
在本节中,我们将安装 Xfce(https://wiki.archlinux.org/index.php/Xfce):
pacman -S xfce
Pacman 会问我们是否要安装 Xfce 组的所有软件包。我们同意,因为这样最方便。
由于现在安装了 Xfce,我们可以从启动的 Xorg 会话中发出startxfce4
或者修改我们的~/.xinitrc
。在.xinitrc
文件中,我们可以取消对# exec startxfce4
行的注释并保存文件。登录后,我们现在可以发布startx
并享受 Xfce 桌面环境。
对于桌面用户,这是常见的用法,因为他们需要一个图形登录屏幕,并从那里继续到所需的桌面环境或窗口管理器。Arch Linux 中有几个可用的显示管理器。在本节中,我们将只描述 LXDM ,这是一个相当简单的显示管理器。有关 Arch Linux 可用的其他显示管理器的列表,您可以阅读https://wiki.archlinux.org/index.php/Display_Manager。
要安装 LXDM,我们向 pacman 发出以下命令:
pacman -S lxdm
使用 initscripts 时,我们可以在DAEMONS
数组的末尾添加 LXDM。当我们使用 systemd 时,我们可以发出systemctl enable lxdm.service
来启动 LXDM 的启动。重启后,LXDM 显示管理器出现,我们可以从桌面会话下拉列表中选择 Xfce 会话。
由于我们希望我们的键盘和鼠标在每次电脑启动时自动配置,所以我们可以在配置文件中设置键盘布局,这样我们就不必每次进入 Xorg 时都运行setxkbmap
。我们已经安装了 xf86-input-evdev,所以可以把我们的键盘设置放在同一个文件10-evdev.conf
中,比如/etc/X11/xorg.conf.d/10-evdev.conf
(只有键盘部分):
Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "XkbModel" "pc105"
Option "XkbLayout" "be"
EndSection
添加高亮显示的零件,并执行以下操作:
XkbModel
:我们用的是什么键盘型号?在我们的示例中,pc105
。XkbLayout
:我们用的是什么键盘布局?在我们的例子中,be
(比利时语 AZERTY)。
我们可以在/usr/share/X11/xkb/rules/evdev.lst
中找到所有可能的模型、布局和选项。
默认情况下,我们对显卡的支持有限。为了增强我们的 Xorg 体验,我们必须找到我们有什么显卡,以及为它们安装什么驱动程序。通过为我们的硬件匹配驱动程序,我们将获得比以前好得多的性能。
找到要安装哪些驱动程序的最简单方法是使用应用 lspci :
lspci | grep VGA
示例输出:
01:05.0 VGA compatible controller: Advanced Micro Devices [AMD] neeATI RS880M [Mobility Radeon HD 4200 Series]
现在我们已经知道我们有一张 ATI 卡。在某些情况下,我们将需要内核使用的驱动程序来确定到底使用什么 Xorg 驱动程序。在这个例子中,我们已经知道它将是 xf86-video-ati。
现在我们可以安装我们特定系统所需的驱动程序。在本例中,它将是 xf86-video-ati,但它可以是任何可用的驱动程序(用您在以下示例中需要的内容替换ati
)。
pacman -S xf86-video-ati
英伟达并不真的希望我们在显卡的配置上纠结。因此,他们为我们提供了一个很好的图形用户界面来创建一个微调的配置。
配置 NVIDIA 基础设施的最简单方法是通过 nvidia-settings 配置所有内容。您可以以 root 用户身份发布此应用,以便编写全局配置文件。
使用贵由还可以存储配置文件。通过输入/etc/X11/xorg.conf.d/20-nvidia.conf
进行操作:
AMD 还为我们提供了一些有用的工具,让配置变得非常容易。我们现在来讨论一下。
如果您想进行一些扩展配置,可以通过运行以下命令来启动新的配置文件:
aticonfig --initial
这将创建一个新的配置文件/etc/X11/xorg.conf
。
您可以通过运行 AMDCCCLE 应用来进一步微调 ATI 硬件的工作。