前天把阿里云服务器的Ubuntu重装成了ArchLinux

,有几方面的原因:

  1. 用Ubuntu的时候各种ppa还有自己编译的程序,系统文件太乱了。
  2. 在Ubuntu上部署的latex编译器编译学校毕业论文的tex模板bibtex总是有问题,网上查了一下,texlive出2021版了,重装一遍新的texlive成本也挺高。
  3. 之前用Ubuntu的时候装上tex后系统空间不够用的,一个texlive的文件夹就占用8G之多。

网上有vps2arch安装脚本,但是看了下好久没更新了,而且测试列表不包括阿里云,于是找了另一篇教程,但是原帖已经不见了,现在简单记录下。

下载RootFS

新建一个安装文件夹,默认root操作。

1
2
mkdir /arch
cd /arch

Arch下载页面找个近的镜像源,点进去后下载archlinux-bootstrap的tar.gz文件

1
wget [下载链接]

然后解压

1
2
tar xf arch*
cd root.x86_64

进入chroot

mount -B

1
mount -B /arch/root.x86_64 /arch/root.x86_64

编辑镜像列表

1
vim etc/pacman.d/mirrorlist

找到几个比较近的镜像源取消注释。然后chroot

1
./bin/arch-chroot .

chroot里安装Arch

1
2
pacman-key --init
pacman-key --populate archlinux

挂载原来的系统盘

1
2
mount /dev/vda1 /mnt
cd /mnt

删除除了dev,run,proc,sys,swapfile,arch之外的文件

安Arch

1
2
pacstrap /mnt base base-devel linux linux-firmware
genfstab -U /mnt >> /mnt/etc/fstab

进入新系统

1
arch-chroot /mnt

设置时区

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

设置主机名

1
vim /etc/hostname

如果没有vim,需要用pacman装一下。写上

127.0.0.1	localhost
127.0.0.1	主机名

安装系统软件并设置自启

1
2
3
4
5
pacman -S vim dhcpcd openssh grub
systemctl enable systemd-networkd
systemctl enable systemd-resolved
systemctl enable dhcpcd
systemctl enable sshd

剩下的懒得写了,请参考原博客,重启之后记得删除/arch文件夹。

改动部分为将Arch安装目录新建了一个,因为原教程放到/tmp,重启后发现空间少了很多,最终经过群友们排查,是因为mount了新的tmp把旧的/tmp文件夹内容覆盖了,所以新建一个文件夹比较方便删除。

重启后需要设置locale,请参考Arch wiki。

安装yay

Github上下载pkgbuild安装,但是安装时一直保持,build()函数存在错误,后来开了代理才知道原来是有些依赖包下载不下来,开代理后安装正常。

之后安装texlive环境

1
pacman -S texlive-bin texlive-core texlive-bibtexextra texlive-formatextra texlive-latexextra texlive-langchinese tllocalmgr

其中tllocalmgr是tmlgr在Arch上的代替软件,可以用来安装latex包并且加上pacman的hook。xelatex调用系统字体,字体网站下载或者从windows拷贝,然后放到~/.local/share/fonts文件夹下即可。Arch上的texlive占用体积只有1G多,安装完Arch整个系统才7.3G,而原来的Ubuntu一个texlive都不止这些。

然后是nignx配置,原来Ubuntu的配置之间拷过去会报错,只能自己改,其实也很好改,在/etc/nginx/nginx.conf的http-server部分加上对应的配置就行。还有一个问题,nginx运行起来之后访问显示403forbidden,后来发现是用户不一致,要在nginx配置对应的user部分改成如root(因为我用root启动的,其他情况改成自己用户名)。

其他软件根据自由需要安装,locale设置参考archwiki