FreeBSD更新ports库

来自艾毕思知识库
跳转至: 导航搜索

FreeBSD官方建议为了更好的保护系统和应用的安全,应该持续维护升级当前系统。

我们建议,如果没有特殊的版本要求,在通过ports安装应用程序前请按本文内容更新ports库

ports是FreeBSD最常见的发行、安装应用软件的途径,通过portsnap可以使ports库升级到当前的最新版本,达到更好的保护系统安全和应用稳定的目的。

首次使用portsnap

下载ports库

# portsnap fetch

ports库的压缩包将会下载到/var/db/portsnap目录。

解压ports库

# portsnap extract

ports库压缩文件将解压到/usr/ports目录。

更新ports库

完成首次下载解压后,在后续的例行或需要更新ports库时,我们只需要执行

# portsnap fetch update

就可以更新/usr/ports目录的内容,而不需要再次下载压缩包解压

更新已安装应用软件

更新已安装软件需要两个步骤:

列出可更新ports

如果你的系统是10及以上版本,或者已经转换到pkg管理时:

# pkg version -l "<"

如果你的系统是9.x及以下版本时:

# pkg_version -l "<"

输出类似:

mysql-client                        <
mysql-server                        <
pcre                                <
perl                                <

⚠ pkg的输出会带有当前版本号

确认更新信息

更新前请仔细阅读/usr/ports/UPDATING文件,确认具体的更新问题和在更新具体port时可能需要的附加操作,如果存在需要在更新后修改的配置文件等与前版本不兼容的地方也会在本文件中说明;更新前请对照查阅确认。

用Portmaster更新ports

如果之前没有安装portmaster,需要先安装该软件:

# cd /usr/ports/ports-mgmt/portmaster
# make install clean

成功后,可查看当前安装的软件列表和可更新的软件列表(同上一章中的pkg version功能)

# portmaster -L

再次确认后可使用

# portmaster -a

更新所有需要更新的ports;如果安装过程中出现失败,可选择根据可用的错误提示对应修改/etc/make.conf中的配置内容再试,或者使用

# portmaster -af

重试。


如果只需要对指定的软件进行更新,可以使用

# portmaster 软件包名

来实现,比如

# portmaster wget

执行后会有相关升级版本和依赖信息的提示,确认后将只对wget及其依赖软件包升级。

在一些时候使用portmaster升级软件可能会失败,比如pkg信息不一致等,这个时候你也可以参考使用手工方式升级现有软件

始终保持系统在最新的状态是一个好的系统管理习惯。