介绍
FreeBSD的二进制包管理器,PKG,可以用来轻松管理安装的预编译的应用程序,在FreeBSD相当于Debian和RPM软件包。 当在FreeBSD安装软件的其他流行的方法,编制与端口采集端口 ,使用包提供了一个在很多情况下工作更简单,更快的替代方案进行比较。 包,然而,并不像端口,因为安装包不能自定义,如果你有需要自定义软件安装的编译选项,使用灵活的端口 ,而不是包。
在本教程中,我们将向您展示如何在FreeBSD 10.1上管理软件包。 这包括安装和删除软件包以及其他相关任务。
先决条件
要使用本教程中的命令,你必须有在FreeBSD服务器root访问权限。 也就是说,您必须能够以root身份或通过sudo命令具有超级用户权限的其他用户身份登录到服务器。 如果您在使用根计划,你可以省略sudo
例子命令的一部分。
如何使用Pkg安装新软件包
如果你知道你要安装的软件包的名称,你可以通过使用安装它pkg
这样的命令:
sudo pkg install package_name
您还可以指定要安装的多个包,以空格分隔,如下所示:
sudo pkg install package1 package2 ...
作为一个例子,让我们安装Nginx的,一个流行的Web服务器,具有pkg
:
sudo pkg install nginx
运行此命令将启动您指定的软件包的安装。 首先,您的系统将检查包存储库目录更新。 如果已经完全更新,则搜索指定的包。 如果找到包,将列出包依赖的包和包。 随后将显示确认提示。
在这种情况下,只有nginx
包将被安装。 响应与提示y
确认:
New packages to be INSTALLED:
nginx: 1.6.2_1,2
The process will require 654 KB more space.
244 KB to be downloaded.
Proceed with this action? [y/N]: y
确认包装安装后,将列出的包装下载并安装在系统上。 某些软件包将显示重要的安装后信息或有关应用程序使用的说明,安装后 - 请务必遵循任何安装后注意事项。
如果您使用的是默认的shell, tcsh
,还是csh
,您应该重建在二进制文件的列表PATH
用以下命令:
rehash
同样重要的是要注意,那些服务不自动启动,也不是启用作为一种服务,在安装后的应用程序。 让我们来看看如何运行服务。
如何运行服务
在FreeBSD上,已安装使用包服务提供服务初始化脚本/usr/local/etc/rc.d
。 在Nginx的,它作为服务运行的例子情况下,启动脚本被称为nginx
。 请注意,在运行命令时,您应该替换相应的服务脚本名称,而不是突出显示的“nginx”。
为了证明如果尝试启动未启用的服务会发生什么情况,请尝试使用service
命令来安装它后立即启动软件:
sudo service nginx start
该服务将无法启动,您将遇到类似以下内容的消息:
Cannot 'start' nginx. Set nginx_enable to YES in /etc/rc.conf or use 'onestart' instead of 'start'.
要启用该服务,按照邮件中的指示,并添加以下行/etc/rc.conf
:
nginx_enable="YES"
您既可以打开/etc/rc.conf
在编辑器中,并添加行,或使用sysrc
实用程序更新这样的文件:
sudo sysrc nginx_enable=yes
现在服务已启用。 这将启动您的系统启动时,您可以使用start
被以前尝试的子命令:
sudo service nginx start
如果你想一次运行该服务,而不启用它,你可以使用onestart
子命令。 以这种方式启动服务将立即运行启动脚本,但不会在系统引导时启动。 现在就试试:
sudo service nginx onestart
使用onestart
子命令,如果你想使他们之前测试你的服务的配置是非常有用的。
如何使用Pkg查看软件包信息
要查看有关安装软件包的信息,您可以使用pkg info
的命令,如下所示:
pkg info package_name
这将打印关于指定包的各种信息,包括软件的描述,编译的选项,以及它所依赖的库的列表。
如何使用Pkg升级已安装的软件包
您可以使用此命令安装系统安装的软件包的最新可用版本:
sudo pkg upgrade
运行此命令将会将已安装的软件包与存储库目录中的版本进行比较,并打印可以更新到较新版本的软件包列表:
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
Checking for upgrades (2 candidates): 100%
Processing candidates (2 candidates): 100%
The following 2 packages will be affected (of 0 checked):
Installed packages to be UPGRADED:
python27: 2.7.8_6 -> 2.7.9
perl5: 5.18.4_10 -> 5.18.4_11
The process will require 2 MB more space.
23 MB to be downloaded.
Proceed with this action? [y/N]: y
与响应y
的提示进行升级列出的软件包。
如何使用Pkg删除软件包
如果你知道你要删除的软件包的名称,你可以使用它删除pkg
这样的命令:
sudo pkg delete package_name
您还可以指定要删除的多个包,以空格分隔,如下所示:
sudo pkg delete package1 package2 ...
让我们删除我们之前安装的Nginx软件包:
sudo pkg delete nginx
您将看到类似以下内容的消息,并显示确认提示:
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):
Installed packages to be REMOVED:
nginx-1.6.2_1,2
The operation will free 654 KB.
Proceed with deinstalling packages? [y/N]: y
响应提示与y
确认包删除操作。
如何删除未使用的依赖关系
如果删除安装依赖关系的软件包,则仍将安装依赖关系。 要删除任何已安装软件包不再需要的软件包,请运行以下命令:
sudo pkg autoremove
将打印将要删除的包列表,然后显示提示。 回应y
如果要删除列出的软件包确认提示。
如何使用Pkg查找包
要查找存储库中的可用二进制包,使用pkg search
命令。
按包名称
最基本的搜索方式是通过程序包名称。 如果要搜索程序包名称,请使用如下命令:
pkg search package_name
例如,要搜索名称中包含“nginx”的软件包,请使用以下命令:
pkg search nginx
这将打印包的列表,包括版本号,名称中包含“nginx”:
nginx-1.6.2_1,2
nginx-devel-1.7.8
p5-Nginx-ReadBody-0.07_1
p5-Nginx-Simple-0.07_1
p5-Test-Nginx-0.24
如果您想了解上市程序包的详细包信息,请使用-f
这样的选项:
pkg search -f package_name
这将打印与指定的包名称匹配的每个包的包信息。
按说明
如果你不知道你要安装的软件包的名称,你也可以通过指定的搜索是在仓库中可用的软件包的描述-D
选项。 默认情况下,模式匹配不区分大小写:
pkg search -D pattern
例如,要在描述中搜索“java”的所有包,请使用如下命令:
pkg search -D java
这将在说明字段中打印具有指定模式的所有可用软件包的名称以及说明。
如何了解有关使用Pkg的更多信息
Pkg是一个非常灵活的实用程序,可以在本教程未涵盖的许多方面使用。 幸运的是,它提供了一个简单的方法来查找哪些选项和子命令可用,以及它们做什么。
要打印可用的选项和子命令,请使用以下命令:
pkg help
要阅读各种子命令手册页,使用pkg help
,并指定你想了解,像这样的命令:
pkg help subcommand
例如,如果您想了解更多关于使用pkg search
,输入以下命令:
pkg help search
这将拉动手册页,详细说明了如何使用pkg search
。
结论
你现在应该足够了解使用pkg
到您的FreeBSD服务器上管理二进制软件包。
如果您想了解更多关于你的FreeBSD服务器上的管理软件时,一定要与本教程上的端口读了: 如何安装和FreeBSD的10.1管理端口 。