pacman Usage

To use pactree and paccache install pacman-contrib To install packages pacman -S package_name1 package_name2 来安装软件 pacman -S $(pacman -Ssq package_regex)来安装不太清楚名字的包 pacman -Sg package_group_name 查看一个软件包组有什么软件 pacman -S -needed package_name1 pacman 默认会重新安装软件, 即使软件已经是up to date. --needed 会避免安装已经up to date软件 一些软件会有选项, 例如Enter a selection (default=all): 1-10 15这将安装1到10和15号软件包 ^5-8 ^2 这将安装除了5-8和2号软件包之外的其他软件包 To remove packages pacman -R package_name 只移除目标软件包, 留下其依赖的软件包 pacman -Rs package_name 移除目标软件包和没有被其他软件依赖的软件包 pacman -Rsu 当移除一个group时上面的那一条命令可能拒绝执行, 尝试这一条命令 pacman -Rsc 递归移除目标软件包和它依赖的全部软件及依赖它的全部软件 pacman -Rdd 移除被其他包依赖的软件包, 而不移除依赖它的包. 这个命令可能会导致系统崩溃, 不推荐使用 pacman -Rn package_name 移除软件的配置文件, 但不会移除软件自己创建的, 和家目录的dot配置文件 To update packages pacman -Syu update full packages and system To get packages details pacman -Ss string1 string2 在datebase中搜索packages’ name and descriptions pacman -Ss '^vim-' 可以使用some ERE(Extend Regular Expressions) pacman -Si package_name 获取extensive information about a given package in remote pacman -Qs string1 string2 搜索本地已经安装的包的name和descriptions pacman -Q 只搜索主动安装的包的名字 pacman -Qi package_name 获取本地安装包的extensive information pacman -Qo /path/to/file_name 获取软件属于哪个软件包 pacman -F string1 string2 获取远程的包的文件路径名 pacman -Qdt 列出不再被依赖的软件包 pacman -Qet 列出不再被依赖的软件包详细信息 other feature pacman -Sw package_name 下载软件包不安装它 pacman -U /path/to/package/package_name-version.pkg.tar.zst 安装本地软件包 pacman -U file:///path/to/package/package_name-version.pkg.tar.zst 保留一个副本在pacman’s cahce中 pacman -U http://www.example.com/repo/example.pkg.tar.zst 安装远程软件包 yay yay -Ps 打印系统的一些安装软件包的分析 yay -Yc 清除不使用的依赖 yay -G aur_package_name 下载PKGBUILD文件从ABS或AUR yay -Y --gendb 生成开发者包数据库 yay -Syu --devel --timeupdate 更新系统, 检查开发者包 paru paru <target> 交互搜索和安装target paru 和 paru -Syu 相同, 更新系统 paru -Sua 只更新AUR packages paru -Qua 打印可用的AUR更新 paru -G <target> 下载PKGBUILD文件和关联的文件 paru -Gp <target> 打印target的PKGBUILD的内容 paru -Gc <target> 打印target的AUR的comments paru --gendb 创建devel database Archlinux install deb package 1. 使用AUR中其他人提供的包 using AUR(Arch Linux User Repository) 2. 手动安装 首先, 解压下载的 *.deb 包, ar -x *.deb --output dirname cd dirname 应该可以看到 control.tar.gz data.tar.xz debian-binary debian-binary 显示debian包管理的信息版本(super不重要) control.tar.xz 为软件介绍(包括依赖非常重要), 一些包的安全验证程序和完整性的验证程序(可以不用管) data.tar.xz 软件安装的位置及软件, 可能是 etc opt usr 然后根据依赖信息安装依赖, 根据data中目录的位置将相应的软件拷贝到相应的目录. 3. 自己写arch’s makepkg file. 首先, 通过cp /usr/share/pacman/PKGBUILD.proto ./PKGBUILD拷贝一个PKGBUILD模板. 然后, 设置PKGBUILD中的变量和函数的功能. pkgname: 软件包的名称 pkgver: 软件包的版本, 通常为数字, . _ -组成 pkgrel: 必须存在, 并设置为1 pkgdesc: 软件的描述 arch: 可以运行的平台, 一般为x86_64 url: 下载该软件的地址 license: 发行协议 depends: 软件的依赖 source: 构建包所需要的文件组, 如果只有一个可以写一个, 也可以使很多包的地址 noextract: 一个文件组在source中的没有解压缩包的名称 md5sums: 包检验码, md5sums生成md5sums码, 如果不想使用可以复制为SKIP package(): 最终安装函数 prepare(): 准备函数 更多变量解释: archwiki-PKGBUILD pkgdir: makepkg生成的目录默认为根目录. srcdir: 还不清楚. 设置完成后, 在包含该PKGBUILD的目录下, 执行makepkg即可生成archlinux下的包. 使用pacman -U pkgname安装该软件. 参考 How to install Deb package in arch Linux How to convert DEB packages into arch linux packages Archlinux-Creating packages

ArchLinux_Installation

