維護指令

更新套件索引(Index)

APT套件索引(package index),就是在本地端有一個檔案和一個資料夾,分別是「/etc/apt/sources.list」和「/etc/apt/sources.list.d/」,這兩個檔案紀錄著網路上資料庫(repository)上可取得軟體的清單。而命令『update』是用來從來源repo那邊重新同步這些套件索引的,可取得的套件索引清單都會在檔案『/etc/apt/source.list』裡面,當執行這個update時,所有新的和已經更新的清單就會被抓到本地端的資料庫。如果你要進行『upgrade』或是『dist-upgrade』之前都要記得『update』一下。只要用以下指令就可以更新這個清單:

sudo apt-get update

升級套件(相同版號)

『upgrade』是用來將目前系統上所有已經安裝套件給更新到最新版,當然這些套件清單的repo都要存在你的『/etc/apt/sources.list』裡面才行。所以代表的是你已經移除或是還未安裝的套件就不會更新摟。而且如果你的相依套件沒有處理的話,這個『upgrade』指令並不會幫你處理,所以就不會更新。要記得在升級前執行一下『update』來更新一下你的清單,不然你的系統也不會知道遠端repo有哪些新的套件。

所以如果已經安裝的軟體,而線上也已經有更新的版本的話,就可以用以下的兩個指令去升級

sudo apt-get update       
sudo apt-get upgrade

升級套件 (新版號)

『dist-upgrade』這個動作跟『upgrade』差不多,都是用來將目前系統上所有已經安裝套件給更新到最新版,但是它更會額外的幫你處理其他相依套件的更新。apt-get有一個聰明的衝突解決系統,它會去權衡只安裝最重要的套件,除非有必要,不然它就不會去安裝那些比較不重要的套件,所以因此『dist-upgrade』有可能會移除某些他認為你用不到的套件。

如果想要更新成比較新的版號的版本的話,請輸入:

sudo apt-get dist-upgrade

這個指令也可以用來升級你的作業系統,但是推荐的方法是使用「do-release-upgrade」套件,因為這個套件有辦法處理兩個版本之間的組態問題,如果想要用這個套件去升級新的Ubuntu 版本:

do-release-upgrade

如果想要升級成較新的測試版本Ubuntu:

do-release-upgrade -d

升級套件 (dselect)

『dselect-upgrade』是用來和傳統的Debian套件前端工具-『dselect』連結的介面,它會遵循『dselect』所改變的套件狀態,意思是如果你不是使用『dselect』的話你就可以不用管這個『action』了。

相依性檢查

『check』是一個診斷工具,會更新套件的cache和檢查損壞的相依性。以下診查指令可以檢查套件清單裏面的相依性是否損壞:

sudo apt-get check

刪除本地沒用套件

『autoclean』就像是『clean』一樣,將會清除在本地repo裡,之前取得的所有套件檔案,兩個的差別主要是『autoclean』只會移除已經無法被下載並且已經有很大的可能不在被需要的套件。這個功能會維護一個長期的cache,所以才會防止沒受控制的套件越來越多,然後後來就失控了。並且如果你把組態的option 『APT::Clean-Installed』給設定成『off』的話,將會防止已經安裝的套件被刪除掉。

底下指令可以移除所有在系統上沒在用的(沒被安裝)deb檔案。刪除那些過時,不需要再次下載的檔案(從版本1.1開始也可以用別名『auto-clean』)。

sudo apt-get autoclean

刪除本地沒用套件(cache)

sudo apt-get clean

apt-get clean將刪除『/var/cache/apt/archives』目錄 和『/var/cache/apt/archives/partial』目錄下被Lock檔案以外的所有檔案。 這樣以來,當你需要再次安裝某個套裝軟體時,APT將重新下載它。 底下這個指令會跟你說package cache花了多少空間:

du -sh /var/cache/apt/archives

檢查changelog

『changelog』會試著下載這個套件的相關歷史版本更新紀錄,並且顯示到sensible-pager上,預設的話會顯示目前已經安裝版本的changelog,如果你需要的話,你也可以具體的使用在『install』命令上的options來顯示這個資訊。

底下這個指令可以列出『vim』套件的所有changelog:

apt-get changelog vim

取得套件資訊

『indextargets』預設會顯示所有關於『apt-get update』將會下載的資訊清單(deb822格式),這個命令接受option - 『--format』來修改輸出的格式。如果你不是想要自己寫程式來取得清單的話,其實你可以忽略這個命令,因為通常這個命令是用來讓外部工具跟APT互動的API,相關的文件可以參考在source tree的『doc/acquire-additional-files.txt』。

apt-get indextargets

重新組態

有些套件在安裝時會有一些需要使用者自訂的組態,使用底下指令可以重新跑這些組態:

dpkg-reconfigure <package_name>

ex.   
dpkg-reconfigure fontconfig-config  
dpkg-reconfigure locales

locked and hold package

echo "<package_name> hold" | dpkg --set-selections

上面指令是把這個套件給鎖住,所以就沒辦法更新或升級,但是對『apt-get dist-upgrade』沒效。

解除鎖定狀態:

echo "<package_name> install" | dpkg --set-selections

results matching ""

    No results matching ""