ArchLinux常用命令介绍
2016年05月03日

AUR安装

  1. 在arch aur上下载包含PKGBUILD文件的包
  2. 检查文件没有恶意代码后,以普通用户运行 makepkg
  3. 以root运行 pacman -U xxx.pkg.tar.xz 安装

查询

pacman -Ss packagename

安装

pacman -S packagename

查询已安装的包

pacman -Qs package

更新软件源

pacman -Syu

添加自启动

systemctl enable servicename

删除服务

systemctrl disable servicename

slim

systemctrl enable slim
echo 'exec startxfce4' > ~/.xinitrc

ifconfig,route在net-tools中,nslookup,dig在dnsutils中,ftp,telnet等在inetutils中,ip命令在iproute2中。

pacman -S net-tools dnsutils inetutils iproute2

virtualbox 显卡

pacman -S xf86-video-vesa

virtualbox 共享模块

pacman -S virtualbox-guest-utils
pacman -S virtualbox-guest-modules

cat /etc/modules-load.d/virtualbox.conf
vboxguest
vboxsf
vboxvideo

vbox共享剪贴板 调整虚拟机窗口缩放

cat ~/.xinitrc
VBoxClient-all &

在fstab里mount 共享目录 reboot

x环境显示中文

  1. /usr/share/fonts 添加中文字体
  2. /etc/locale.gen 设置中文编码
  3. ~/.xinitrc 添加 export LC_ALL=“zh_CN.utf-8” (需要写在 exec startxfce4前边)

fcitx
也是写到~/.xinitrc当中

命令 含义
pacman -Sy 仅同步源
pacman -Syu 同步源,并更新系统
pacman -Su --ignore foo 升级时不升级包foo
pacman -S abc 从本地数据库中得到abc的信息,下载安装abc包
pacman -Sy abc 和源同步后安装名为abc的包
pacman -Sd abc 忽略依赖性问题,安装包abc
pacman -Sf abc 强制安装包abc
pacman -Si abc 从数据库中搜索包abc的信息
pacman -Ss abc 搜索有关abc信息的包
pacman -Sg abc 查询abc这个包组包含的软件包
pacman -Sw abc 下载包而不安装它
pacman -R abc 删除abc包
pacman -Rc abc 删除abc包和依赖abc的包
pacman -Rsn abc 删除包所有不需要的依赖包并删除其配置文件
pacman -Rscn abc 删除abc包所有不需要的依赖包和依赖abd的包并删除其配置文件
pacman -Sc 清理/var/cache/pacman/pkg目录下的旧包
pacman -Scc 清除所有下载的包和数据库
pacman -Q 列出系统中所有的包
pacman -Q package 在本地包数据库搜索(查询)指定软件包
pacman -Qi package 在本地包数据库搜索(查询)指定软件包并列出相关信息
pacman -Qdt 找出孤立包
pacman -Rns $(pacman -Qtdq) 删除孤立软件包(递归的,小心用)
pacman -U abc.pkg.tar.gz 安装下载的abs包,或新编译的本地abc包
pacman-optimize && sync 提高数据库访问速度

Pacman 配置文件/etc/pacman.conf

使用包文件加入一个新的软件包

pacman --add foo.pkg.tar.gz
pacman -A foo.pkg.tar.gz

这将会在系统上安装foo.pkg.tar.gz软件包。如果不能满足依赖关系,pacman会退出并显示错误和报告所缺少的依赖关系,但不会尝试自动解决依赖关系,如果你需要这功能,看看 --sync 选项。

使用包文件升级一个软件包

pacman --upgrade foo.pkg.tar.gz
pacman -U foo.pkg.tar.gz

本质上这和 --add 是一样的,但它会还有升级已安装的软件包而不需要额外的开销。我个人很难想像你会宁愿用 --add 而不是 --upgrade。

如果需要完全卸载一个软件包,在上面的命令里加入 --nosave 选项就可以了。
更新软件包列表

pacman --sync --refresh
pacman -Sy

这将会从 /etc/pacman.conf 内定义的软件库中取得新的主软件包列表以及将它解压添加至数据库域。在使用 --sysupgrade 之前你应该使用它来确保你得到的都是最新的软件包。取决于你 pacman.conf 的设定,这个命令可能需要一个可用的因特网链接来接入基于 FTP 的软件库。它和 Debian 的 apt-get update 命令很相似。

升级系统

pacman --sync --sysupgrade
pacman -Su

这个命令会将本地的软件包版本与通过 --refresh 下载的主软件包列表内的版本对比,然后升级系统内所有过时的软件包。偶而运行这个命令可以让你的系统保持在最新的状态。注意:这个命令并不会更新主软件包列表,所以通常较为聪明的做法是把它们联合在一起:

pacman --sync --refresh --sysupgrade
pacman -Syu

通过这些选项,pacman 将自动取得当前的主软件包列表和进行全面的系统升级,所有的依赖关系将会被自动解决。你将想要经常的运行这个。

从软件库加入/升级一个软件包

pacman --sync foo
pacman -S foo

取得以及安装 foo 并满足它所有的依赖关系。在使用 sync 选项前,确认你已经更新了软件包列表,又或是在安装前加入了 --refresh 或 -y 的选项。不同于 --add,–sync 的安装和升级并没有不同。取决于你 pacman.conf 的设定,这个功能需要可用的因特网链接。
Note: 使用 -S 参数来查询远程同步的数据库。