一. Basic Install 制作启动盘 1. 系统启动方式 输入 ls /sys/firmware/efi/efivars 查看系统的启动方式 如果有输出,则为UEFI启动 2. 网络连接 ip link 查看网卡的名称等信息 有线网络 使用 dhcpcd 进行有线网络连接, 和激活无限网络dhcp功能 无线网络 使用 rfkill(Radio Frequency Kill) 检查 wifi 是否被禁用 $ rfkill list 0: phy0: Wireless LAN Soft blocked: yes // yes 为禁用, no 为未禁用(软件禁用) Hard blocked: yes // yes 为禁用, no 为未禁用(硬件禁用) 如果被禁用使用 rfkill unblock wifi 取消禁用 使用 iwctl 进行无线网络连接 iwctl$ help iwctl$ device list iwctl$ station device(name) scan iwctl$ station device(name) get-networks iwctl$ station device(name) connect SSID(name) 使用 ping archlinux.org 检查网络是否可用 3. 设置系统时间 TODO timedatectl set-ntp true 确保时钟正确, 正确则没有输出 To check the service status, use timedatectl status 4. 磁盘分区 磁盘规划 EFI: 100M /: 100G 或者 一整块硬盘(如果是多硬盘的话) /home/{username}/Downloads: 剩下的空间 或 其他整块硬盘 swap: 不设置 swap 分区 分区和格式化 lsblk 查看系统硬盘情况 fdisk /dev/{disk} 用来进行磁盘分区 fdisk$ m # 查看帮助 fdisk$ g # 创建一个 GPT 分区,用来作为 EFI 分区 fdisk$ # ... fdisk$ n # 用来创建其他分区 fdisk$ # ... fdisk$ l # 查看支持的所有分区类型 ef(EFI 分区类型) 83(Linux 分区类型) fdisk$ t # 来更改创建分区的分区类型 fdisk$ # NOTE: 将 GPT 分区改为 EFI 分区类型, 其余分区改为 Linux 分区类型 fdisk$ w # 保存退出 fdisk$ q # 取消修改退出 使用 mkfs.{format} /dev/{disk} 格式化磁盘 mkfs.vfat 格式化 EFI 分区 mkfs.ext4 格式化其他分区 NOTE: 不适用 SWAP 分区 将根目录挂在到 /mnt 目录下, 将 EFI 分区挂载到 /mnt/efi 其余目录挂在到 /mnt/* 目录下 5. 系统下载与安装 FIXME: vim /etc/pacman.d/mirrorlist 设置安装源, 可以先使用国内的源,后面在去掉就行。 Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch 安装系统基本包 pacstrap /mnt base base-devel linux linux-headers linux-firmware man-db man-pages networkmanager vim bash-completion base base-devel linux linux-headers linux-firmware man-db man-pages networkmanager vim bash-completion 6. 生成系统自动挂载分区文件(fstab文件) genfstab -L /mnt >> /mnt/etc/fstab cat /mnt/etc/fstab 检查写入是否正确 7. 将 root 目录由安装镜像系统切换到要安装的系统 arch-chroot /mnt 8. 时间区域设置 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 使用hwclock创建/etc/adjtime hwclock --systohc 9. 系统本地化设计 设置本地语言 vim /etc/locale.gen 找到文件中的 en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8 locale-gen 加载设置的语言项 打开文件 vim /etc/locale.conf 并在里面输入一行 LANG=en_US.UTF-8 设置主机名称 vim /etc/hostname 然后输入自己定义的主机名称(sakura) 设置本机地址 vim /etc/hosts 添加以下内容 127.0.0.1 localhost ::1 localhost 10. 设置 root 密码 passwd root 11. 安装 ucode intel-CPU pacman -S intel-ucode AMD-CPU pacman -S amd-ucode 12. bootloader Arch GRUB wiki pacman -S grub efibootmgr pacman -S os-prober 用来检查 windows 系统, 单系统可以不装 grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB vim /boot/grub/grub.cfg 修改GRUB_CMDLINE_LINUX_DEFAULT 变量中的参数 去掉 quiet log level 由 3 变为 5, 方便排错 加入 nowatchdog 可以加快开机启动速度 grub-mkconfig -o /boot/grub/grub.cfg 基本系统安装完成 exit umount -R /mnt reboot 二. GUI 1. 创建一个普通用户 pacman -S sudo useradd -m -g users -G wheel -s /bin/bash {username} -m 创建用户的home目录 -g 指定初始的用户组 -G 指定扩展的用户组 -s 指定默认的shell 设置密码 passwd {username} 设置vim /etc/sudoers去掉注释%wheel ALL=(ALL) ALL 2. X11 pacman -S xorg xorg-xinit xorg-xrandr Xorg arch wiki xorg is a package group xinit 可以手动的启动 Xorg display server。 xorg-xrandr pacman -S xf86-input-libinput xf86-input-libinput 3. 声卡驱动 alsa-utils 配置复杂 pulseaudio 配置简单 pulseaudio-bluetooth pulseaudio-alsa pipewire 新框架(使用有问题) pipewire-media-session A very simple session manager wireplumber pipewire-pulse pipewire-alsa pipewire-jack 一些前端配置工具 pamixer pulsemixer pavucontrol ...