FreeBSD的软件包管理工具pkg主要是用来安装预编译好的二进制文件,速度快,但不能定制编译选项。适用于不需要定制编译参数,要求快速安装好软件包的场景。
1. 查看pkg帮助
pkg help
pkg help install
pkg help <command>
2. 在安装新软件之前,建议对所有已安装的软件做个安全检查,看看是否有已知的漏洞。
pkg audit -F #检查所有已安装的软件是否有已知的漏洞
pkg audit axel #查看axel软件包是否有漏洞
3. 查找软件包
请参考https://blog.csdn.net/richardfjf/article/details/107242694
4. 查看软件包信息
1)查看本地已经安装了哪些软件包
pkg info
2)查看某个软件包的信息
pkg info axel #查看axel软件包安装信息
3)查看安装的软件包包含哪些文件
pkg info -l axel
也可以使用pkg list,它是一个pkg指令别名,定义在/usr/local/etc/pkg.conf文件中
pkg list axel #相当于pkg info -ql axel, -q表示quiet
4)查看软件包的port来源
pkg info -o axel #查看axel的port来源
或者使用pkg指令别名pkg origin
pkg origin axel相当于pkg info -qo axel
5)查看软件包大小
pkg info -s axel #查看axel的软件包大小
pkg size axel #指令别名,相当于pkg info -qs axel
5. 安装软件包
pkg install pkgname #会自动安装依赖包
6. 卸载软件包
方法1:
pkg delete pkgname
pkg remove pkgname #这也是执行的pkg delete命令
#此方法同样可以卸载ports安装的软件包
方法2:
cd /usr/ports/sysutils/lsof
make deinstall
#此方法同样可以卸载pkg安装的软件包
7. 自动删除不再使用的软件包
pkg autoremove #自动侦测并移除leaf port包,这些包是因为安装了有依赖关系的软件包而留下的。
pkg set -A 1 devel/cmake #将一个安装好的leaf软件包标记成"自动",这样能被pkg autoremove挑选出来
pkg set -A 0 devel/cmake #标记一个安装好的软件包为"非自动"
#pkg set可以修改已安装软件包的信息
8. 升级软件包
pkg upgrade #将已安装的软件包升级到最新版本
pkg update #更新pkg源目录
pkg update -f #-f代表强制更新整个pkg源目录
9. 查看本地软件包和远程软件仓库的统计信息
pkg stats
10. 下载软件包但不安装
有的时候,只想下载软件包,不需要安装。
pkg fetch pkgname
ls /var/cache/pkg/ |grep pkgname
下载的软件包会放在/var/cache/pkg/目录下。
11. 清空本地pkg缓存旧软件包
pkg clean
pkg clean -ay #清空全部缓存中旧软件包
这将清空/var/cache/pkg/目录下所有文件。
12. 锁定软件包
有的时候,不希望软件包被卸载或者修改。
pkg lock axel #锁定axel软件包
pkg unlock axel #解锁axel软件包
13. 列出系统默认定义的所有pkg指令别名
pkg alias
为了使用方便,FreeBSD默认设置了一些pkg指令别名,定义在/usr/local/etc/pkg.conf文件中,以下是两个已定义的pkg指令别名
pkg prime-list #列出已安装的非依赖软件包(不是因为依赖关系而自动安装的软件包)
pkg prime-origins #列出上述非依赖软件包,同时列出来源port目录