Linux

Ubuntu Linux 複製舊系統安裝套件至新系統教學

介紹如何將 Ubuntu Linux 舊系統的所有安裝套件列表匯出,並套用至另一台新系統,讓新舊系統安裝完全相同的套件組合。

在安裝新系統、轉移各種伺服器時,通常都要確認新舊系統的開發或執行環境是完全一致的,才不會導致轉移後應用程式出問題,若在 Ubuntu Linux 中,可以使用以下介紹的方法來處理新舊系統套件同步的問題。

原系統匯出套件資訊

apt-mark 指令可以用來管理系統套件的各種設定值,亦可用來將舊系統的套件資訊轉移至新系統中,讓新舊系統的安裝套件狀態完全一致。

首先在原系統中,執行 apt-mark 將所有手動安裝的套件以及自動安裝的相依性套件都列出來,儲存在文字檔案中:

# 列出手動指定安裝的套件(原系統)
apt-mark showmanual > pkgs_manual.lst

# 列出自動安裝的相依套件(原系統)
apt-mark showauto > pkgs_auto.lst

dpkg 列出所有安裝的套件列表:

# 列出所有安裝套件(原系統)
dpkg --get-selections > installed-packages

如果有使用 PPA 安裝套件的話,可以連同金鑰一起轉移(若沒用到 PPA 則可省略):

# 匯出所有金鑰(原系統)
apt-key exportall > repo-keys

新系統安裝套件、同步套件狀態

在新系統中先安裝 dselect 工具:

# 安裝 dselect 工具(新系統)
sudo apt-get install dselect

匯入金鑰(有使用 PPA 的情況才需要):

# 匯入金鑰(新系統)
sudo apt-key add repo-keys

更新可用套件:

# 更新可用套件
sudo apt-cache dumpavail | sudo dpkg --merge-avail

匯入所有套件列表後,自動安裝缺少的套件:

# 設定套件狀態(新系統)
sudo dpkg --set-selections < installed-packages

# 安裝缺少的套件(新系統)
sudo apt-get dselect-upgrade -y

apt-mark 恢復手動安裝套件以及自動安裝的相依性套件的狀態:

# 恢復手動安裝套件狀態(新系統)
sudo apt-mark manual $(cat pkgs_manual.lst)

# 恢復自動安裝的相依套件狀態(新系統)
sudo apt-mark auto $(cat pkgs_auto.lst)

參考資料:Simple IT Rocksask ubuntuGuguweb

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago