archlinux安装

ArchLinux为了快速迭代,在安装上实在是太不友好了。作为一个入门级使用者,我踩了无数的坑才跳出来。为了让其他人不用重复跳坑,我写了个简易安装脚本,希望能让大家在安装的时候能轻松一点

目前仅测试过ArchLinux2020,不过别的应该也就是小改就行。

首先下载ArchLinux,然后建立虚拟机,修改成EFI启动,这方面的文章有很多,我就不重复了

启动之后

先用cfdisk分区

目前脚本里分区顺序是

/dev/sda1 -> EFI 分区

/dev/sda2 -> 交换分区

/dev/sda3 -> OS安装分区

分区完成之后先按别的教程检查网络是否正常

然后在命令行执行以下命令

mkdir /inst

mount -t cifs -o username=[id],password=[pass],vers=2.1 [//192.168.182.1/folder] /inst

id/pass是主机远程目录的登录ID和密码,//192.168.182.1/folder是主机上的远程目录,换成你自己的相关内容就行。安装脚本放在这个远程目录里

/inst/install.sh

然后按提示操作就是

执行完成之后,在命令行输入

exit

umount -R /mnt

然后重启,ArchLinux的基本模块就安装完成了,然后再按你自己的喜好装用户桌面就行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
systemctl enable dhcpcd.service #好象可以去掉,我没试
timedatectl status
timedatectl set-ntp true #设置时间

mkfs.fat -F32 /dev/sda1 #格式化EFI分区
mkfs.ext4 /dev/sda3 #格式化主分区
mkswap /dev/sda2 -L Swap #建立交换分区
swapon /dev/sda2 #挂载交换分区
#如果你的分区格式跟我这里不一样,需要修改上面4行来适应你的分区

mount /dev/sda3 /mnt
mkdir -p /mnt/boot/EFI
mount /dev/sda1 /mnt/boot/EFI

echo '## China\nServer = http://mirrors.aliyun.com/archlinux/$repo/os/$arch' > mrlist
grep -A 1 'China' /etc/pacman.d/mirrorlist|grep -v '\-\-' >> mrlist
cat /etc/pacman.d/mirrorlist >> mrlist
mv mrlist /etc/pacman.d/mirrorlist #把国内源加到源列表里
pacman -Sy archlinux-keyring

echo "Generate fstab"
genfstab -U /mnt >> /mnt/etc/fstab
echo "Install package"
pacstrap /mnt base linux linux-firmware net-tools dhcpcd networkmanager openssh #安装各个包,可以按你自己的需要增加或取消,如果以后包的功能有所变化,多半只需要改这里
echo "Change root path"
arch-chroot /mnt

echo dnsnat > /etc/hostname
echo "127.0.0.1 localhost" >>/etc/hosts
echo "::1 localhost" >>/etc/hosts
echo "127.0.0.1 dnsnat.localdomain dnsnat" >>/etc/hosts
echo "Host name set" #设置主机名,按你需要的修改一下

passwd #设置root密码,我这里是测试机,不需要建立别的用户,如果你有需求,在这里加上建立用户的命令或者安装好之后再建立

pacman -S grub efibootmgr
grub-install --recheck /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg #设置启动部分

#mkinitcpio -p linux

wifi设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 进入iwctl
iwctl

# 获取device名称 我这里是 wlan0,后面注意wlan0替换成你自己device
device list

# 扫描附近wifi
station wlan0 scan

# 获取所有可连接wifi名字
station wlan0 get-networks
station wlan0 connect [wifi名]

#输入密码
# ctrl+c 退出 iwctl

manjaro双显卡

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1.命令行安装intel和nvidia闭源驱动,注意linux内核为linux-lts版本的,需要安装nvidia-lts而不是nvidia,推荐参考大神文档 https://archlinuxstudio.github.io/ArchLinuxTutorial

  sudo pacman -S xf86-video-intel

  sudo pacman -S nvidia-lts nvidia-settings xorg-server-devel lib32-nvidia-utils lib32-opencl-nvidia

2.安装切换工具,我这里用的nouveau,也可以用bbswitch , sudo pacman -S xf86-video-nouveau

3.kde桌面需修改/etc/sddm.conf
#在下列2句前面加井号注释
#DisplayCommand=/usr/share/sddm/scripts/Xsetup
#DisplayStopCommand=/usr/share/sddm/scripts/Xstop


sudo pacman -S bbswitch
安装:yay -S optimus-manager;
systemctl enable optimus-manager.
service;systemctl start optimus-manager.service;
查看:systemctl status optimus-manager
卸载:optimus-manager --cleanup; yay -R optimus-manager

查看
__GL_SYNC_TO_VBLANK=0 glxgears
或NVIDIA Setting查看cpu使用

ssh 'demonelf-aria2lib-32w3orvw3u8#fZkPKeAMidaHPk0LIVixAMak4.0Vy_iB@demonelf-aria2lib-32w3orvw3u8.ssh.ws-us106.gitpod.io'

更新系统

在 Archlinux 中,使用一条命令即可对整个系统进行更新:

1
2
pacman -Syu
pacman -Syuu --noconfirm

如果你已经使用pacman -Sy将本地的包数据库与远程的仓库进行了同步,也可以只执行:pacman -Su

更新源

方法一

1
2
3
4
5
# sudo gedit /etc/pacman.conf
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
# sudo pacman -Sy
# pacman -S archlinuxcn-keyring

方法二

1
2
3
4
sudo pacman-mirrors -i -c China -m ran
sudo pacman -Syyu

https://blog.csdn.net/CHAOS_ORDER/article/details/103396013

安装包

➔ pacman -S 包名:例如,执行 pacman -S firefox 将安装 Firefox。你也可以同时安装多个包,
只需以空格分隔包名即可。
➔ pacman -Sy 包名:与上面命令不同的是,该命令将在同步包数据库后再执行安装。
➔ pacman -Sv 包名:在显示一些操作信息后执行安装。
➔ pacman -U:安装本地包,其扩展名为 pkg.tar.gz。
➔ pacman -U http://www.example.com/repo/example.pkg.tar.xz 安装一个远程包(不在 pacman 配置的源里面)

删除包

➔ pacman -R 包名:该命令将只删除包,保留其全部已经安装的依赖关系
➔ pacman -Rs 包名:在删除包的同时,删除其所有没有被其他已安装软件包使用的依赖关系
➔ pacman -Rsc 包名:在删除包的同时,删除所有依赖这个软件包的程序
➔ pacman -Rd 包名:在删除包时不检查依赖。

搜索包

➔ pacman -Ss 关键字:在仓库中搜索含关键字的包。
➔ pacman -Qs 关键字: 搜索已安装的包。
➔ pacman -Qi 包名:查看有关包的详尽信息。
➔ pacman -Ql 包名:列出该包的文件。

查询已安装

➔ pacman -Qe #查询所有自己安装的软件
➔ pacman -Q #显示出所有软件 sudo pacman -Q | wc -l 查询数量
➔ pacman -Qe #查询所有自己安装的软件
➔ pacman -Qeq #查询所有自己安装的软件,只显示包名,不显示版本号等
➔ pacman -Qs #查询本地安装的所有带的软件
➔ pacman -Qdt #查询所有孤儿软件,不再被需要的。
➔ pacman -Qdtq #查询所有不再被依赖的包名

其他用法

➔ pacman -Sw 包名:只下载包,不安装。
➔ pacman -Sc:清理未安装的包文件,包文件位于 /var/cache/pacman/pkg/ 目录。
➔ pacman -Scc:清理所有的缓存文件。
➔ pacman -Qdt :查找系统中不再需要的依赖。
➔ pacman -Rns $(pacman -Qdtq) : 确认要删除这些依赖关系。

移除不使用的包

递归地删除包和它的配置文件

1
sudo pacman -Qtdq | sudo pacman -Rns -

pacman -Q 主要用于查询,其后加选项和包名

pacman -Qt (–unrequired) 列出不被任何包需要的包

pacman -Qd (–deps) 列出作为依赖被安装的包

pacman -Qq (–quiet) 显示少量的信息(只显示包名,不显示版本)用于查询或搜索

pacman -R 主要用于删除,其后加选项和包名

pacman -Rn (–nosave) 移除配置文件

pacman -Rs (–recursive) 递归地删除不需要的依赖

包的查询及清理

列出所有本地软件包(-Q,query查询本地;-q省略版本号)
$ pacman -Qq (列出有816个包)

列出所有显式安装(-e,explicitly显式安装;-n忽略外部包AUR)
$ pacman -Qqe (列出200个包)

列出自动安装的包(-d,depends作为依赖项)
$ pacman -Qqd (列出616个)

列出孤立的包(-t不再被依赖的”作为依赖项安装的包”)
$ pacman -Qqdt (列出35个)
注意:通常这些是可以妥妥的删除的。(sudo pacman -Qqdt | sudo pacman -Rs -)

查询包详细信息(-Qi;-Qii[Backup Files])(-Si[Repository,Download Size];-Sii[Signatures,])
$ pacman -Qi 包名
$ sudo cat pacman.log |grep boost 查看安装日志

清理软件包缓存:
pacman 将下载的软件包保存在 /var/cache/pacman/pkg/ 并且不会自动移除旧的和未安装版本的软件包,因此需要手动清理,以免该文件夹过于庞大。使用内建选项即可清除未安装软件包的缓存:

$ pacman -Sc

$ rm -rf ~/.cache/yay/*/

tmux: need UTF-8 locale (LC_CTYPE) but have ANSI_X3.4-1968

查了一下,找到这个Arch Linux的Wiki页面,解决方法就是:

编辑 /etc/locale.gen 文件,取消这一行的注释:

en_US.UTF-8 UTF-8

执行以下命令生成Locale:

1
locale-gen

执行以下命令设置整个系统的Locale:

1
localectl set-locale LANG=en_US.UTF-8

安装中文字体

pacman -S ttf-arphic-uming

内核

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#导出当前内核的配置
zcat /proc/config.gz > .config
#配置
make menuconfig
#编译
make
#安装
make modules_install
#将内核拷贝至/boot,xx主要是为了与原本的内核区分开,随便写
cp -v arch/x86/boot/bzImage /boot/vmlinuz-linux<xx>
# 制作初始化内存盘,version可在/lib/modules/下查看
mkinitcpio -k <version> -g /boot/initramfs-linux<xx>.img
# 拷贝System.map
cp System.map /boot/System.map-<kernelName>
ln -sf /boot/System.map-<kernelName> /boot/System.map
#更新grub
grub-mkconfig -o /boot/grub/grub.cfg

neovim

sudo pacman -S –noconfirm neovim

sudo pacman -S –noconfirm python-pynvim

sudo pacman -S –noconfirm nodejs npm

sudo pacman -S –noconfirm global

:CocInstall coc-clangd

:CocInstall clangd.install

:CocInstall coc-snippets

命令行无线配置

https://zhuanlan.zhihu.com/p/384463536?utm_id=0

wps

需要添加AUR库并且安装好yay

sudo pacman -S yay

yay -S wps-office-mui-zh-cn wps-office-mime-cn wps-office-cn wps-office-fonts ttf-ms-fonts ttf-wps-fonts

yay -S freetype2-wps

google-chrome

yay -S google-chrome

sway

pacman -S sway xorg-xwayland rofi waybar

wayland

https://zhuanlan.zhihu.com/p/531205278

pacman -S plasma-wayland-session plasma-wayland-protocols qt5-wayland qt6-wayland xorg-xwayland

pacman -S –needed plasma-wayland-session

pacman -S stardict

yay -S stardict-oxford-gb-formated

yay -S dingtalk-bin

yay -S wemeet-bin

录屏软件

sudo pacman -Sy obs-studio

yay -S kazam

vnc

#启动xserver

Xvfb :2 -screen 0 800x600x24 -nolisten tcp

#启动桌面

startplasma-x11

#启动vnc

x0vncserver -display :0 rfbport=5901 -PasswordFile /home/dnsnat/.vnc/passwd

#启动webvnc

novnc –vnc 127.0.0.1:5901

#配置password

  • Install TigerVNC
  • Configure password by running vncpasswd in the console
  • Add the following command to the auto startup applications of you DE: x0vncserver -display :0 -PasswordFile /home/your_user_name/.vnc/passwd

#开发工具

#在deiban和ubuntu中叫build-essential,在archlinux下就是base-devel。

#在centos上用yum groupinstall “Development Tools”安装就好。

pacman -S glibc lib32-glibc binutils gcc

Journal日志配置

https://www.bbsmax.com/A/ZOJPvg9Pdv/

系统备份

https://wiki.archlinux.org/title/Full_system_backup_with_tar

系统迁移

https://www.helloworld.net/p/0183315874

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1024M——efi
12G-———linux swap
剩下的就是——filesystem

mount /dev/sda3 /mnt
mount /dev/sda1 /mnt/boot/efi

rsync -aAHSXvP --delete-before / /mnt --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/dev --exclude=/sys --exclude=/run/media --exclude=/media --exclude=/tmp --exclude=/lost+found --exclude=/home/dnsnat/.cache --exclude=/var/tmp --exclude=/var/run --exclude=/run --exclude=/home/dnsnat/workspace


cd /mnt
mkdir dev proc sys run tmp run
mount -t proc /proc /mnt/proc
mount --rbind /dev /mnt/dev
mount --rbind /sys /mnt/sys

genfstab -U /mnt >> /mnt/etc/fstab
chroot /mnt
#mbr
grub-install --recheck /dev/sdX
#gpt
grub-install --target=x86_64-efi --efi-directory=/boot/efi --recheck
#gpt u盘
grub-install --target=x86_64-efi --efi-directory=/boot/efi --recheck --removable
grub-mkconfig -o /boot/grub/grub.cfg #设置启动部分

sudo pacman -S tftp-hpa

配置文件:/etc/conf.d/tftpd

1
TFTPD_ARGS="--secure /home/hide/Downloads -c -l"

sudo systemctl start tftpd.service

使用 tftp 无法向服务器上传文件问题解决

tftp -pr core 192.168.31.223

Manjaro/arch linux glibc 更新 发生错误,没有软件包被更新 glibc-locales: 文件系统中已存在 /usr/lib/locale/ | virtualbox 闪烁

https://blog.csdn.net/weixin_44220976/article/details/133954801

https://blog.csdn.net/lyndon_li/article/details/125921603


archlinux安装
http://blog.uanet.cn/SYSTEM/archlinux安装.html
作者
dnsnat
发布于
2024年4月19日
许可协议