APT-ADD 介紹簡報 (in Karmic Ubuntu Party):
APT-ADD 快速導引 (0.5.x 適用):
碎碎唸:因為家裡的一些關係,如果真的那麼倒楣的話,那這次部落格更新應該是到明年五月前的最後一次更新了 ^^"。
apt-add 是一個在使用 apt 系統下,可以簡單並懶惰的加入安裝第三方軟體所需的「來源列」以及「金鑰」的 Python 腳本。除了加入/刪除以外,apt-add 在 0.5 版中也支持備份在系統中所有套件的功能,方便在發生問題的時候即刻還原 XD!請按這裡下載最新版!
一般要安裝由第三方來源所提供的軟體時,以 Ubuntu 的 GUI 來說,必須從「系統/軟體來源」進行繁複的增加來源列或金鑰的動作,只有一些的時候還不算太麻煩。但如果要同時增加很多的來源列及金鑰,增加來源列或金鑰就是一場惡夢了 XD。 (比方說拿到別人的來源列表,不想動到原有來源列的時候。) 以 CLI 來說,如果不含別名的使用,增加來源列或金鑰則需要下面的指令:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 12345678 ABCDEF12 ... #金鑰
echo 'deb http://a.source.line version section' >> /etc/apt/sources.list #來源列
以上的指令都非常的「長」,打起來很累人。雖然說比 GUI 愉快很多,但量多的時候也是很痛苦的一件事情。apt-add 就是為了讓增加第三方來源變得輕鬆愉快而存在的 XD。
apt-add 模仿了 apt-* 的指令,執行時通常需要一個副命令 (副命令其實也是可以捨去的,詳請見後面說明。),目前支援的副命令如下:
- key: 以金鑰 ids (8 hex)、long ids (16 hex)、finger prints (40 hex) 從金鑰伺服器匯入金鑰。
- source: 以標準的來源列格式匯入來源列,
- action: 以標準的 aptitude 安裝/移除/清除命令當作參數,除了更動軟體以外,會在列表中紀錄註記,方便日後還原。([package][+-_],+ 安裝、- 移除、_徹底移除。) (0.3 以上)
- import: 將 apt-add 可解析的備份副本匯入 (一般的 sources.list 即可,金鑰可用註解方式寫入)。
- export: 匯出 apt-add 可解析的來源列與金鑰的備份副本。
- seek:以一個或多個正規式搜尋所有來源列表。(0.5 以上)
- replace: 將來源列表中的某個值取代成為另一個值。(0.5 以上)
- backup: 匯出系統中的套件列表。(0.5 以上)
- recover: 將系統還原回套件列表記載的狀態。(0.5 以上)
基礎用法介紹:
sudo apt-add key 12345678 ABCDEF12 ...
sudo apt-add source 'deb http://a.source.line version section' ...
sudo apt-add action p7zip-full+ audacious+ pitivi+ [package][+-_] ...
sudo apt-add import backup1.list backup2.list ...
sudo apt-add export a-backup.list #同時僅能匯出至一個檔案
sudo apt-add seek openoffice
sudo apt-add replace jaunty karmic
sudo apt-add backup packages.list
sudo apt-add recover packages.list
當然,為了讓大家可以更方便的使用,在不輸入副命令的情況,其實 apt-add 也是可以運作的。在不使用副命令的情況,apt-add 會看參數資料自動將參數歸類為 key 、 source 或 action!比方說:
sudo apt-add 12345678 'deb http://a.source.line version section' p7zip-full+ ABCDEF12 ...
除了這樣,有時候提供來源列或金鑰的網站不是那麼的友善,要複製到恰好的金鑰 id/long id/fp 不是那麼的容易。為此,apt-add 也可以接受模糊的參數,只要一個參數裡面有含可供輸入的資料就行了。apt-add 會利用內建的正規式條件過濾出正確的資料,比方說:
sudo apt-add 'here is the key of software:1024R/12345678. and here is ...'
在 0.3 以後,apt-add 的來源列表管理功能也進化了一級,除了 0.2.4 以後提供的註解解除和加上的功能以外,也提供了 -d 的執行選項,讓您可以移除來源列、金鑰或動作註記。比方說:
sudo apt-add 'here is the key of software:1024R/12345678. ...' -d
在 0.5 以後,更提供了 seek、replace 這兩個副命令來讓管理眾多的來源列表更加容易。
sudo apt-add seek openoffice #搜尋含有 openoffice 這個關鍵字的來源列
sudo apt-add replace jaunty karmic #將給 9.04 使用的來源列轉換成 9.10 也可以用的來源列
最後 apt-add 提供了幾個方便的執行選項可以讓大家在使用時更加方便,-f (--fix) 、-u (--update)、-g (--upgrade)。-f 是啟動修復遺失金鑰的執行選項。啟用後,apt-add 會自動搜索套件庫內沒有金鑰的來源列,並自動完成加入的動作。-u 則是方便使用者不需要再多打指令即可安裝。下完 apt-add 之後就自動更新套件庫,接著就可安裝需要的軟體。-g 是因為 apt-get 要打兩行才能升級系統,真的非常麻煩而生的懶惰選項 XDD。以下是範例:
sudo apt-add -f
sudo apt-add 'deb http://a.source.line version section' -u
sudo apt-add -ug #更新之後升級系統
sudo apt-add 'deb http://a.source.line version section' -ug #增加來源列後更新並升級系統
從 -f 可以衍生出一個更懶惰的功能,就是在增加來源列時,後面加上 -f,這樣就不用另外再添加金鑰,apt-add 自動搞定 XD (不過這樣會跑的比較慢)。比方說:
sudo apt-add 'deb http://a.source.line version section' -fu
在 0.5 以上如果覺得每次還要加 -f 或 -u 是一件很麻煩的事情,apt-add 也提供了 --auto-add-keys 和 --auto-update 的執行選項。啟動了自動增加金鑰的選項後,如果你給了來源列卻沒有給金鑰,apt-add 就會自動判斷是不是應該要新增金鑰。啟動了自動更新的執行選項後,有來源列和動作註記或更新時,apt-add 就會自動進行套件庫的更新。
上面介紹的執行選項很多,如果常常要用,每次都要打也很煩。所以 apt-add 提供了以靜態的方式載入執行選項。只要編輯 ~/apt-add.conf 這個檔案,把它當作 apt-add 的參數列來寫就行了,apt-add 會把換行字元視作一個空白。
另外還有一些其他功能,請參考 apt-add --help 來獲得更多資訊 : )。
網誌上有另一帖是給剛使用 apt-add 的朋友有可以快速使用的範例,請點選這裡進入。
未來的 APT-ADD (After 0.6):
- 0.6 or later 寫出 apt-add 的 GUI! (尚未展開)
0.5.3 Change Log (091103):
- 增加了更詳細的副命令說明。
- 使用 -g 選項,即使沒有啟動 --auto-update,apt-add 仍會自動更新的問題。
- 修正了一些其他瑕疵。
- -p 過濾器只會影響到使用者輸入的內容。
0.5.3 Download:
0.5.2 Change Log (091027):
- 修正了使用 -e 執行選項會發生錯誤的問題。
- 修正了第一次建立靜態執行選項儲存檔案時會發生錯誤的問題。
0.5.2 Download:
0.5.1 Change Log (091017):
- 修正了當沒有參數傳入時會顯示的錯誤訊息。
- 修正了取代 (replace) 功能的錯誤。
0.5.1 Download:
0.5 Change Log (091017):
- 增加副命令 seek、replace、backup 及 recover。
- 增加執行選項 --auto-add-keys、--auto-update、-c (--convert-codename)。
- 修改了一些執行選項的名字。
- 修改了靜態選項的解析方式。現在不強制一行一個選項,而是將換行字元視作空白處理。
- 修正了在 sourceparse.py 中一個解析 action 的 bug。
0.5 Download:
0.4 Change Log (091003):
- 增加 -p (--path-filter) 執行選項,可以從資料夾中過濾出你想要得檔案。使用正規式當作參數,例如 '.*' 代表符合所有字串。
- 無法使用 <source line> -f 懶惰新增來源列的問題已經排除了。
0.3.1 to 0.4 的其他變動:
- 增加 -m (--from) 及 -t (--to) 執行選項,可以將所有列表的某字串 <-m> 取代為另一個字串 <-t>。
- 增加 -b (--to-backup) 執行選項,可以指定複數列表進行匯出,以 ',' 隔開。
- 使用新的底層結構,大幅提昇核對來源列的速度。
- 暫時移除 -a (--adv-arg-parser) 執行選項。
- 修復一些不影響功能的 bug。
0.4 Download:
0.4 beta Change Log (090927):
- 增加 -m (--from) 及 -t (--to) 執行選項,可以將所有列表的某字串 <-m> 取代為另一個字串 <-t>。
- 增加 -b (--to-backup) 執行選項,可以指定複數列表進行匯出,以 ',' 隔開。
- 使用新的底層結構,大幅提昇核對來源列的速度。
- 暫時移除 -a (--adv-arg-parser) 執行選項。
- 修復一些不影響功能的 bug。
0.4 beta Download:
0.3.1 Change Log (090909):
- 修復當 action 套件含有 . 時會無法正確解析的錯誤。
- 提供 python2.5 上執行的版本,仍為 alpha,如有任何問題還請回報。
0.3.1 Download:
- 「apt-add 0.3.1」- Dropbox 下載
- 檔案名稱:apt-add_0.3.1_all.deb (deb 包裹)
- 檔案大小:11.4 KB
- 檔案MD5:3106075cd2d4b0475533bbed882680be
0.3.1 lite Download:
- 「apt-add 0.3.1 lite」- Dropbox 下載
- 檔案名稱:apt-add_0.3.1~lite_all.deb (deb 包裹)
- 檔案大小:8.5 KB
- 檔案MD5:7d84ae2e74401ab0175e7cfdb47bc51f
0.3.1 python2.5 Download:
- 「apt-add 0.3.1 python2.5」- Dropbox 下載
- 檔案名稱:apt-add_0.3.1~python2.5~alpha_all.deb (deb 包裹)
- 檔案大小:11.4 KB
- 檔案MD5:26265a6596f2e2a07660c3dec74913a3
0.3 Change Log (090831):
- 改了版號 (爆),0.3 = 0.3 beta。
0.2.4-1 to 0.3 的所有更動:
- 新增 action 副命令,可以在列表中寫入安裝軟體的註記,以便未來快速重建軟體環境!
- 新增 -r, --record-only 執行選項,僅將動作註記寫檔案,不執行動作註記。
- 新增 -a, --adv-arg-parser 執行選項,使用極度模糊的解析器。(來源列不用加引號!)
- 新增 -d, --delete 執行選項,可以移除您輸入的來源、金鑰或動作註記。
- 新增 -g, --upgrade 執行選項,執行更新命令。
- 新增 --upgrade-cmd 執行選項,可以自訂升級命令。
- 執行選項解析器改為使用 optparse 模組,讓執行選項的使用方法標準化。
- 錯誤訊息群組化,讓顯示的結果更簡潔。
- 恢復支援自訂來源列表、列表資料夾、寫入用列表。
- 使用 -q 時,完全不顯示任何訊息。
- --help 原有的版本訊息換成使用 --version 觀看。
- 改由提供 deb 安裝包裹。
- 提供不包含中文支援的 lite 版本。
- 修復靜態執行選項 (~/.apt-add.conf) 無法正確解析的問題。
- 增加 --action-cmd 執行選項,可以自訂安裝指令。
- 增加 --dont-record 執行選項,可以不紀錄傳入的動作註記。
0.3 Download:
- 「apt-add 0.3」- Dropbox 下載
- 檔案名稱:apt-add_0.3_all.deb (deb 包裹)
- 檔案大小:11.4 KB
- 檔案MD5:ace94f62792964cea0e3525c2c885eec
0.3 lite Download:
- 「apt-add 0.3 lite」- Dropbox 下載
- 檔案名稱:apt-add_0.3~lite_all.deb (deb 包裹)
- 檔案大小:8.5 KB
- 檔案MD5:ca3eb7c939d7e627422f8b2d0d5893e1
0.3 beta Change Log (090830):
- 修復靜態執行選項 (~/.apt-add.conf) 無法正確解析的問題。
- 增加 --action-cmd 執行選項,可以自訂安裝指令。
- 增加 --dont-record 執行選項,可以不紀錄傳入的動作註記。
0.3 beta Download:
- (測試版結束測試後恕不提供下載。)
0.3 beta lite Download:
- (測試版結束測試後恕不提供下載。)
0.3 alpha3 Change Log (090830):
- 新增 action 副命令,可以在列表中寫入安裝軟體的註記,以便未來快速重建軟體環境!
- 新增 -r, --record-only 執行選項,僅將動作註記寫檔案,不執行動作註記。
- 新增 -a, --adv-arg-parser 執行選項,使用極度模糊的解析器。(來源列不用加引號!)
- 新增 -d, --delete 執行選項,可以移除您輸入的來源、金鑰或動作註記。
- 新增 -g, --upgrade 執行選項,執行更新命令。
- 新增 --upgrade-cmd 執行選項,可以自訂升級命令。
- 執行選項解析器改為使用 optparse 模組,讓執行選項的使用方法標準化。
- 錯誤訊息群組化,讓顯示的結果更簡潔。
- 恢復支援自訂來源列表、列表資料夾、寫入用列表。
- 使用 -q 時,完全不顯示任何訊息。
- --help 原有的版本訊息換成使用 --version 觀看。
- 改由提供 deb 安裝包裹。
- 提供不包含中文支援的 lite 版本。
0.3 alpha3 Download:
- (測試版結束測試後恕不提供下載。)
0.3 alpha3 lite Download:
- (測試版結束測試後恕不提供下載。)
0.2.4-1 Change Log (090814):
- 修復不會自動建立 apt-add.list 的問題。
- 翻譯檔部份文句修正。
0.2.4-1 Download:
- 「apt-add 0.2.4-1」- MediaFire 下載
- 檔案名稱:apt-add-0.2.4-1-installer.tar.bz2 (tar 封裝,bz2 壓縮檔)
- 檔案大小:壓縮包 11.2 KB,解壓縮後 61.8 KB
- 檔案MD5:b7dc4abec3d2a734f0648cfe3b9a584a
0.2.4 Change Log (090813):
- 由原本 Python 辭典的方式,改為使用 gettext 實現多國文字訊息。
- 解析檔案的底層替換為重新編寫過的 source parse,以及副函數庫 path ext。
- 流程控制、新增金鑰、新增來源列及匯出匯入等功能重新建構。
- 在偵測到來源以含相同來源列,僅被註解時,可以自動解除註解。
- 可以使用 ~/.apt-add.conf 來自訂靜態執行選項。
- 將程式訊息修改的更人性化一些。
- 將可能造成 apt 錯誤,以及累贅的執行選項取消。
0.2.4 Download:
- 「apt-add 0.2.4」- MediaFire 下載
- 檔案名稱:apt-add-0.2.4-installer.tar.bz2 (tar 封裝,bz2 壓縮檔)
- 檔案大小:壓縮包 11.0 KB,解壓縮後 59.8 KB
- 檔案MD5:4b45d9eaa3dd95d84b38d437b8ff01e1
0.2.3 Change Log (090801):
- 修正 -fu 同時使用不會自動更新的問題。
0.2.3 Download:
- 「apt-add 0.2.3」- MediaFire 下載
- 檔案名稱:apt-add-0.2.3-installer.tar.bz2 (tar 封裝,bz2 壓縮檔)
- 檔案大小:壓縮包 7.3 KB,解壓縮後 21.3 KB
- 檔案MD5:d4b4db1d88783e791895f8c4b408b337
0.2.2 Change Log (090717):
- 主要流程重新設計,-f 可以在更新完來源列後補上遺失金鑰。
- 加入金鑰顯示錯誤時,不會將空白去除。
0.2.2 Download:
- 「apt-add 0.2.2」- MediaFire 下載
- 檔案名稱:apt-add-0.2.2-installer.tar.bz2 (tar 封裝,bz2 壓縮檔)
- 檔案大小:壓縮包 7.3 KB,解壓縮後 21.3 KB
- 檔案MD5:c23f3e2c829a6882c5f6a7446e07fd7a
0.2.1 Change Log (090715):
- 修正來源列檢查機制,允許較長來源列,及允許來源列附帶註解。
- 增加中文訊息版本及英文安裝腳本。
- 增強了來源列的過濾機制。
- 新增副命令 import,可以從多個檔案匯入金鑰指紋及來源列。
- 新增副命令 export,可以將套件庫內的金鑰指紋和來源列匯出。
- 副命令 (key | source) 可以搭配 -i= 可以從檔案匯入特定資訊。
- 使用 -e= 可以在資料新增完畢後再做匯出的動作。
- 使用 -c 可以關閉 apt-add 的資料過濾器,輸入/出什麼就寫進/入什麼。
- 增加來源列重複檢查機制,可以利用 -c 關閉。
- 新增訊息快取功能,可以讓顯示的資料精簡些,可以使用 -d 顯示詳細訊息。
- 預設關閉一些不重要的訊息,可以透過 -v 顯示所有的訊息。
0.2.1 Download:
- 「apt-add 0.2.1」- MediaFire 下載
- 檔案名稱:apt-add-0.2.1-installer.tar.lzma (tar 封裝,lzma 壓縮檔)
- 檔案大小:壓縮包 6.8 KB,解壓縮後 21.2 KB
- 檔案MD5:89a92d3afa8edd36034b4e48714c8a20
- 「apt-add 0.2.1」- MediaFire 下載
- 檔案名稱:apt-add-0.2.1-installer.tar.bz2 (tar 封裝,bz2 壓縮檔)
- 檔案大小:壓縮包 7.2 KB,解壓縮後 21.2 KB
- 檔案MD5:2953c058e71f56e08daf150c89a5926d
0.2 Change Log (090713):
- 可以從包含金鑰指紋的字串中擷取出金鑰。
- 不下副命令 (key | source) 的情況下,會自動分析參數,並呼叫對應功能。
- 寫入來源列時,會在註解顯示詳細加入時間。
- 更改預設來源列的寫入檔案為: /etc/apt/sources.list.d/apt-add.list。
- 增加了許多執行選項,可以用 -h 看到詳細資訊。
- 使用 -u 執行選項來決定是否在程式執行完畢後更新套件庫。
- 使用 -f 執行選項可以自動修補套件庫遺失的金鑰。
- 使用 -q 執行選項可以以靜音模式執行。
- 使用 -k= 可以設定金鑰伺服器參數,預設 keyserver.ubuntu.com。
- 使用 -a= 可以設定要寫入的 apt 來源列表檔案,
預設 /etc/apt/sources.list.d/apt-add.list。
0.2 Download:
- 「apt-add 0.2」- MediaFire 下載
- 檔案名稱:apt-add-0.2-installer.tar.lzma (tar 封裝,lzma 壓縮檔)
- 檔案大小:壓縮包 3.9 KB,解壓縮後 9.6 KB
- 檔案MD5:6b82977f312b2817de9c2ce01b891d43
- 「apt-add 0.2」- MediaFire 下載
- 檔案名稱:apt-add-0.2-installer.tar.bz2 (tar 封裝,bz2 壓縮檔)
- 檔案大小:壓縮包 4.2 KB,解壓縮後 9.6 KB
- 檔案MD5:47515348090925352d697cde9f9343d2
0.1.2 Change Log (090711):
- 修正不允許 16 位金鑰指紋的錯誤。
0.1.2 Download:
- 「apt-add 0.1.2」- MediaFire 下載
- 檔案名稱:apt-add-0.1.2-installer.tar.lzma (tar 封裝,lzma 壓縮檔)
- 檔案大小:壓縮包 1.9 KB,解壓縮後 3.9 KB
- 檔案MD5:eaef3cad84a7c293b16ae1f17db23f94
- 「apt-add 0.1.2」- MediaFire 下載
- 檔案名稱:apt-add-0.1.2-installer.tar.bz2 (tar 封裝,bz2 壓縮檔)
- 檔案大小:壓縮包 2.1 KB,解壓縮後 3.9 KB
- 檔案MD5:e65e05fc903cfda3a6cf14b7337b1653
0.1.1 Change Log (090710):
- 允許 0x12345678 這種格式的金鑰指紋。
- 不輸入副命令時會顯示 apt-add 的版本。
0.1.1 Download:
- 「apt-add 0.1.1」- MediaFire 下載
- 檔案名稱:apt-add-0.1.1-installer.tar.lzma (tar 封裝,lzma 壓縮檔)
- 檔案大小:壓縮包 1.8 KB,解壓縮後 3.8 KB
- 檔案MD5:0b138f72529ecae98b35ef2d98b9eb31
- 「apt-add 0.1.1」- MediaFire 下載
- 檔案名稱:apt-add-0.1.1-installer.tar.bz2 (tar 封裝,bz2 壓縮檔)
- 檔案大小:壓縮包 2.1 KB,解壓縮後 3.8 KB
- 檔案MD5:fbcdf92a4f49f121dfd141d69afeceef
0.1 Download (090709):
- 「apt-add-installer 0.1」- MediaFire 下載
- 檔案名稱:apt-add-installer.tar.lzma (tar 封裝,lzma 壓縮檔)
- 檔案大小:壓縮包 1.8 KB,解壓縮後 3.8 KB
- 檔案MD5:e045a5cb08c64ee28b064b76650818bb
- 「apt-add-installer 0.1」- MediaFire 下載
- 檔案名稱:apt-add-installer.tar.bz2 (tar 封裝,bz2 壓縮檔)
- 檔案大小:壓縮包 2.1 KB,解壓縮後 3.8 KB
- 檔案MD5:81cd675d5956839f21493277721ffce0
Recommend to Front page

