为什么80%的码农都做不了架构师?>>>
本文永久地址:https://my.oschina.net/bysu/blog/1577013
参考:
https://blog.mrx.one/2017/03/20/How-to-install-Arch-Linux-with-Cinnamon-desktop-on-VMware-Workstation/
http://blog.csdn.net/jaina_proudmoore/article/details/52589135
前言
虚拟机vmware中安装archlinux,断断续续地搞了几天,总是装不上。都快放弃了。看了上述第一篇文章,终于跨过了那一步——让我挂了无数次的地方(pacstrap /mnt bas)。每每到这样都会报:pacman: error while loading shared libraries: libcurl.so.59: cannot open shared object file: No such file or library.的错误,简直让我无以奔溃。都是安装教程做的,可是我的就是报错,百度相关报错信息无果。今天死马当活马医,终于成功了。下面的步骤根据本人实际安装进行修改。
安装Arch Linux基本系统
这一部分照着官方Wiki来,基本上不会出什么问题。我在新建VMware Workstation虚拟机时,系统类型先选“Ubuntu 64位”,这样默认会添加SATA光驱,并开启加速3D图形等,创建完成后,再将系统类型修改为“其他 Linux 3.x 内核64位”。我给虚拟机分配了8GB内存,4个CPU核心,以及50GB硬盘,同时用EFI替换掉传统的BIOS引导。这个配置对于日常工作与开发来说绰绰有余。
检查网络连接
一般如果网络连接用的NAT
模式的话,开机后应该就会有网络了,可以用以下命令检查网络是否通畅:
ping www.baidu.com #ping通之后,按Ctrl+c键关闭当前命令
更新系统时间
首先启用ntp,确保系统时间正确:
timedatectl set-ntp true
建立硬盘分区
然后直接新建硬盘分区,在这里我使用的是有GUI的cfdisk:
cfdisk /dev/sda
由于我使用的是EFI引导,所以需要一个EFI分区。除此之外,还分了一个根分区和一个交换分区。需要注意的是,cfdisk默认会从2048扇区开始分区,因此实际可用容量为50GB - 2MB。最终我的分区方案是2GB的/boot
分区,40GB的/
分区,和8GB的swap
分区:
fdisk /dev/sda
1.先输入小写字母o,删除所有分区
2.输入n,创建一个新的分区
3.输入p,设为主分区,相对扩展分区而言
4.输入1,或者直接回车,默认为1
5.直接回车,默认起始位置2048
6.输入+100M,然后回车。我这个是用作boot分区,所以无需太大
7.输入n,创建一个新的分区
8.输入p,设为主分区,相对扩展分区而言
9.输入2,或者直接回车,默认为2
10.直接回车,默认起始位置
11.输入+4G,然后回车。我这个是用作swap分区
12.输入n,创建一个新的分区
13.输入p,设为主分区,相对扩展分区而言
14.输入3,或者直接回车,默认为3
15.直接回车,默认起始位置
16.直接回车,默认所有剩余的空间。我这个是用作根分区,所以50G的空间,除掉boot分区和swap分区,剩余的全部给它
格式化分区
分完区后就是格式化操作了,由于我是用的EFI引导,所以EFI分区需要格式化成FAT32格式(具体可见官方Wiki):
mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda3
mkswap /dev/sda2
swapon /dev/sda2
挂载分区
格式化完成之后,将分区sda3挂载到/mnt
。有些人可能是sda1,视你的根分区是哪个而定。先挂载根分区,再挂载其他分区(如果有其他分区的话,可以在/mnt中先创建目录,然后再挂载其他相应的分区。如下):
mount /dev/sda3 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
选择镜像
由于国内网络环境,连接国外源可能会很慢,所以有必要换成国内镜像。只需要修改mirrorlist
文件,注释掉其他源,保留国内源即可:
vi /etc/pacman.d/mirrorlist
安装基本系统
选择好国内源后,便可以开始基本系统的安装。我同时安装了base-devel
:
pacstrap /mnt base base-devel
生成fstab
等待安装完成后,使用genfstab
命令生成fstab
文件:
genfstab -U /mnt >> /mnt/etc/fstab
Chroot
接下来chroot
到新安装的系统。chroot也就是将该目录变成/
:
arch-chroot /mnt
设置时区
然后将系统时区设为东八区:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
同时使用hwclock
设置硬件时钟,并调整时间偏移:
hwclock --systohc
设置Locale
接下来需要进行一些语言和地区相关的配置。由于我使用的是英语,因此只配置了英语语言。如果使用中文的话可以额外增加中文的配置。先编辑locale.gen
文件,解除en_US.UTF-8 UTF-8
的注释。如果需要中文,同时解除zh_CN.UTF-8 UTF-8
的注释:
vim /etc/locale.gen
然后执行以下命令生成locale信息:
locale-gen
然后还需要设置LANG
环境变量:
echo LANG=en_US.UTF-8 > /etc/locale.conf
#因为我的没有locale.conf这个文件,所以通过上面的方式新建一个这样的文件
设置主机名
由于/etc中,我的又没有hostname文件,所以通过以下方式写入主机名:
echo 主机名 > /etc/hostname
将改为你自己的主机名:
vi /etc/hosts
#
127.0.0.1 localhost.localdomain 主机名
::1 localhost.localdomain localhost
修改Root用户密码
执行passwd
,并输入两次密码:
passwd
创建新用户
非常不建议使用root用户登录!因此有必要创建一个其他用户:
useradd -m -G wheel -s /bin/bash 你的用户名
-G
参数将该用户加到额外的wheel
组中,稍后可以给这个组执行sudo
命令的权限。-s
参数制定了默认的shell为bash
,其实无所谓,因为我一般会很快切换到zsh
。
修改新创建用户的密码,照样是输入两次:
passwd 你的用户名
增加/etc/sudoers
文件的写属性
chmod u+w /etc/sudoers
编辑sudoers文件
root ALL=(ALL) ALL #在这一行下面复制一行
新建的用户名 ALL=(ALL) ALL
安装启动引导器grub:
安装 grub 包,并执行 grub-install 已安装到 MBR:
pacman -S grub
grub-install --target=i386-pc --recheck /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
须根据实际分区自行调整 /dev/sda, 切勿在块设备后附加数字,比如
/dev/sda1 就不对
10、卸载分区并重启系统
离开 chroot 环境:
exit
卸载分区
umount /mnt/boot /mnt
重启计算机:
reboot
配置ssh,方便xshell连接,操作起来方便一点
安装openssl和openssh
pacman -S openssl openssh
编辑/etc/ssh/sshd_config,把Port 22前面的注释去掉
Port 22
启动sshd服务以及设置开机启动
sudo systemctl start sshd
sudo systemctl enable sshd
桌面环境安装
先进行网络设置,在上面的livecd中一般会自动联网
# ip link
找到网络设备,我的是ens33
# ip link set ens33 up
# dhcpcd ens33
# systemctl enable [email protected] 以后系统就会自动联网了
生成用户文件夹
先安装xdg-user-dirs
,用于生成用户目录下的 Documents
、Downloads
、Music
、Pictures
等等文件夹:
pacman -S xdg-user-dirs
xdg-user-dirs-update
ls
不出意外的话,使用ls
命令应该可以看到生成的那些文件夹了。
安装open-vm-tools
使用VMware Workstation安装其他系统的话,都会装一个VMware Tools的软件,这个软件相当于是一个驱动包,装完后图形性能、跨机器复制粘贴、文件拖拽等功能才能使用。VMware官方推荐在Linux系统上使用VMware Tools的开源实现:open-vm-tools。在此之前,也有一些必要软件需要安装:
sudo pacman -S mesa lsb-release xf86-input-vmmouse xf86-video-vmware
接下来安装open-vm-tools
:
sudo pacman -S open-vm-tools gtkmm
如果不安装gtkmm
,等安装完桌面环境以后,跨机器复制、文件拖拽貌似不会生效~
接下来让open-vm-tools
开机自启。貌似Arch Linux上安装的绝大部分软件默认都不会开机自启:
sudo systemctl enable vmtoolsd.service
sudo systemctl enable vmware-vmblock-fuse.service
然后安装x window:
pacman -S xorg
安装XFCE4 桌面套件
键入
pacman -S xfce4
安装登陆管理器,这样不需要手动去输入启动X的命令,登陆管理器也有很多,这里选一个小巧的slim:
pacman -S slim
配置slim相关,参考
编辑(如果没有则新建)~/.xinitrc,加入如下内容
#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)
exec startxfce4
chmod +x ~/.xinitrc
如果不进行以上配置,则可能会出现图形界面登录时,输入用户名和密码后,提示:failed to execute login command。报错后,跳转字符界面,然后再接着回到图形界面。总而言之就是进不了图形界面。
重启就可以通过图形界面进行登录了。
sudo reboot
------------------------------------------------------------------------------------------------------------系统安装到处就告一段落了。如果需要中文输入或者中文显示,可以继续看我后面copy别人的部分。
-------------------------------------------------------------------------------------------------------------
java和python的安装,请前往:https://my.oschina.net/bysu/blog/1560594。不过这里是树莓派上的安装方法,方法一样,不过安装包需重新到Oracle官网下载对应的版本。
安装python的Pillow库,以便通过python对图片进行操作。上面做了那么多,就是为了这个目的。泪奔~~!
之前通过sudo pacman -S python-imaging 安装python-imaging库没有用
sudo pacman -S python-pillow
关于PIL的使用,可以参考这篇博客:Python图像处理库Pillow入门
=============以下为copy内容=======================================
然后安装输入设备驱动:
1 |
yaourt -S xf86-input-evdev xf86-input-keyboard xf86-input-mouse xf86-input-void libinput |
为了修改菜单图标为Arch Linux的图标,还有登录界面使用Arch Linux官方壁纸等,可以安装下面两个软件,安装完成后所有资源都在/usr/share/archlinux
目录下:
1 |
yaourt -S archlinux-artwork archlinux-wallpaper |
然后安装一些好看的中英文字体:
1 |
yaourt -S ttf-dejavu adobe-source-code-pro-fonts ttf-ubuntu-font-family noto-fonts noto-fonts-emoji noto-fonts-cjk wqy-microhei wqy-bitmapfont wqy-zenhei |
恩,到这里Cinnamon桌面环境应该安装OK了,那么就重启吧,希望重启以后能看到那不太漂亮的登录界面~ :smile:
1 |
sudo reboot |
提醒一下:登录的时候,记得一定要先在右上角选择会话那里,选择Cinnamon!
安装常用软件以及其他优化
如果你的Cinnamon桌面已经安装完毕,那么可以继续往下,否则,还是认真看看上面哪一步做错了。
系统美化
主题、字体、菜单图标、登录界面等,都可以按照你的个人喜好去调整,我也不再细说。
安装Rime输入法
首先,输入法是必不可少的。对于我来说,我比较喜欢使用Rime输入法:
1 |
yaourt -S fcitx-im fcitx-configtool fcitx-rime |
安装完成后,可以在Menu
里面找到Fcitx
启动,然后打开Fcitx Configuration
,添加Rime即可。下次开机时,Fcitx
会自动启动。
装完输入法,还需要进行一些额外的配置,否则在有些地方(如Intellij IDEA)无法输入中文:
1 |
vim ~/.xprofile |
然后写入以下内容:
1 2 3 4 |
# Fcitx export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx |
安装并启用Shadowsocks代理
除了输入法,当然还有重要软件要装:
1 |
yaourt -S s-libev simple-obfs |
然后新建配置文件:
1 2 |
sudo mkdir /etc/s sudo vim /etc/s/config.json |
编辑好配置文件后,启用代理,并设置开机自启:
1 2 |
sudo systemctl start [email protected] sudo systemctl enable [email protected] |
启动代理后,除了在Chrome上安装Switch Omega等软件外使用代理,还可以设置系统代理,这里需要使用genpac
来根据gfwlist.txt
生成PAC文件。由于Arch Linux默认使用Python 3,而genpac
不兼容Python 3,因此需要安装python2-pip
:
1 2 |
yaourt -S python2-pip sudo pip2 install genpac |
genpac
的使用方法可以参考官方文档。
生成PAC文件后,还需要在System Settings -> Network -> Network Proxy
中进行设置,Method
选择Automatic,Configuration URL
填写PAC文件地址。如file:///home/acris/Softwares/GenPAC/proxy.pac
。
开发工具
对于一个程序猿来说,常用软件当然是一些开发工具了。我个人用的较多的开发工具主要是JetBrains家族的,这些软件AUR都有提供,直接使用yaourt
搜索即可,例如:
1 |
yaourt -Ss intellij |
不过我是直接从JetBrians官网下载解压后使用,两种方法都可以,具体取决于个人喜好。需要提一下的是,Cinnamon默认很多快捷键会和JetBrains家族的IDE冲突,我的做法是把系统的快捷键都取消了,反正也用不着。另外Fcitx
的一些快捷键也会和IDE冲突,例如Ctrl + Space
,所以我改成了Super + Space
,这些地方都需要自己去慢慢配置。
JDK、Node.js等工具AUR也有提供,但我个人偏好于使用sdkman
和nvm
来进行管理。
其他的像File Zilla,Postman等,我是直接从AUR安装:
1 |
yaourt -S filezilla postman-bin |
文本编辑器的话,大神们喜欢用Vim,但是我觉得gedit也蛮好用的:
1 |
yaourt -S gedit |
当然,你若是喜欢Atom、VSCode、Sublime Text等工具的话,AUR也可以满足你。
安装其他常用软件
浏览器个人钟爱Chrome:
1 |
yaourt -S google-chrome |
Markdown编辑器,首选Typora:
1 |
yaourt -S typora |
如果需要办公,可以安装LibreOffice:
1 |
yaourt -S libreoffice-fresh |
邮件客户端可以用Mozilla出品的Thunderbird:
1 |
yaourt -S thunderbird |
音乐客户端当然是网易云音乐了:
1 |
yaourt -S netease-cloud-music |
视频播放器可以使用VLC:
1 |
yaourt -S vlc |
偶尔有图片编辑需求的话,当然是Linux下大名鼎鼎的GIMP了:
1 |
yaourt -S gimp |
如果只是查看图片,可以安装Linux Mint出品的Pix:
1 |
yaourt -S pix |
还有更多更多软件,AUR基本上都可以满足你。除了滚动更新的特性和丰富的Wiki以外,Arch Linux的另一大特点就是强大的AUR仓库。
最后,献上两张成品图(点击可以查看大图):
总结
在VMware Workstation中安装Arch Linux和Cinnamon桌面环境的教程到此便结束了,如果安装过程遇到其他问题,可以去ArchWiki或者通过谷歌寻找答案,当然也可以在下面留言,如果我会的话当然乐意解答。
从我一天多时间的踩坑经验来说,以下几点是容易出错的:
- 安装完系统无法启动?看看是不是粗心大意把
PARTUUID
配置错了。 - 安装完系统没有设置
dhcpcd
开机自启,导致无网络。 - 安装完
open-vm-tools
没有设置开机自启,导致重启后不生效。 - 安装完
open-vm-tools
后没有安装gtkmm
,导致跨机器复制粘贴、文件拖拽不可用。 - 如果你偏爱
lightdm-webkit2-greeter
,一定要在LightDM配置文件中指定greeter-session
。 - 安装完输入法在部分程序(如Intellij IDEA)中无法输入?需要手动在
~/.xprofile
中配置变量。 - Shadowsocks无法启动?记得用
[email protected]
,@符号后面是配置文件的名称。 - 登录后黑屏,Cinnamon崩溃?先看
~/.xssession-errors
里面有没有和libinput
相关的错误?有的话尝试安装libinput
,还不行的话我也无解了。 - IDE的快捷键被占用?去改掉系统和输入法的快捷键吧~
其他未解决的问题:
- 安装鼠标光标主题后,在设置中选择鼠标主题时,不显示预览图,貌似是Cinnamon的BUG,暂时无解。
本文虽为VMware Workstation安装Arch Linux Cinnamon的教程,但是应该同样适用于其他环境,只需将安装open-vm-tools
那一步,换成安装其他环境的驱动即可(未经测试,出错勿怪哈)。
由于Arch Linux的Wiki更新较为频繁,建议用此文章结合官方Wiki一起安装。文章虽然写的不太好,但是希望有了我的前车之鉴,以及我不断填坑总结出来的这份安装教程,大家能够少走弯路,一次成功~
参考资料:
- ArchWiki - Installation guide
- ArchWiki - Cinnamon
- ArchWiki - Display manager
- ArchWiki - VMware/Installing Arch as a guest
- Installing GUI (Cinnamon Desktop) and Basic Softwares in Arch Linux
安装yaourt
至于什么是yaourt
在这里就不再赘述了,在我看来它就是一个AUR的包管理器,并且完全可以替代pacman
。
要安装它很简单,只要添加archlinuxfr
的源,然后安装就行了。需要注意的是,yaourt
不能以root身份使用,所以这里安装完成了,到时候会用上面新建的用户登录,再使用该命令。还有一点就是以非root用户使用时,无需加sudo
命令,需要管理员权限时,yaourt
会自动弹出输入密码的提示。
添加archlinuxfr
源:
1 |
vim /etc/pacman.conf |
在最底部加上以下内容:
1 2 3 |
[archlinuxfr] SigLevel = Never Server = http://repo.archlinux.fr/$arch |
然后安装yaourt
:
1 |
pacman -Syu yaourt |
新手第一次使用yaourt
安装AUR库中的软件时可能会有点懵逼,一般安装AUR的软件时,会弹出是否编辑PKGBUILD
,一般情况下不需要编辑,按n
即可。有些软件会询问你是否要编辑xxxxx.install
安装脚本,一般情况下也直接按n
就好。当询问是否继续编译或者安装软件时,则需要按y
。