FreeBSD常用命令和packages使用方法讲解
安装 packages
目前 freebsd 的 packages 是由 .tgz 所打包。如果想
安装一个 packages ,可使用 pkg_add,如
安装一个 joe 的 tgz:
pkg_add joe-{version}.tgz
强制
安装 packages
由於有些 packages 会有与其他 packages 相依性的关系,所以必须先行
安装那些 packages 才能正常
安装。 如果须要强制
安装 packages ,可以不须
安装那些有相依性 packages ,但要注意的是强制
安装的结果可能会导致执行或运作的不正常。强制
安装 packages 的指令如下,如强制
安装一个 joe 的 tgz:
pkg_add -f joe-{version}.tgz
查询 packages 与其他 packages 之间的相依性
由於有些 packages 会有与其他 packages 相依性的关系,所以必须先行
安装那些 packages 才能正常
安装。 查询 packages 与其他 packages 之间的相依性的指令如下,如查询与 portupgrade 相依的其他 packages:
pkg_info -r portupgrade-{version}.tgz
远端
安装 packages
有两种设定方式,首先是 packageroot,如:
setenv packageroot #设定 packageroot 为 ftp.cn.freebsd.org 站台另一种方式是设定 packagesite,好处是若该站台的 packages 仓储并不是符合
官方的设定或你想自己指定一个路径。以 ftp.cn.freebsd.org i386 的 current pakcages 为例:
setenv packagesite
ftp://ftp.cn.freebsd.org/pub/freebsd/ports/i386/packages-current/latest/
两种方式选择其中一种皆可,接下来的步骤都一样。 往後要
安装 packages 的时候,如 portupgrade 的话,则:
pkg_add -r portupgrade
则
系统会自动於 ftp.cn.freebsd.org 下载所有与 portupgrade 相依的 packages 并
安装。
查询目前
系统安装了哪些套件
查询目前
系统已
安装的全部套件:
pkg_info
查询目前
系统有没有
安装这个关键字的套件
pkg_info | grep
查询某个档案是属於哪些套件
如果想查询 /usr/local/bin/joe 是属於哪个套件的话,则:
pkg_info -w /usr/local/bin/joe
如果没有回传任何资讯的话,代表着这个档案是由 freebsd 内建的。
查询某个套件
安装了哪些档案
如果想查询目前
系统所
安装的 joe 包含了哪些档案,则:
pkg_info -l /var/db/pkg/joe-{version}
列出所有可以升级的 ports
ports collection 的更新速度很快,在每次更新 ports collections 後,往往会出现比目前现在
安装的套件还新的版本,可 以令
系统自行整理并提供可升级套件的列表:
pkg_version –c
移除已
安装的 ports
以 editors/joe 为例的话,则:
cd /usr/ports/editors/joe/
make deinstall
或是使用 pkg_delete
cd /var/db/pkg/
pkg_delete joe-{version}
有时候套件之间的相依性会导致无法直接移除,如果要强制移除的话,则:
cd /var/db/pkg/
pkg_delete -f joe-{version}但很有可能会导致其它的套件执行起来出现问题。
一并移除所相依的 ports
以 sysutils/portupgrade 为例的话,则:
cd /usr/ports/sysutils/portupgrade/
make deinstall-depends
执行此步骤前,请注意是否会移除应该保护的套件。
或是使用 pkg_delete
cd /var/db/pkg/
pkg_delete -r portupgrade-{version}
对一个已经
安装的 port 打包
如果
安装好一个套软,事前并未打包,事後想打包的话,则:
以 editors/joe 为例的话
cd /var/db/pkg/
pkg_create -b joe-{版本号}
会将已
安装的 port 打包起来,放在 /var/db/pkg/ 目录下。
`make deinstall' 与 `pkg_delete' 有什麽不同
简单来说,`make deinstall' 会移除该 port,并且不会叁照其相依/相关的 ports。 `pkg_delete' 在移除该 port 前,会叁照其相依/相关的 ports,并且 `pkg_delete' 有支援 wild card,如要移除所有 p 开头的 ports,则:
cd /var/db/pkg/
pkg_delete p*
要注意的是,如果使用 `make deinstall',则最好确定
系统目前所
安装的版本,与 ports collection 中显示的版本符合,否则有可能会出现非预期性错误;而 `pkg_delete' 是因为直接删除
系统中所
安装的版本,所以没有此问题。
因此,换句话说,当
系统所
安装的版本符合 ports collections 中的版本,则可以使用 `make deinstall' 或 `pkg_delete',否则的话最好用 `pkg_delete'。
对一个已经
安装的 port 打包
如果
安装好一个套软,事前并未打包,事後想打包的话,则:
以 editors/joe 为例的话
cd /var/db/pkg/
pkg_create -b joe-{版本号}
会将已
安装的 port 打包起来,放在 /var/db/pkg/ 目录下。
如对本文有疑问,
点击进行留言回复!!
相关文章:
-
-
-
-
FreeBSD 远程存取
0. 前言
若以服务器管理而言,我们不能够老是待在主机旁边,必须要有远程访问系统 (telnet 、 ftp) 的需要。 但因为这两个协议并不很安全,所以...
[阅读全文]
-
-
FREEBSD手工配置网络
在FreeBSD系统中,网络能力十分重要,对于一个标准的FreeBSD系统,至少要有一个网络界面以便与其他计算机通信。最常见的网络界面为以太网卡。此外FreeB...
[阅读全文]
-
-
-
删除 FreeBSD 账号
0. 前言 新增了使用者之后,就必须要了解如何删除使用者。
1. 删除账号 请以 root 的身分,执行这个 rmuser 这个命令。
系统询...
[阅读全文]
-
新增 FreeBSD 账号
0. 前言
因为 root 这个账号为系统管理者,所以请尽量养成好习惯。 如非必要请采用其它账号进行工作。 再加上,通常我们都是采用远程登入系统,所以要有...
[阅读全文]
-
网友评论