Nothing(5)


但是下了會怎樣?
電腦會爆炸嗎 (笑倒
請問如果裝了又有新版要怎麼辦?如何升級?
bug 0.2.4-1
sudo apt-add -uf "deb http://packages.medibuntu.org jaunty free non-free"Traceback (most recent call last):
File "/usr/bin/apt-add", line 9, in <module>
import sys, os, re, time, gettext, subprocess as subp, sourceparse as soup
ImportError: No module named sourceparse
ls /usr/lib/python2.6/ | grep sourceparse
-rwx------ 1 root root 11K 2009-08-15 11:39 sourceparse.py
-rwx------ 1 root root 14K 2009-08-15 11:40 sourceparse.pyc
開 project 啦!!!
去 google code 開個 project 啦 都可以 release 了說加油!!!
如果要在google code之類的站開 project, 這大概也是必要的.
例如:
Apt-add is a simple interface to APT's sources.list and keychain.
It can add/remove repositories and repository keys with a single command.
真的能做到就太好了!
sudo apt-add deb http://a.source.line version section ABCDEF12 像這樣能判斷出來就更棒了!
請問有在ubuntu上使用python 3嗎?有些package會使用到python 2.x的東西,怕說裝了python 3讓一堆使用python 2.x的package失去效用
Comment Permissions: Allow commenting