在OpenBSD中,更新系统和软件包是非常重要的,因为这样可以确保系统的安全性和稳定性,本文将详细介绍如何在OpenBSD中更新系统和软件包。
1. 更新系统
在OpenBSD中,可以通过以下几种方式来更新系统:
1.1 手动更新
手动更新是最基本的更新方式,可以通过以下步骤进行:
1、打开终端。
2、输入以下命令来查看可用的系统更新:
“`
sudo fw_print fi | grep "<="
“`
3、如果发现有可用的更新,可以使用以下命令进行更新:
“`
sudo fw_up f
“`
4、更新完成后,重启系统以使更改生效:
“`
sudo reboot
“`
1.2 自动更新
OpenBSD支持自动更新,可以通过以下步骤进行设置:
1、打开终端。
2、输入以下命令来编辑/etc/periodic/weekly/00update文件:
“`
sudo nano /etc/periodic/weekly/00update
“`
3、在文件中添加以下内容:
“`
cd /usr.bin && make && make install clean && sync && echo "System updated." > /var/run/update.log
“`
4、保存并退出编辑器。
5、重启periodic服务以使更改生效:
“`
sudo service periodic restart
“`
6、现在,每周都会自动执行一次系统更新。
2. 更新软件包
在OpenBSD中,可以通过以下几种方式来更新软件包:
2.1 使用ports系统
OpenBSD提供了一个名为ports的软件包管理系统,可以通过以下步骤进行软件包更新:
1、打开终端。
2、输入以下命令来查看可用的软件包更新:
“`
sudo portsnap fetch update && sudo portsnap select all world && sudo portsnap refresh a && sudo portsnap selfupdate && sudo portsnap upgrade a && sudo portsnap autoremove a && sudo portmaster RvuNd || true && sudo portsmgmt u all && sudo portsmgmt u sysutils/openssh && sudo portsmgmt u www/nginx && sudo portsmgmt u devel/pypip && sudo portsmgmt u devel/pyvirtualenv && sudo portsmgmt u devel/golang && sudo portsmgmt u devel/rubygemrails && sudo portsmgmt u devel/nodejs && sudo portsmgmt u devel/rust && sudo portsmgmt u devel/luajit && sudo portsmgmt u devel/perlcpanminus && sudo portsmgmt u devel/php72 && sudo portsmgmt u devel/python27 && sudo portsmgmt u devel/python35 && sudo portsmgmt u devel/python36 && sudo portsmgmt u devel/python37 && sudo portsmgmt u devel/python38 && sudo portsnap fetch update && sudo portsnap select all world && sudo portsnap refresh a && sudo portsnap selfupdate && sudo portsnap upgrade a && sudo portsnap autoremove a && sudo portmaster RvuNd || true && sudo portsmgmt u all && sudo portsmgmt u sysutils/openssh && sudo portsmgmt u www/nginx && sudo portsmgmt u devel/pypip && sudo portsmgmt u devel/pyvirtualenv && sudo portsmgmt u devel/golang && sudo portsmgmt u devel/rubygemrails && sudo portsmgmt u devel/nodejs && sudo portsmgmt u devel/rust && sudo portsmgmt u devel/luajit && sudo portsmgmt u devel/perlcpanminus && sudo portsmgmt u devel/php72 && sudo portsmgmt u devel/python27 && sudo portsmgmt u devel/python35 && sudo portsmgmt u devel/python36 && sudo portsmgmt u devel/python37 && sudo portsmgmt u devel/python38
“`
3、根据需要选择要安装的软件包。
4、如果需要安装某个特定的软件包,可以使用以下命令:
“`
sudo portinstall <package_name>
“`
5、如果需要卸载某个特定的软件包,可以使用以下命令:
“`
sudo portrm <package_name>
“`
6、如果需要删除某个特定的软件包及其所有相关文件,可以使用以下命令:
“`
sudo portclean <package_name>
“`
7、如果需要查找某个特定的软件包,可以使用以下命令:
“`
pkg search <package_name>
“`
8、如果需要查看已安装的所有软件包,可以使用以下命令:
“`
pkg info | sort | uniq | grep installed | cut d" " f1,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,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99 | sort | uniq | grep installed | cut d" " f1 | xargs echo "Installed package: {}" | column t | less
“`
9、如果需要查看可用的软件包,可以使用以下命令:
“`
pkg search | sort | uniq | grep available | cut d" " f1 | xargs echo "Available package: {}" | column t | less
“`
10、如果需要查看已安装的软件包的版本信息,可以使用以下命令:
“`
pkg info | sort | uniq | grep installed | cut d" " f1 | xargs echo "Installed package: {} with version: {}" | column t | less
“`
或者使用以下命令:
“`
pkg info <package_name> | grep Version: | cut d" " f2 | tr ‘[:upper:]’ ‘[:lower:]’ | xargs echo "Version of {} is: {}" | column t | less
“`
11、如果需要查看可用的软件包的版本信息,可以使用以下命令:
“`
pkg info <package_name> | grep Version: | cut d" " f2 | tr ‘[:upper:]’ ‘[:lower:]’ | xargs echo "Version of {} is: {}" | column t | less
“`
或者使用以下命令:
“`
pkg info <package_name> | grep Version: | cut d" " f2 | tr ‘[:upper:]’ ‘[:lower:]’ | xargs echo "Version of {} is: {}" | column t | less
“`
2.2 使用opkg工具(仅限FreeBSD)