入坑archlinux

在大yachen和蜀黍的强烈指责下,我踏上了arch这条“不归路”。作为个人定制度非常高的Linux distribution,arch的安装对于我这种小白来说实在是太复杂了太麻烦了。不过好在yachen全程不断的“鞭打”我,终于我成功安装了arch,让我的archlinux能作为一个计算机系统正常使用。但是没用两天,莫名发现问题实在是太多了,鉴于第一次安装很多过程还是不理解,大yachen很支持我再一次安装arch,于是,我开始了我的第二次痛苦之旅(然而这一次的安装感觉还是很多不懂的!)

yachen在他的博客中写到了如何在xp中安装arch,(http://xuchen.wang/2017/03/08/arch/)使用到了Grub4Dos进行硬盘引导ISO文件,其实第一次我也是被他强迫这样搞,但是最后因为我忘记给硬盘留一个分区导致格式化的时候把整个硬盘全部格式化了,使得ISO文件么得了,livecd没法启动,最后还是老老实实用了简便的U盘启动(233)。这一次图方便(其实是我不知道怎么从arch上面进行硬盘引导ISO文件),我就直接使用u盘安装了!

好了,首先第一步,开机进bootsetup,选U盘。

进入livecd之后一切按照https://wiki.archlinux.org/index.php/Installation_guide上面的来,关于联网问题,由于对内核模块的不理解,我依然没法启用iwlwifi模块,因此也不知道如何去启用无线网接口,这部分届时再请教yachen大神吧!不过得利于livecd的强大,我使用了usb有线网,连上手机启用usb网络,然后在livecd中使用dhcpcd服务
# dhcpcd interface
即可,这样联网问题就解决了。

之后就是分区了,这里分区我也搞的很简单,因为我不在需要硬盘中的文件,所以我先格式化了整个硬盘
# mkfs.ext4 /dev/sda
然后使用fdisk命令进入/dev/sda进行分区,因为就一个盘,所以安装过程十分简单,回车到底即可。最后w写入保存并退出,这样分区也搞定了。

再来是对分好的分区进行格式化。其实和win安装时是一样的。
# mkfs.ext4 /dev/sda1
此处一定要记得格式化,如果这里没有格式化的话而直接进行挂载则会提示
mount: /mnt :wrong fs type, bad option, bad superblock on /dev/sda, missing codepage or helper program, or other error.
大家要是对命令稍微有了解的话其实可以看懂它说的就是你可能没有格式化该设备。
然后wiki上提到了启用交换分区,这里我表示不懂什么是交换分区,于是跳过(233)。

这之后我们需要把硬盘挂载到一个文件目录下。其实我个人依旧没有很能理解,但是之前在使用U盘的过程中同样也使用了挂载。在fdisk -l的命令下我们能看到目前所有的设备,而由于Linux的特殊性质,将所有的设备都以文件的形式来进行标明,故我们在fdisk -l命令下看到的就是我们目前的所有设备,以我目前为例就是两个设备,一个是硬盘,另一个则是loop设备,即livecd。硬盘当然不会自己就能够启用,只有当我们使用mount命令
# mount /dev/sda1 /mnt
进行挂载之后,Linux才能使用这块硬盘的这个存储区域,也就是我们说的分区,而/mnt则是此块硬盘目前的目录。当然,wiki中给出了多个分区的挂载方法,此处我没有需求,故跳过。

挂载完毕之后就是安装arch了。与以往的安装经验不同,arch的安装过程必须实时联网,因为安装时连core都是从网上下载的(此句抄袭大yachen的原文,因为我不知道如何表达233),因此在安装开始的时候我先琢磨的是网络问题,毕竟没网就没法安装。

既然是联网下载安装,那么下载地址是首先要解决的问题。wiki上给出了地址所在的文件位置/etc/pacman.d/mirrorlist,仔细阅读wiki就会知道,这个就是我们archlinux的官方镜像源文档,使用超方便文本编辑器nano进行编辑!即可,这里我们使用默认的中科大镜像站(不愧是中国镜像站),然后将第一行的US的镜像站使用#注释掉,保存即可。

好了,设置完下载源,让我们继续看看wiki上的描述,Use the pacstrap script to install the base package group:
# pacstrap /mnt base
This group does not include all tools from the live installation, such as btrfs-progs or specific wireless firmware; see packages.both for comparison.
To install packages and other groups such as base-devel, append the names to pacstrap (space separated) or to individual pacman commands after the #Chroot step.原文意思大概就是我们可以使用上述命令进行核心的安装,但是呢,它并不是包含所有的工具包,为了能一步到位,我们选择同时安装base-devel包。其实这里是yachen提醒我的,不然我可能就安装个base包就下一步了233。因此我们用下面这个
# pacstrap /mnt base base-devel
好了,静静等待,大概270M+...看网速的时候到了。

由于我的网速较慢,半小时后终于下完了,好了,我们开始后面的工作,配置系统。首先是创建fstab文件,这是什么东西呢,打开wiki,The fstab(5) file can be used to define how disk partitions, various other block devices, or remote filesystems should be mounted into the filesystem.也就是说,是一个分区表而已,仅在安装系统过程中使用。那么按图索骥
# genfstab -U /mnt >> /mnt/etc/fstab
然后切换根目录到/mnt
# arch-chroot /mnt
之后模式就从root@archiso ~ #变成了[root@archiso /]#这样就表示切换成功了。

接下来是细节工作。略过。

最后,体现grub之伟大的时刻,安装引导。
首先安装grub包
# pacman -S grub
然后,将grub安装到完成分区的磁盘
# grub-install --target=i386-pc /dev/sdx
然后生成主配置文件
# grub-mkconfig -o /boot/grub/grub.cfg
然后,看看wiki怎么描述的:By default the generation scripts automatically add menu entries for Arch Linux to any generated configuration.可怕的grub。至此,安装系统结束,接下来退出chroot,如果不想卸载被挂载的分区直接重启即可。

重启进入到了终端界面,此时我们使用root账户进行第一次登录,但要立马创建一个普通用户并切换至普通用户,以免误操作损坏系统。(用户与用户组的概念参见鸟哥)
# useradd -m -s /bin/bash archie
# passwd archie

*关于普通用户sudo命令使用权限的使用
su和sudo是两个有关账户权限的命令,这里简单说下日常使用较多的sudo,sudo命令是在普通账户登录下赋予其root账户的权限,比如在archie账户下安装一个软件包
# sudo pacman -S package
而使用sudo命令必须将普通用户添加至sudoers文件中。这里的添加我们使用了visudo这样一个特殊的命令,因为sudoers文件若存在语法错误,将可能导致系统崩溃,故对于这个文件编辑的时候要十分的小心,为了帮助用户,linux使用了visudo这一命令,它会在你对sudoers文件进行保存的时候先对其语法检测,防止发生致命错误。visudo命令默认使用vim编辑器,若对其不了解可以使用
# EDITOR=nano visudo
这个命令来使用nano编辑器执行visudo命令。赋予archie账户权限使用下列命令
# archie ALL=(ALL) ALL
若要求每次使用root权限时无需输入密码
# archie ALL=(ALL) NOPASSWD: ALL
至此完成了在终端处对archlinux的安装,登录以及普通账户的权限设置。

*好用的自动联网程序NetworkManager
https://wiki.archlinux.org/index.php/NetworkManager
详细教程见wiki,这里说几个我遇到的问题,其实在wiki的troubleshooting处也有。

NetworkManager是一款自动联网的程序,意思就是只要系统启动了该服务那么它便会自动寻找可以使用的网络,不管无线还是有线。这里我们需要做的事就是使NetworkManager能够开机启动。在wiki中可以看到它的服务模块名是NetworkManager.service,要使其开机启动只需要
# systemctl enable NetworkManager.service
此处用到的是systemd,具体内容参考https://wiki.archlinux.org/index.php/Systemd

为了方便,我选择了可视化前端nm-aplet,快捷轻便。但是在连接到加密的无线网时(事实上我们接触的无线网基本没有不加密的)点击没有任何反应。这里我们需要安装gnome-keyring软件包,效果用过的都说好。

*安装gui
https://wiki.archlinux.org/index.php/Xorg#Installation
此处显卡我已经将独显禁用了,故只需要装一个Intel的集显驱动即可,选择xf86-video-intel。安装完Xorg和显卡驱动之后便要考虑如何启动Xorg。第一次安装的时候怕麻烦,直接使用的是:
1、手动配置
首先安装xorg-xinit软件包。这个软件包提供了xinit、startx命令以及xinitrc文件。安装之后我们可以使用startx启用Xorg,在执行startx命令的同时,系统会自动执行用户主目录存在的xinitrc文件,若不存在则执行默认的/etc/X11/xinit/xinitrc文件。在这个文件中我们可以配置启用例如mate这样的桌面环境,至于如何配置这个xinitrc文件,请参照xinit和各个桌面环境的wiki文档。如果需要在登录到账户的时候自动执行startx命令,则:
如果使用Bash, 编辑 ~/.bash_profile,加入如下内容。如果文件不存在,从 /etc/skel/.bash_profile 复制一个框架版本。
如果使用 zsh,则编辑 ~/.zprofile。
[ -z "$DISPLAY" -a "$(fgconsole)" -eq 1 ] && exec startx

2、自动配置
当然,第二次我肯定要试试这个既美观又方便的显示管理器。轻便起见,选择lightdm。先安装lightdm。继续浏览wiki文档发现,如果要提示用户输入密码需要安装greeter这个神奇的物品,好吧,看到一个deepin开发的,试试吧。安装deepin-session-ui软件包。。。当我看到这么大的软件包的时候,我毅然决然的选择了默认lightdm-gtk-greeter,难看就难看点吧!恩,30M,可以接受。安装完成之后,使用systemd对lightdm.service进行开机启动设置。至于更改背景什么的,以后再说吧,不过这个确实简单暴力,登录启动X的问题便解决了。

安装和配置完X之后,我们开始安装和配置桌面环境,这里在大yachen的强力推荐下,我使用mate桌面,听大神介绍,这个mate实际就是gnome2,当年gnome从2变成3的时候变化很大,很多程序员并不想改变自己多年的使用习惯,便自发的组织维护gnome2,这样就一直得以保存下来,成为今天的mate,不得不感叹Linux的强大。嗯,听说有信仰的都用mate。
啥也不说,先安装mate
# pacman -S mate mate-extra
250M+,慢慢等吧。。。
终于等到安装完成了!先配置启动,刚才在xorg的配置中提到了,如果是手动配置的xorg,那么需要在~/.xinitrc文件中进行配置,所以我们先从/etc/X11/xinit/xinitrc文件复制过去,然后在最后加上
exec mate-session
即可。如果是自动配置的话(显示管理器),则无需配置。至此,我们的gui就配置完成了,接下来我们要做的便是更加完善我们的系统,以便日常的使用。

*使用AUR
AUR,Arch User Repository.即用户软件仓库。这里记录一下yachen教给我的快捷方法。
首先我们要先配置archlinux中文社区仓库。这是一个中文社区驱动的非官方用户仓库。使用方法可以参照这篇文章进行设置https://lug.ustc.edu.cn/wiki/mirrors/help/archlinuxcn 当然,配置完之后一定要记得pacman -Syu更新,这样才能把非官方仓库加入pacman的使用。配置完地址之后,yachen告诉我一个黑科技,那就是yaourt。这是一个aur的使用工具,使用pacman命令在archlinuxcn上安装yaourt之后,我们可以使用yaourt命令在aur中安装任意一款软件,但是aur中的软件尽量少装,必须知晓装完的结果。详见https://wiki.archlinux.org/index.php/AUR_helpers

*mate的使用
-mate-menu 超好用的开始菜单。
-字体 wqy-microhei
adobe-source-code-pro-fonts
ttf-dejavu

*虚拟机的使用
由于没有qq for Linux,我们只能在Linux中安装虚拟机来解决这个问题,当然安装虚拟机也仅仅是为了qq。这里简单说下我安装的过程。
首先依旧是下载virtualbox这个虚拟机,轻便。安装之后便可以打开virtualbox来进行虚拟机的安装。推荐安装xp,毕竟只是个辅助工具。记得安装完成之后要安装virtualboxguestaddition和virtualbox extension pack。

*tearfree
细心的你会发现,当然也不一定大家都存在这个情况,就我而言(我的CPU是i5 3230m,集显为Intel Corporation 3rd Gen Core processor Graphics Controller),在安装完驱动之后我会出现拖动窗口时窗口撕裂等状况,这里附上wiki中提供的解决方案。
首先是创建配置文件。
# nano /etc/X11/xorg.conf.d/20-intel.conf
写入并保存
Section "Device"
  Identifier "Intel Graphics"
  Driver "intel"
EndSection
然后在section部分再加入
Option "TearFree" "true"
即可。效果立竿见影。

*安装sublime-text-dev-imfix2
嘛,这个的话我其实不太清楚为啥要装这个版本的sublime,因为官方源中也有imfix版的,但是没有后缀2,为啥会装这个呢,当然是yachen大神建议的啦!那么这个版本的sublime是一个aur的包,因此我们安装的时候需要用到yaourt命令,这里有个使用经验,就是使用yaourt的时候不需要使用sudo命令,即不可赋予其root权限,如果赋予了之后会提示
ERROR: Running makepkg as root is not allowed as it can cause permanent,
catastrophic damage to your system.
也就是说毕竟是aur中的包,随随便便就给了root权限万一出了问题可就不好办了,所以系统是不会允许你赋予其root权限的。
那么我们就直接用yaourt命令安装吧。
当然,接下来你会发现事情还是没有那么顺利,系统会提示你需要键入可靠的pgp key,以后如果遇到此种问题都应该立马到aur页面去找这个包的pgp key,一般来说作者都会在评论区给出。https://aur.archlinux.org/packages/sublime-text-dev-imfix2/评论区第一行,锁定的评论,那么
# gpg --recv-keys 1EDDE2CDFC025D17F6DA9EC0ADAE6AD28A8F901A
接下来再次使用yaourt命令安装即可。
这里附上sublime的key
Bug7sec Team (www.bug7sec.org)
50 User License
EA7E-1068832
86C49532 8F829C68 2ED18D56 162664F2
8B934F0C EB60A7FE 81D7D5EF BB8F1673
F67D69C7 C5E21B19 42E7EFBD D9C2BBC1
CEBA4697 535E29CA 0D2D0D4D ACE548CE
07815DC7 BDE3901E D5D198E4 BC1677C0
46097A55 29BCE0C9 72A358E8 CEFEEFB5
24CEB623 D7232749 F2515349 FB675F93
C55635A7 B1E32AB0 3D055979 041E0359
安装结束。

最近更新了一下sublime3,版本号更新到3.3169-1了,以前的这个key失效了,找了半天也没找到能用的key,只能用sublime2的key将就一下,功能都解锁了,没限制,下面附上。

Die Socialisten GmbH
10 User License
EA7E-800613
51311422 E45F49ED 3F0ADE0C E5B8A508
2F4D9B65 64E1E244 EDA11F0E F9D06110
B7B2E826 E6FDAA72 2C653693 5D80582F
09DCFFB5 113A940C 5045C0CD 5F8332F8
34356CC6 D96F6FDB 4DEC20EA 0A24D83A
2C82C329 E3290B29 A16109A7 EC198EB9
F28EBB17 9C07403F D44BA75A C23C6874
EBF11238 5546C3DD 737DC616 445C2941

其他还有一些小细节,wiki文档也都有介绍,我自己安装的时候也没有太多的问题,在这就先不提了。那么目前来说基本的功能都已经安装完毕(很多东西的安装这里没提,就一个命令的事,不过也得益于mate这个桌面环境,它已经帮我们解决了很多日常的问题了,例如自动挂载U盘等等)。以上均由YaCHEN提供技术支持!附上大神的博客http://xuchen.wang

原文地址:https://www.cnblogs.com/archemiya/p/8372615.html