pacman -S --help

pacman 可以在包数据库中查询软件包,查询位置包含了软件包的名字和描述:

pacman -Ss package

要查询已安装的软件包:

pacman -Qs package

显示软件包的详尽的信息:

pacman -Si package

列出已安装的软件包

pacman --query
pacman -Q

显示系统内所有已安装软件包的列表。

查看指定软件包是否已安装

pacman --query foo
pacman -Q foo 

你可以输入需要查找的名称而不是完整的软件名。如果 foo 已安装,那这个命令将会显示它的名称以及版本。
Note: pacman 使用 -Q 参数查询本地软件包数据库。

显示指定软件包的信息

pacman --query --info foo
pacman -Qi foo

显示已安装软件包 foo 的信息(大小、安装日期、创建日期、依赖关系、冲突等)。显示一个未安装的软件包的信息,可以加入 --file 或是 -p 选项,分别是:

pacman --query --info --file foo.pkg.tar.gz
pacman -Qip foo.pkg.tar.gz

显示软件包所包含的文件列表

pacman --query --list foo
pacman -Ql foo

列出属于 foo 软件包的所有文件。

查找指定文件所属的软件包# pacman --query --owns /path/to/file

pacman -Qo /path/to/file

显示文件通过完整路径作为参数所引用的软件包名称和版本
安装软件包

安装或者升级单个软件包,或者一列软件包(包含依赖包),使用如下命令:

pacman -S package_name1 package_name2

有时候在不同的软件仓库中,一个软件包有多个版本(比如extra和testing)。你可以选择一个来安装:

pacman -S extra/package_name
pacman -S testing/package_name

下载包而不安装它:

pacman -Sw package_name

安装一个本地包(不从源里下载):

pacman -U /path/to/package/package_name-version.pkg.tar.xz

安装一个远程包(不从源里):

pacman -U http://www.example.com/repo/example.pkg.tar.xz

删除软件包

删除单个软件包,保留其全部已经安装的依赖关系

pacman -R package_name
# 或
pacman --remove foo

这会卸载属于 foo 的所有文件,已编辑过的配置文件除外。只需提供包名就可以了,无需使用 tar.gz的后缀。

删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:

pacman -Rs package_name

要删除软件包和所有依赖这个软件包的程序:

pacman -Rsc package_name

注意: 此操作是递归的,请小心检查,可能会一次删除大量的软件包

要删除软件包,但是不删除依赖这个软件包的其他程序:

pacman -Rdd package_name

pacman 删除某些程序时会备份重要配置文件,在其后面加上*.pacsave扩展名。-n 选项可以删除这些文件:

pacman -Rn package_name
pacman -Rsn package_name

注意: Pacman不会删除软件自己创建的文件(例如主目录中的 .dot文件不会被删除。)
升级整个系统

pacman -Syu

提示: pacman 输出会保持到/var/log/pacman.log

  1. 修改/etc/pacman.conf
[archlinuxcn]
#The Chinese Arch Linux communities packages.
SigLevel = Optional TrustedOnly
Server   = http://repo.archlinuxcn.org/$arch
  1. pacman -Syu
  2. pacman -S yaourt
  3. 安装 需要的软件包
yaourt -S package_name

注意是非root权限

或者

curl -O https://aur.archlinux.org/packages/pa/package-query/package-query.tar.gz
tar zxvf package-query.tar.gz
cd package-query
makepkg -si
cd ..
curl -O https://aur.archlinux.org/packages/ya/yaourt/yaourt.tar.gz
tar zxvf yaourt.tar.gz
cd yaourt
makepkg -si
cd ..

如何使用yaourt?

yaourt用起来很简单,而且类似于Pacman的命令,下面是常用的一些命令:

命令 含义
yaourt -S package_name 从AUR安装软件包
yaourt -Ss password 使用关键字搜索软件包
yaourt -Syu –aur 从AUR升级本地软件数据库并安装更新
yaourt -Si package_name 列出软件包信息
yaourt -Sc 从缓存中清楚旧的软件包
yaourt -Su 安装AUR中的更新软件包
yaourt -Sy 获取最新的AUR软件包数据库
yaourt -Cd 清楚AUR软件包数据库
yaourt -R package_name 删除软件包

你可以通过yaourt –help命令获得更多信息。
加速yaourt

都知道pacman能够调用外部下载工具来代替默认的wget来给pacman提速
比如将/etc/pacman.conf

XferCommand = /usr/bin/wget –passive-ftp -c -O %o %u

注释掉,同时添加

XferCommand = /usr/bin/axel -o %o %u

即可使用axel多线程下载工具
而要让yaourt也支持多线程,只需修改/etc/makepkg.conf

将’http::/usr/bin/wget -c -t 3 –waitretry=3 -O %o %u’改成了’http::/usr/bin/axel -o %o %u’

相关链接

其他介绍
http://wiki.51osos.com/wiki/Pacman

Arch Linux 官方wiki pacman 介绍
https://wiki.archlinux.org/index.php/Pacman_(简体中文)

yaourt的安装及使用
https://wiki.archlinux.org/index.php/Yaourt_(简体中文)