通过源代码 ports 方式安装软件
注意
ports 和 pkg 可以同时使用,大部分人也是这么用的。但是要注意 pkg 的源必须是 latest,否则会存在一些依赖上比如 lib 库上的问题。latest 的源也比主线上的 ports 要出来的晚(是从中编译出来的),因此即使是 latset 源也可能会出现上述问题,总之有问题出现时就卸载那个 pkg 安装的包,重新使用 ports 编译即可。
FreeBSD ports 基本用法
首先获取 portsnap
# portsnap fetch extract
使用 whereis 查询软件路径
如 # whereis python
输出 python: /usr/ports/lang/python
如何安装 python3:
# cd /usr/ports/lang/python
# make BATCH=yes clean
其中 BATCH=yes 的意思是使用默认配置
FreeBSD ports 多线程编译(推荐)
Linux 如 gentoo 上一般是直接 -jx
或者 jx+1
, x
为核心数。
FreeBSD ports 多线程编译
FORCE_MAKE_JOBS=yes
MAKE_JOBS_NUMBER=4
写入 /etc/make.conf
没有就新建。
4
是处理器核心数(还是线程数?),不知道就别改。英特尔的处理器搜索 CPU 型号+ARK
转跳英特尔官网可查询线程数。
如何使用多线程下载:
# pkg install axel #下载多线程下载工具#
新建或者编辑 # ee /etc/make.conf
文件,写入以下两行:
FETCH_CMD=axel
FETCH_BEFORE_ARGS= -n 10 -a
FETCH_AFTER_ARGS=
DISABLE_SIZE=yes
进阶
如果不选择 BATCH=yes
的方法手动配置依赖:
看看 python 的 ports 在哪:
# whereis python
# python: /usr/ports/lang/python
安装 python3:
# cd /usr/ports/lang/python
如何设置全部所需的依赖:
# make config-recursive
如何删除当前 port 的配置文件:
# make rmconfig
如何一次性下载所有需要的软件包:
# make BATCH=yes fetch-recursive
升级 ports collection
# portsnap fetch extract
ports 编译的软件也可以转换为 pkg 包
# pkg create nginx
FreeBSD 包升级管理工具
首先更新 Ports 树
# portsnap fetch update
然后列出过时 Ports 组件
# pkg_version -l '<'
下边分别列出 2 种 FreeBSD 手册中提及的升级工具:
一、portupgrade
# cd /usr/ports/ports-mgmt/portupgrade && make install clean
# portupgrade -ai #自动升级所有软件
# portupgrade -R screen #升级单个软件
二、portmaster (推荐)
# cd /usr/ports/ports-mgmt/portmaster && make install clean
# portmaster -ai #自动升级所有软件
# portmaster screen #升级单个软件
# portmaster -a -m "BATCH=yes" #或者-D -G –no-confirm 都可以免除确认
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 软件包管理器 pkg 的用法
下一篇: 彻底找到 Tomcat 启动速度慢的元凶
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论