FreeBSD中的包管理器pkg_add,pkg和ports之间有什么差别?

FreeBSD 有三种安装应用的方式,分别是 Tarball, Packages 和 Ports。Tarball 就是源代码压缩打包文件,Packages 和 Ports 是两种不同的源代码打包文件。

对于 Packages ,FreeBSD 9.0 版本前用的是 pkg 这个包管理工具,对应的是 pkg_* 一组命令,比如 pkg_add, pkg_delete, pkg_version 等等,在 FreeBSD 9.x 的时代,FreeBSD 开发小组借鉴了 Debian 和 RHEL 的经验,开发出了(当时)新一代包管理工具 pkgng(next generation pkg,下一代 pkg),相应的,pkg_* 这组命令变为 pkg 这个总命令,比如 pkg install, pkg delete, pkg version等等。在 FreeBSD 8.4 版本之前,可以通过命令 pkg2ng ,将 pkg_* 转换成 pkg ,但是 pkg_add 转换成的 pkg add 将不再支持(FreeBSD官方声明)。

对于 Ports ,所有 Ports 的集合(collection)叫 Ports Collection,由于它的目录展开形似一棵树,所以又叫作 Ports Tree 。Ports Collection 的管理方式有点特别,在 FreeBSD 中以快照的形式存储,每一小时 FreeBSD 的 Ports 上游就要更新一次,所以用快照管理工具 Portsnap(Ports Snapshot)来管理。用 Ports 安装应用前,需要更新一次 Ports Collection 。首次更新用命令 portsnap fetch extract,以后几次更新用命令 portsnap fetch update(以后几次更新也可以使用 portsnapn fetch extract,但第一次更新必须要使用 portsnap fetch extract )。虽然每一个 Port 本身是源代码打包文件,但是里面没有源代码,有 Makefile 编译文件。用户用 Ports 安装应用,采用命令 make install(需要 root 权限)即可,也可以配合 make clean 来清理安装完成后残留的缓存文件,这两个命令可以合并为 make install clean 。需要注意的是,当用户在每一个port目录中下达安装命令( make install )后,系统会自动下达 9 个命令(分别是 make config, make fetch, make checksum, make extract, make patch, make depends, make configure, make build ),再执行make install,所以一般不需要手动一个个下达这些命令。

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:番茄网 » FreeBSD中的包管理器pkg_add,pkg和ports之间有什么差别?

分享到: 生成海报

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

像番茄一样 表里如一

表里如一表里如一
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活