目录
说在前面的废话
Arch Linux 其实挺酷的,但不是最好操作系统。至少不是最舒服的。论操作和显示效果,还是 mac 和 windows 比较好,做图呢,当然选 mac ,不会来折腾 Linux,玩游戏呢,当然是 windows,因为兼容性好。
那么对我这样的一个苦逼程序猿来说呢,当然也想要一个mac,但是苦于没钱买 mac ,那个好贵的,又不想去折腾那不伦不类的黑苹果,只能装一个满是命令行的 Linux 装一下。
当然了,可能会有同学说了,Linux 也挺好用的,比如 Ubuntu,Suse,Debian,CentOS,都有很好的桌面版本啊!说 Linux 不好用的,是因为不会用!!是啊,听到这么说,我也没办法了。
好了,相比于安装其他版本的 Linux ,Arch 在安装方面确实很不方便。Arch Linux 官方说了(头条):
A simple, lightweight distribution
You’ve reached the website for Arch Linux, a lightweight and flexible Linux® distribution that tries to Keep It Simple.
Currently we have official packages optimized for the x86-64 architecture. We complement our official package sets with a community-operated package repository that grows in size and quality each and every day.
Our strong community is diverse and helpful, and we pride ourselves on the range of skillsets and uses for Arch that stem from it. Please check out our forums and mailing lists to get your feet wet. Also glance through our wiki if you want to learn more about Arch.
我真没看出来怎么 simple ,安装就挺难的,折腾这个需要学习很多知识,而且还容易走弯路,当然了,大牛们是不屑的,通常都会说:Arch 挺简单的呀,光看Wiki就明白怎么安装了。
我不吹牛,我实话实说,我这几年来,折腾 Arch Linux 安装来来回回的不下 10 次了,每次都要一边拿着手机看 WIKI,一边百度,一边对着 console 的发呆。这篇随笔呢,容易的地方,我会只写运行代码,复杂的时候,多一些文献引用。
下载镜像并制作U盘
从 Arch Linux 官方网站 下载专区下载镜像,并刻录到 U 盘,推荐用ultraISO。
下载页面:https://www.archlinux.org/download/
下载后,用 ultralISO 打开这个 ISO,选择菜单 启动 -> 写入硬盘映像,在弹出的页面,先选择你要写入的 U 盘,然后 写入方式选择raw 这点比较重要,当然,你用的不是Windows系统而是其他Linux版本,或者 mac,你可以用 dd 命令来将 ISO 文件写入到 U 盘,这个就不介绍了,一般用 Linux 系统的都是大牛级别人物,一点就通的。
对了,还有一件事,就是为系统预留空间,我这边是直接找了一个100G的分区,清空了内容,你也可以用windows的压缩磁盘挤出空间(我的电脑,右键管理,磁盘管理,选择磁盘,右键压缩),或者用分区工具来处理一下。感觉 windows 自带的就挺好用的。如果在新机器上就不用处理了,直接安装就是了。
把U盘插到电脑上,准备重启电脑安装了。
进入安装
启动后,一般电脑来说,按 F8 就进入了启动选择列表,选择 uefi 的 U 盘项目(主板支持才有),确定后,就进入了 Arch 的启动界面,最好先插上网线,用 wifi 的也不要着急,启动后在来设置,现在 Arch 对 wifi 支持也不错了。一般的网卡都能识别到了。
好了,启动之后,到了输入帐号的地方,输入 root 并回车,就会进入系统。
查看硬盘以及分区
正式安装系统之前,我们先确定几个问题:
- 硬盘是什么格式的?gpt还是mbr?
- 是不是已经存在了系统?
- 有没有 efi 分区?
来来来,运行一下 lsblk 来看看磁盘
archlinux% lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111.8G 0 disk
└─sda1 8:1 0 111.8G 0 part
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 450M 0 part
├─sdb2 8:18 0 100M 0 part /boot
├─sdb3 8:19 0 100G 0 part /
├─sdb6 8:22 0 200G 0 part
├─sdb7 8:23 0 300G 0 part
└─sdb8 8:24 0 331G 0 part
我这个是在做完系统后运行的,可能和你的显示不太一样,但是不影响效果,简单介绍一下,这个命令比较直观的显示所有硬盘和分区,可以看出,是2块硬盘。第一块是我的 128 G 的 SSD。第二块则是我的机械硬盘。SSD上就一个分区,我之前装了 Windows 7。这次要把 Arch 装到机械硬盘的第三个分区(sdb3)上。
你可以看到我的 sdb 里面是不连续的?为啥呢?是因为我删除了几个连续分区,合并到 sdb3 上了。删除和创建分区,用 fdisk -l
fdisk -l
p #显示分区
d # 删除分区
w # 保存
具体命令就看 fdisk 吧,这个还是可以看懂的。
另外,为了清楚的描述硬盘类型,我们用 fdisk -l 把硬盘信息列出来:
archlinux% sudo fdisk -l
Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: WDC WD10EZEX-22M
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: D016ADAA-FC83-490D-B070-1FD2D722D9FE
Device Start End Sectors Size Type
/dev/sdb1 2048 923647 921600 450M Windows recovery environment
/dev/sdb2 923648 1128447 204800 100M EFI System
/dev/sdb3 1128448 210876415 209747968 100G Linux filesystem
/dev/sdb6 210876416 630306815 419430400 200G Microsoft basic data
/dev/sdb7 630306816 1259452415 629145600 300G Microsoft basic data
/dev/sdb8 1259452416 1953521663 694069248 331G Microsoft basic data
Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Disk model: Samsung SSD 850
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: DFF842F3-E5E5-4464-B1FD-12C03014F45E
Device Start End Sectors Size Type
/dev/sda1 2048 234440703 234438656 111.8G Microsoft basic data
有了上面的 lsblk 做参照,再来看这个 fdisk -l 就清晰很多。硬盘分区类型怎么看呢?主要看这个 Disklabel type: gpt
gpt 就是 gpt 格式,dos 就是 mbr 的,这个首先确定清楚,因为在后面的 grub 的时候要用到,不区分清楚,可能会导致 grub 装不上,或者装上了也启动不了。
我这边是 gpt格式的,并且有一个 efi 分区,这个是之前 安装 win7 的时候,系统给我带的,很幸运,不用创建 efi 分区,直接用这个分区就行了
创建 efi 分区也用 fdisk 创建一个 100M 的分区,然后格式化为 fat32 格式即可,
# EFI 分区格式化为 fat32
mkfs.fat -F32 /dev/sdb2
# 其他 Linux 分区格式化为 ext4 格式
mkfs.ext4 /dev/sdb3
这个地方比较重要,我来总结一下:我这边只创建了一个 Linux 分区sdb3用作根目录 /,我的是GPT的硬盘,EFI 分区必须有,不是gpt分区格式的,就可以不用创建 efi 分区。EFI 分区不管是 win7 自带的,还是手动通过fdisk创建的,都可以用。至于我为什么没用创建 swap 和其他类似的 什么 /home,/usr 等的,我是觉得没必要。
设置无线连接
没插网线的同学,如果系统安装了无线网卡,现在就可以测试一下无线网卡能不能用了,没插网线,又没有无线网卡的,就可以退下了。
[root@archlinux ~]# wifi-menu iw wireless_tools wpa_supplicant
如果没有弹出无线网络列表的对话框,看看自己的无线网卡是啥东西:
# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 003: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 002: ID 258a:1006
Bus 001 Device 005: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
看到 Bus 001 Device 005: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
,其实我知道,我的是 TP Link 的无线网卡,https://service.tp-link.com.cn/detail_article_1231.html 上没有找到答案,问客服,说没有 Linux 下驱动。于是,自己查查看看:
[root@archlinux ~]# pacman -Ss wireless
。。。。
community/broadcom-wl 6.30.223.271-58
Broadcom 802.11 Linux STA wireless driver
community/broadcom-wl-dkms 6.30.223.271-18
Broadcom 802.11 Linux STA wireless driver.
。。。。
很好,安装,解决了。
安装系统
确定好硬盘,安装系统这块,还是蛮简单的,为了表现出简单,我只用命令来写了,看懂就行了。
# 把要安装系统的分区,挂接到 /mnt
# mount /dev/sdb3 /mnt
# 创建一个 boot 目录,用来挂接 win7 下的 efi 分区(sdb2)
# mkdir /mnt/boot
# mount /dev/sdb2 /mnt/boot
# 安装系统了,我一次性把需要的东西装上了,如果觉得麻烦,只装 base 就行。
# pacstrap -i /mnt base base-devel vim dialog
# 向新系统写入分区表
# genfstab -U /mnt >> /mnt/etc/fstab
# 切换到新系统
# arch-chroot /mnt
# 选择时区,选 asia -> china -> 然后选第一个或者第二个都可以,看你所在地方
# tzselect
# 安装 grub,os-prober 要安装的,用来配合 grub 找到之前的win7系统
# pacman -S grub efibootmgr os-prober
# 安装 grub,这个是 gpt 安装,mbr的不是这么样
# grub-install --target=x86_64-efi --efi-directory=/boot
# 写入启动菜单
# grub-mkconfig -o /boot/grub/grub.cfg
到现在为止,新系统就安装到硬盘上了,剩下的就是设置时区,语言等等等杂项了,我们先reboot一下,
重启:
# 先退出 arch-chroot
# exit
# reboot
完善系统
安装桌面
如果足够顺利的话,应该能进入系统了。现在只是一个console,我们来安装桌面,个人只喜欢安装 gnome,安装方法也足够简单:
# pacman -S gnome gnome-tweaks
pacman 会分析相关依赖项目,只要一路回车就行了,不需要按照其他教程说的,需要 先安装 xorg ,再装 gnome,再安装 gdm 等等。。。
装完了 gnome,需要把 gdm 加入到开机运行,这样一开机就能直接进入登录页面了。
# chkconfig enable gdm
先别慌,貌似忘记了什么,关于显卡,用户,语言包,还没处理好。
显卡
现在说显卡,貌似有点晚,为什么?我们已经安装了桌面了,还需要显卡驱动么?这就是 Linux , Keep it sapmle 的精髓,我感觉最坑的就是显示了,安装显卡驱动只能会好那么一点点。太鸡肋了@——@
# 查看显卡类型
# sudo lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
我这边可以看到了,interl 的集成显卡。。。(⊙o⊙)… 打游戏玩不了,跑个 arch 够了。。。我们搜索一下 intel 的驱动程序。。。
# pacman -Ss xf86-video
extra/xf86-video-amdgpu 18.1.0-1 (xorg-drivers)
X.org amdgpu video driver
extra/xf86-video-ati 1:18.1.0-1 (xorg-drivers)
X.org ati video driver
extra/xf86-video-dummy 0.3.8-3 (xorg-drivers)
X.org dummy video driver
extra/xf86-video-fbdev 0.5.0-1 (xorg-drivers)
X.org framebuffer video driver
extra/xf86-video-intel 1:2.99.917+855+g746ab3bb-1 (xorg-drivers) [installed]
X.org Intel i810/i830/i915/945G/G965+ video drivers
extra/xf86-video-nouveau 1.0.15-3 (xorg-drivers)
Open Source 2D acceleration driver for nVidia cards
extra/xf86-video-openchrome 0.6.0-3 (xorg-drivers)
X.Org Openchrome drivers
extra/xf86-video-sisusb 0.9.7-2
X.org SiS USB video driver
extra/xf86-video-vesa 2.4.0-2 (xorg-drivers xorg) [installed]
X.org vesa video driver
extra/xf86-video-vmware 13.3.0-1 (xorg-drivers)
X.org vmware video driver
extra/xf86-video-voodoo 1.2.5-10 (xorg-drivers)
X.org 3dfx Voodoo1/Voodoo2 2D video driver
community/xf86-video-qxl 0.1.5-6 (xorg-drivers)
Xorg X11 qxl video driver
找到了:xf86-video-intel,我们只要安装一下就好,其他的如法炮制吧。我公司里面的是 nv 的,就安装 xf86-video-nouveau,显卡是 ati 的安装 xf86-video-ati:
# pacman -S xf86-video-intel
桌面主题美化
首先我们要安装 ocs-url 协议,到 https://www.opendesktop.org/c/1467909105 下载即可,然后直接 pacman 安装
pacman -U Downloads/ocs-url-3.1.0-1-x86_64.pkg.tar.xz
# 中间需要安装 chrome 扩展
pacman -S chrome-gnome-shell
我们安装 Flat Remix GNOME theme :https://www.gnome-look.org/p/1013030/ ,打开网页,右侧有 install 按钮,点击安装即可
效果图:
创建用户
我们不急着重启看效果,gdm 默认不让 root 登录的,我们先建立一个小号:
# 创建一个用户,并加入到 wheel 组,-m 是创建用户主目录
# useradd -m -g wheel fanshengshuai
# 设置该用户的密码
# passwd fanshengshuai
小号创建了,目前没有sudo的权限,没有这个权限,就很难受了,不够爽,编辑一下 /etc/sudoers ,找到这一行,去掉前面的 #,
# %wheel ALL=(ALL) NOPASSWD: ALL
为了看一下桌面效果,重启吧,暴力直接。
中文语言包与输入法
重启后,应该看到桌面了,输入小号之后,就进入桌面了,英文的。:),莫慌,慢慢来,跟着我的节奏,慢慢调,鼠标点一下左上角,或者按一下键盘上的 win 键,输入 ter,看到 terminal 的图标出来了,我们点一下。熟悉的终端窗口出来了,由于我们是小号,执行命令不方便,我们先切换到 root 再见机行事。
# 切换到 root
# sudo su -
我们再点一下左上角,出来程序列表后,输入 setting,会调出设置框,来,上个图:
选择左侧的 Region & Language ,就可以选择语言了,你的界面应该和我不一样,我这个已经汉化了,右边第一项就是选择语言,点进去,看看有没有汉语 ? ,哈哈,估计应该没有。我们生成一下中文语言包。(显然汉化的并不彻底,从我截图就看到了。唉,我也是有心无力啊,叹息一下就是了。。。),用 vim 打开 /etc/locale.gen,去掉下面几行的注释:
en_US.UTF-8
zh_CN.UTF-8
其他的语言包用不到,就不生成了,这两个就好,下面来运行一下:
# 生成语言包
[root@archlinux ~]# locale-gen
Generating locales...
en_US.UTF-8... done
zh_CN.UTF-8... done
Generation complete.
再到刚才打开的界面上选一下语言包吧,应该能看到汉语了。。。至于下面的输入源,暂时不要管,我们不用这个输入法(我试过,貌似打不出字来。不知是什么玩意,我们讲效果,不来虚的,浪费时间)
安装字体
系统是有了语言包了,打开网页,内容还是乱的。我们需要装一些字体进去,这些网上都有成熟的方案了,照抄过去就行:
[root@archlinux ~]# pacman -S ttf-dejavu wqy-zenhei wqy-microhei
安装其他软件
我们安装一个搜狗拼音输入法,不得不说,我对搜狗有了好感,就是在 Linux 上,也能用到他的输入法,真是独具匠心了,赞一个。对了,还有一个也还不错的,就是 网易云音乐,在这个环境下,不用浏览器能听到歌,真的感谢这些杰出的产品经理和辛苦的程序员同学。
增加软件源
显然,软件源是越多越好,我们先修改一下 /etc/pacman.conf ,把 这几行注释打开:
[community]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
我们再加一个源头进去:archlinuxcn,讲下面的内容复制到 /etc/pacman.conf
[archlinuxcn]
#The Chinese Arch Linux communities packages.
SigLevel = Optional TrustAll
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
安装yaourt
pacman -S yaourt
之后,我们就轻松的 pacman -S 来安装了。
[root@archlinux ~]# pacman -S fcitx-im fcitx-sogoupinyin
是不是 so easy ? 看起没问题一样的,其实呢,也不行,不管按 ctrl + shift 还是 Ctrl + Space 都调用不出来 @_@。
这呢,就是坑!有么有?有么有?我想问到底是为什么要折腾,还不是被逼的么?
一个程序好坏,就要看设计人员和制作人员是否体验够好,考虑的是不是够多,反复折腾,我累。。。
来,解决这个bug,见官方文档:https://wiki.archlinux.org/index.php/Fcitx_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
Gnome On Wayland 用户无法使用 fcitx
由于 wayland 无法读取 ~/.xprofile 中的环境变量,所以请在/etc/environment中加入:GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
或在登录时选择 运行于 Xorg 的 Gnome 。
把上面几行计入到 /etc/environment 中就行了,重启一下桌面,按一下快捷键就可以出来输入法了。
安装网易云音乐
当然,安装 网易云音乐 也很简单, pacman 一下就行了
pacman -S netease-cloud-music
安装浏览器以及其他
chrome:
pacman -S google-chrome
firfox:
pacman -S firefox
shadowsocks:
pacmans -S shadowsocks-qt5
目前位置,基本都完成了,剩下的,想起来慢慢补充好了。
WPS Office
处理 Word 文档等
pacman -S wps-office ttf-wps-fonts
开机启动配置
# 启用 dhcp 自动获取 ip 地址
# systemctl enable dhcpcd
# 启动桌面
# systemctl enbale gdm