0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

FreeBSD包管理與系統升級

0
Posted at

包管理與系統升級

FreeBSD同時提供了基於源碼編譯軟件包的Ports系統和基於預編譯二進制包的pkg包管理。

pkg

FreeBSD 10之後引入了新的pkg工具用於管理軟件包,常用指令類似與yum/apt/dnf

# pkg search 軟件包名稱

<!-- 安裝刪除軟件包 -->
# pkg install 軟件包名稱
# pkg remove 軟件包名稱 <!-- 移除指定軟件包 -->
# pkg autoremove 軟件包名稱 <!-- 清理不需要的依賴 -->

<!-- 升級系統已經安裝的所有軟件包 -->
# pkg upgrade

<!-- 查看已安裝的軟件包信息 -->
$ pkg info <!-- 查詢所有已安裝的軟件包 -->
$ pkg info 軟件包名稱 <!-- 查詢某個已安裝軟件包的具體信息(包括軟件包的版本、來源、安裝選項等) -->

<!-- 依賴查詢理 -->
$ pkg info -d 軟件包名稱 <!-- 查詢指定已安裝軟件包的依賴信息 -->
$ pkg all-depends 軟件包名稱 <!-- 查找指定已安裝軟件包的依賴 -->
$ pkg rall-depends 軟件包名稱 <!-- 遞歸查找軟件包的所有依賴 -->
$ pkg required-depends 軟件包名稱 <!-- 查詢指定軟件包被哪些其它包依賴 -->

<!-- 展示手動安裝的軟件包 -->
# pkg prime-list
# pkg prime-origins <!-- 包含軟件包port路徑 -->
# pkg query -e '%a = 0' %o <!-- 直接通過屬性進行查詢 -->

<!-- 修改軟件包安裝原因 -->
# pkg set -A 1 軟件包名稱 <!-- 設置軟件包為自動安裝(可被pkg autoremove清理) -->
# pkg set -A 0 軟件包名稱 <!-- 設置軟件包為手動安裝 -->

Ports

Ports系統提供了官方源內所有軟件包的源碼樹,編譯安裝前能夠定製編譯參數,控制依賴項。
Ports源碼樹位於/usr/ports目錄之,首次使用前需要初始化Ports樹,執行:

# portsnap fetch extract

之後更新Ports樹執行:

# portsnap update

編譯Ports樹下某個軟件包的源碼只需進入對應的源碼目錄中,執行以下步驟:

  1. make config 進入交互式界面,配置編譯依賴
  2. make 執行編譯操作
  3. make install 編譯完成後執行安裝操作
  4. make clean 安裝完成後清理編譯生成的臨時文件

使用源碼編譯的軟件包安裝後同樣受到pkg包管理器的管理。

安裝系統更新

FreeBSD使用freebsd-update獲取和安裝系統補丁:

<!-- 獲取當前版本系統的更新,更新拉取完成後會進入文件變化的預覽介面,使用 q 鍵退出預覽 -->
# freebsd-update fetch

<!-- 安裝系統更新 -->
# freebsd-update install

FreeBSD常規系統更新僅接收當前版本號內的補丁性質更新,
普通系統更新不會改變主版本號以及副版本號。

系統版本升級

FreeBSD並非滾動發行版,系統有明確的版本劃分,
升級系統版本同樣使用更新工具freebsd-update

升級系統到指定版本,執行指令:

# freebsd-update -r 目標系統版本 upgrade

當前支持的系統列表可從FreeBSD官網查詢。

FreeBSD 10.1正式版為例,執行指令:

# freebsd-update upgrade -r 10.1-RELEASE

之後系統會開始下載升級所需要的補丁,下載完成之後,執行更新指令:

# freebsd-update install

系統版本升級後pkg工具不可使用

問題說明:

系統版本升級後,FreeBSD的包管理器pkg可能會出現動態鏈接庫缺失的問題,錯誤信息如下:

ld-elf.so.1: Shared object "libssl.so.111" not found, required by "pkg"

相關討論參考FreeBSD Forums

解決方案:

FreeBSD提供了pkg工具的靜態編譯版本pkg-static,可使用該工具重新安裝pkg:

# pkg-static install -f pkg
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?