如何在FreeBSD 10和11上安装端口

时间:2020-01-09 10:41:00  来源:igfitidea点击:

如何使用命令行选项在FreeBSD操作系统中安装端口?

FreeBSD操作系统提供Ports Collection作为安装各种应用程序的简单方法。
每个端口都包含使原始应用程序源代码编译并在基于FreeBSD的系统上运行所需的任何补丁。
在本教程中,"我将提供在FreeBSD 10.x和11.x上安装和管理端口集合的命令"。

如何获取端口集合

使用端口之前,必须首先获取Ports Collection/usr/ports目录。

portsnap命令允许您通过Internet安装端口收集。
要获取集合,请执行:

# portsnap fetch

输出示例:
如何在FreeBSD上获取和安装端口

要将快照解压缩到/usr/ports,请执行:

# portsnap extract

仅第一次执行上述命令。
另一种选择是仅在第一次执行以下内容:

# portsnap fetch extract update

如果您已经有一个填充的/usr/ports并且正在更新,请改为运行以下命令:

# portsnap fetch update

如何在FreeBSD上搜索应用程序或端口?

在安装任何端口之前,您需要了解所需的内容以及应用程序的名称。
如果知道端口的确切名称,则可以使用whereis命令,如下所示:

# whereis apache22
# whereis php5
# whereis php7
# whereis lsof

输出示例:

apache22: /usr/ports/www/apache22

您也可以使用Ports Collections内置的搜索机制。
要使用搜索功能,您将需要位于/usr/ports目录中。
进入该目录后,运行make search name = program-name,其中program-name是要查找的程序的名称。
例如,如果您要查找Apache,请执行:

# cd /usr/ports
# make search name=apache
# make search name=apache | more
# make search name=php7 | grep mysql

输出示例:

Port:	php70-mysqli-7.0.15
Path:	/usr/ports/databases/php70-mysqli
Info:	The mysqli shared extension for php
Port:	php70-pdo_mysql-7.0.15
Path:	/usr/ports/databases/php70-pdo_mysql
Info:	The pdo_mysql shared extension for php
Port:	php71-mysqli-7.1.1
Path:	/usr/ports/databases/php71-mysqli
Info:	The mysqli shared extension for php
Port:	php71-pdo_mysql-7.1.1
Path:	/usr/ports/databases/php71-pdo_mysql
Info:	The pdo_mysql shared extension for php

以下内容将搜索端口名称,注释,描述和相关性,并且如果您不知道要查找的程序的名称,则可用于查找与特定主题相关的端口。

# cd /usr/ports
# make search key=string
# make search key=php5

找出zsh端口的另一个技巧如下:

$ echo /usr/ports/*/*zsh*

输出示例:

/usr/ports/shells/zsh /usr/ports/shells/zsh-navigation-tools /usr/ports/textproc/zsh-syntax-highlighting

psearch

psearch命令在FreeBSD端口中搜索给定的字符串或模式。
您可以按以下方式安装它:

# pkg install psearch

或者

# cd /usr/ports/ports-mgmt/psearch && make install clean

一旦安装了搜索端口,如下所示:

$ psearch {name-here}
$ psearch lsof

输出示例:

sysutils/lsof             Lists information about open files (similar to fstat(1))
sysutils/p5-Unix-Lsof     Unix::Lsof -- a wrapper to the Unix lsof utility

要显示任何匹配项的详细说明,请通过-l选项:

$ psearch -l apache24
www/apache24              Version 2.4.x of Apache web server
    The Apache HTTP Server Project is an effort to develop and maintain an
    open-source HTTP server for various modern desktop and server operating
    systems, such as UNIX and Windows NT. The goal of this project is to
    provide a secure, efficient and extensible server which provides HTTP
    services in sync with the current HTTP standards.
    The 2.x branch of Apache Web Server includes several improvements like
    threading, use of APR, native IPv6 and SSL support, and many more.
 
    WWW: http://httpd.apache.org/

要找出版本,请通过-n选项:

$ psearch -n apache24
`apache24-2.4.25_1 Version 2.4.x of Apache web server`

如何安装名为apache22的端口?

要安装Apache22端口,请执行:

# cd /usr/ports/www/apache22/
# make install clean

如何删除名为apache22的端口?

要删除和除去名为apache22的端口,请执行:

# cd /usr/ports/www/apache22/
# make deinstall

也要删除配置文件:

# make rmconfig

如何更新已安装的端口?

使您的应用程序保持最新非常重要。
您需要使用portmaster。
首先安装它:

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

或者

# pkg install portmaster

好的,更新端口树:

# portsnap fetch update

阅读/usr/ports/UPDATING

在执行任何操作之前,请阅读/usr/ports/UPDATING文件。
它包含可能会影响您的系统的最新信息和解决方法:

# vi /usr/ports/UPDATING

接下来,您应该按类别列出所有已安装的端口,并搜索更新:

# portmaster -L

更好的选择是运行以下命令,以查看已过时且需要尽快升级的已安装端口的列表:

# pkg version -l "<"

或者

# pkg version -vIL=

输出示例:

ca_root_nss-3.26                   <   needs updating (index has 3.28.1)
curl-7.50.3                        <   needs updating (index has 7.52.1_1)
flock-2.19                         <   needs updating (index has 2.29_1)
gettext-runtime-0.19.8.1           <   needs updating (index has 0.19.8.1_1)
indexinfo-0.2.4                    <   needs updating (index has 0.2.6)
mariadb101-client-10.1.20_1        <   needs updating (index has 10.1.21)
mariadb101-server-10.1.20_1        <   needs updating (index has 10.1.21)
python-2.7_2,2                     <   needs updating (index has 2.7_3,2)
python27-2.7.12                    <   needs updating (index has 2.7.13_1)
sudo-1.8.17p1                      <   needs updating (index has 1.8.19p2)

最后,您可以使用portmaster升级所有端口,如下所示:

# portmaster -a

如果要清除distfile,请执行:

# portmaster -ad

您只能升级sudo端口:

# portmaster sudo