国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
THE DEBIAN WAY: Debian 維護(hù)工具之 APT

本文檔是針對(duì) Debian GNU/Linux 的 APT 工具做一般性介紹, 希望 Linux 用戶對(duì)于 Debian 有個(gè)較為深刻的了解.

1. 聲明

 

2. 基本概念

dpkg 功能十分的強(qiáng)大, 是它保證了系統(tǒng)的穩(wěn)定性. 但是隨著 GNU/Linux 的日益普及, Debian 操作系統(tǒng)的廣泛應(yīng)用, dpkg 在操作上日益顯示出它的不足之處. APT (高級(jí)軟件包工具 Advanced Package Tool)很好的解決了這一難題, 它功過(guò)抽取軟件包中的相關(guān)信息, 給出相關(guān)操作的優(yōu)化方案, 確定解決請(qǐng)求所需軟件包, 從資源庫(kù)下載, 根據(jù)需求在本地系統(tǒng)安裝和刪除軟件包.

dpkg 采取的方式較為保守, 當(dāng)發(fā)現(xiàn)進(jìn)一步操作可能會(huì)將問(wèn)題引入系統(tǒng)時(shí)(比如使系統(tǒng)中出現(xiàn)了不能滿足依賴關(guān)系的軟件),將拒絕執(zhí)行這一操作(默認(rèn)方式), APT則會(huì)根據(jù)出現(xiàn)的問(wèn)題, 智能的給出解決方案, 并繼續(xù)進(jìn)行操作. 比如,安裝操作出現(xiàn)依賴關(guān)系時(shí), dpkg會(huì)拒絕操作, APT 則不同, 將會(huì)自動(dòng)安裝這些依賴包以完成安裝請(qǐng)求.

APT 提供另一個(gè)簡(jiǎn)單的命令行方式, 與 dpkg 不同, 其本身不會(huì)處理 .deb 文件, 而是智能從資源庫(kù)下載, 然后調(diào)用 dpkg 僅此處理. APT 是 dpkg 的一個(gè)智能前端.

3. 基本配置

apt 通過(guò)名稱和版本來(lái)在確定一個(gè)軟件包, 這些信息通常是通過(guò)資源庫(kù)中提供的 Packages.gz (如果是源代碼則是 Source.gz)來(lái)抽取來(lái)的(通過(guò) apt-get update 獲取). 通常如果出現(xiàn)重復(fù)的軟件包, 則第一個(gè)有效. 這些資源庫(kù)在 etc/apt/sources.list/ 中定義.

3.1 自動(dòng)配置

在基本系統(tǒng)中提供了一個(gè)用于自動(dòng)配置資源列表的工具: apt-setup. 由 base-config(現(xiàn)在僅在 sarge 中提供) 軟件包中, 可以通過(guò)

#base-config
調(diào)用, 或者直接運(yùn)行
#apt-setup

 

進(jìn)行配置.

3.2 手動(dòng)配置

資源庫(kù)在 /etc/apt/sources.list 中用就象如下行定義:

 deb     ftp://some-server/debian sarge main contribdeb-src ftp://some-server/debian sarge main contrib

 

與網(wǎng)站有如下對(duì)應(yīng)關(guān)系:

         ftp://some-server/debian/dists/sarge/main/binary-i386/...ftp://some-server/debian/dists/sarge/contrib/binary-i386/...------------------------       ----- |   |\___                 /   |   |add:              \               /    |   |------------------------ -----   |   |deb ftp://some-server/debian sarge main contrib

 

當(dāng)然上邊的網(wǎng)站是假設(shè)的, 不可用的. 應(yīng)當(dāng)選擇您連接速度最快的鏡像地址替換. Debian 官方鏡像列表可以 從 http://www.debian.org/mirror/list 處獲取, 也可從 /var/lib/apt-spy/mirrors.txt(apt-spy 提供)得到. 至于私有資源則需要通過(guò)別的途徑獲取.

/etc/apt/sources.list 中, 每行為一條記錄, 定義一個(gè)資源庫(kù). 其具體語(yǔ)法在 sources.list(5) 聯(lián)機(jī)手冊(cè)中有詳細(xì)介紹.每條記錄至少包括三個(gè)字段, 共同組成資源定位. 這些字段是:

軟件包類型

deb 指二進(jìn)制軟件包. 要訪問(wèn)軟件包源代碼, 則必需用 deb-src 代替.

資源URI

統(tǒng)一資源標(biāo)識(shí)符(URI)用于指定資源庫(kù), 可以使用下邊任意一種方式訪問(wèn):

cdrom, file, copy, http, ftp, ssh

發(fā)行版(distribution)

在標(biāo)準(zhǔn)的鏡像中, 這一字段使用規(guī)范名稱(如 stable )或代號(hào)(如 sarge )來(lái)關(guān)聯(lián) Debian 的發(fā)行版.

構(gòu)成

用于關(guān)聯(lián)一個(gè)發(fā)行版的組成部分, 對(duì)應(yīng)官方鏡像,相當(dāng)于軟件庫(kù)(如 每個(gè)條目的其余部分用于關(guān)聯(lián)一個(gè)發(fā)行版提供的組成部分.對(duì)于官方鏡像,這相當(dāng)于軟件庫(kù)(如 main, contrib), 對(duì)于非官方資源庫(kù), 組成部分的關(guān)聯(lián)方式可以由管理員自己定義. APT會(huì)為每個(gè)構(gòu)成創(chuàng)建單獨(dú)的 URI. 因此, 正常的發(fā)行版至少需要一個(gè)組成部分.

 

在修改 sources.list 后或安裝軟件前, 需要對(duì)APT進(jìn)行更新, 就是運(yùn)行 apt-get uodpate 獲取各種 Packages 文件, 它的位置是通過(guò) /etc/apt/sources.list 中的記錄來(lái)指定的.每個(gè)提到構(gòu)成都有一個(gè)對(duì)應(yīng)的 Packages 文件.

3.3 優(yōu)化資源

apt-spy 方式

Debian 在互聯(lián)網(wǎng)上有龐大的鏡像群, 有超過(guò) 100 個(gè)提供了全部 Debian 歸檔庫(kù)的官方鏡像. 另外, 還有很多大學(xué)和機(jī)構(gòu)提供非官方鏡像, 因此使用附近的還是不錯(cuò)的. 我們將哪些鏡像加入我們的 sources.list 文件呢? 當(dāng)然是速度最快的! Debian 為我們提供了一個(gè)用戶測(cè)試鏡像速度的工具 apt-spy (由 apt-spy 提供). 這樣有利于有效的利用帶寬, 節(jié)省下載時(shí)間.

可以從http://www.debian.org/mirror/list (由于某種原因, 您可能無(wú)法訪問(wèn))處獲取獲取完整的鏡像列表. 也可以從 tt /var/lib/apt-spy/mirrors.txt / ( apt-spy 提供)找到一個(gè)副本.

apt-spy 通過(guò)對(duì)列表進(jìn)行測(cè)試, 根據(jù)帶寬和回應(yīng)速度, 找出其中最快的一個(gè), 并將結(jié)果自動(dòng)保存到 /ect/apt/sources.list 中.

#apt-get install apt-spy

#mv sources.list sources.list.bak //backup

#man apt-spy //獲取詳細(xì)的使用方法

#apt-spy update //更新您的鏡像列表文件 /var/lib/apt-spy/mirrors.txt

 

可將測(cè)試限制在一個(gè)國(guó)家或區(qū)域內(nèi), 提供限制測(cè)試服務(wù)器個(gè)數(shù)的選項(xiàng), 等等. 另外, 區(qū)域也可以在 /etc/apt-spy.conf 中定義. 可以通過(guò)下邊的命令找出亞洲區(qū)速度最快的鏡像,并生成針對(duì) testing 的記錄:

# apt-spy -d testing -a Asia

 

上邊的測(cè)試大概每個(gè)服務(wù)器需要用一分鐘的時(shí)間, 這個(gè)也可以使用 -t 選項(xiàng)控制. 有關(guān)這一選項(xiàng)的詳細(xì)信息請(qǐng)閱讀 apt-spy(8) 聯(lián)機(jī)手冊(cè).

netselect-apt 方式

netselect-apt 會(huì)創(chuàng)建一個(gè)更完整的 sources.list 文件, 但它使用更落后的方法來(lái)選擇鏡像站點(diǎn):

#apt-get install netselect-apt

#mv sources.list sources.list.bak //backup

#man netselect-apt //獲取詳細(xì)的使用方法

# netselect-apt -s testing

//下載http://www.debian.org/mirror/list-full文件, 并根據(jù)其內(nèi)容測(cè)試網(wǎng)絡(luò), 生成 sources.list

 

也可將下載 http://www.debian.org/mirror/list-full 手動(dòng)下載到本地, 并同過(guò)參數(shù) -i 指定.同樣可以通過(guò) -o 參數(shù)指定輸出文件而不是默認(rèn)的 sources.list

4. APT 的配置

APT 的很多方面都是可以定制的.事實(shí)上,在 /etc/apt/apt.conf 文件中, 您可以修改大多數(shù)命令行選項(xiàng)的默認(rèn)值.配置參數(shù)使用 名稱 - 值 對(duì),根據(jù)用途被分為幾組. 組名在參數(shù)前邊用 "::" 分割.tt apt.conf(5) 聯(lián)機(jī)手冊(cè)有相關(guān)語(yǔ)法介紹. 其它項(xiàng)目在對(duì)應(yīng)命令的聯(lián)機(jī)手冊(cè)中有所描述(如 tt apt.get(1) tt apt-cache(1) ).比如:

APT::Default-Release "testing";

 

//在使用混合系統(tǒng)時(shí), 設(shè)定默認(rèn)下載的版本

APT::Get::Assume-Yes "true";

 

//如果在安裝/卸載過(guò)程中出現(xiàn)詢問(wèn), 應(yīng)答為 y

如果在使用aptitudeapt-getdpkg 時(shí)出現(xiàn)如下錯(cuò)誤

E: Dynamic MMap ran out of room

 

可以在apt.conf中加入:

APT::Cache-Limit "12500000";

 

以重新設(shè)定緩存區(qū)大小.

訪問(wèn)資源庫(kù)需要代理, 則可以加入類似下邊的內(nèi)容:

Acquire::http::proxy "http://user:pass@xxx.xxx.xxx.xxx:port";Acquire::ftp::proxy "ftp://user:pass@xxx.xxx.xxx.xxx:port";

 

APT還提供了三個(gè)鉤子程序, 用于在 dpkg 階段調(diào)用.它們分別是 Pre-Invoke, Post-Invoke, Pre-Install-Pkgs.

DPkg::Pre-Invoke {"mount -o remount,rw /usr";};DPkg::Post-Invoke {"mount -o remount,ro /usr";};DPkg::Pre-Install-Pkgs {"dpkg-preconfigure --apt --priority=low --frontend=dialog";};

 

/usr/share/doc/apt/examples/apt.conf, /usr/share/doc/apt/examples/configure-index.gz 中給出詳細(xì)的例子, 可以用于參照.

5. 安裝

當(dāng)發(fā)出安裝請(qǐng)求時(shí),apt 會(huì)根據(jù)其優(yōu)化算法, 求解出最佳安裝方案, 來(lái)完成用戶的請(qǐng)求. 比如:

debian:~# apt-get install xchatReading Package Lists... DoneBuilding Dependency Tree... DoneThe following extra packages will be installed:defoma fontconfig libatk1.0-0 libfontconfig1 libgtk2.0-0 libgtk2.0-binlibgtk2.0-common libpango1.0-0 libpango1.0-common libperl5.8 libtiff4libx11-6 libxcursor1 libxext6 libxft2 libxi6 libxrandr2 libxrender1 tcl8.4ttf-bitstream-vera xchat-common xfree86-common xlibs-dataSuggested packages:defoma-doc psfontmgr x-ttcidfont-conf dfontmgr ttf-kochi-gothicttf-kochi-mincho ttf-thryomanes ttf-baekmuk ttf-arphic-gbsn00lpttf-arphic-bsmi00lp ttf-arphic-gkai00mp ttf-arphic-bkai00mp tclreadlinelibnet-google-perl x-window-system-core x-window-systemRecommended packages:libft-perl libatk1.0-data hicolor-icon-themeThe following NEW packages will be installed:defoma fontconfig libatk1.0-0 libfontconfig1 libgtk2.0-0 libgtk2.0-binlibgtk2.0-common libpango1.0-0 libpango1.0-common libperl5.8 libtiff4libx11-6 libxcursor1 libxext6 libxft2 libxi6 libxrandr2 libxrender1 tcl8.4ttf-bitstream-vera xchat xchat-common xfree86-common xlibs-data0 upgraded, 24 newly installed, 0 to remove and 1 not upgraded.Need to get 12.5MB of archives.After unpacking 39.1MB of additional disk space will be used.Do you want to continue? [Y/n]

 

APT 下載軟件時(shí)是根據(jù) /var/lib/apt/lists 下的 _Packages 文件, 來(lái)獲取軟件的詳細(xì)定位的,而這些 _Packages 文件是通過(guò)命令:

#apt-get update

 

命令從 sources.list 中聲明的順序從資源庫(kù)中獲取的. 這一命令將對(duì) Packages 索引文件進(jìn)行更新. 因此, 在安裝軟件前, 或在修改 sources.list 后, 應(yīng)該進(jìn)行 apt-get update 操作.

每天運(yùn)行, 或經(jīng)常運(yùn)行這一命令, 是個(gè)良好的習(xí)慣. APT 同時(shí)會(huì)清除/var/lib/apt/lists 目錄下沒(méi)有在 /etc/apt/sources.list 中聲明的資源文件. 如果你使用 --no-list-cleanup(APT::Get::List-Cleanup),APT 將會(huì)保留這些文件,如果您只是在 sources.list 中臨時(shí)禁用一條資源, 這樣還是比較方便的; 當(dāng)再次啟用這條資源時(shí), 就不需要重復(fù)下載 APT 的資源文件了.

在安裝的時(shí)候您可以通過(guò)使用 --print-uris 選項(xiàng)將這些信息輸出到屏幕. 比如:

#apt-get install --print-uris  nano-tinyReading Package Lists... DoneBuilding Dependency Tree... DoneThe following NEW packages will be installed:nano-tiny0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.Need to get 87.8kB of archives.After unpacking 123kB of additional disk space will be used.'http://ftp.us.debian.org/debian/pool/main/n/nano/nano-tiny_1.2.4-5_i386.deb'nano-tiny_1.2.4-5_i386.deb 87786 07794bf630d1a9dffdf85917a9e39968

 

注意 后邊的 07794bf630d1a9dffdf85917a9e39968 這是 nano-tiny_1.2.4-5_i386.deb 的 MD5 編碼, 將用跟從 Packages 中獲取的對(duì)應(yīng) MD5 編碼相比對(duì).只有 MD5 編碼相匹配時(shí), 才會(huì)安裝. 當(dāng)出現(xiàn)不一致時(shí), APT 會(huì)報(bào)告 MD5 不匹配,并拒絕安裝或升級(jí)軟件包.

您也可以僅僅模擬一下, 而不是真正的安裝:

#apt-get install nano-tiny -s(--simulate)

 

如果您僅需要獲取 .deb, 而不是裝, 則可以

#apt-get install nano-tiny -d(--download-only)

 

假如你不小心損壞了已安裝的軟件包而想修復(fù)它, 或者僅僅想安裝軟件包中某些文件的最新版本, 這是可以做到的, 你可以用 --reinstall 選項(xiàng):

# apt-get --reinstall install nano

 

如果您使用的是混合源, 也可指定發(fā)行版安裝:

# apt-get install nano/testing

 

解決依賴問(wèn)題

當(dāng)出現(xiàn)依賴問(wèn)題時(shí), APT 會(huì)努力做出最好的的選擇. 作為解決依賴問(wèn)題的一部分, APT 為了盡可能的完成用戶的請(qǐng)求, 會(huì)首先卸載已經(jīng)安裝的沖突的軟件包. 無(wú)論何時(shí), 在進(jìn)行用戶請(qǐng)求的附加操作時(shí), apt-get 在提示了對(duì)所選擇軟件包將要做的的變更后, 都會(huì)請(qǐng)求用戶的確認(rèn). 這是為了防止不小心卸載了沖突的軟件包, 或引入更嚴(yán)重的依賴問(wèn)題. 如果不需要額外的操作, APT 將不會(huì)給出提示.

通過(guò)設(shè)置 APT::Get::Show-Upgradeedtrue ,可以讓APT每次都提示確認(rèn). 同樣, 設(shè)置 APT::Get::Assum-Yestrue, 或在APT的命令行指定 -y 選項(xiàng), APT 將繞過(guò)確認(rèn), 繼續(xù)操作. 請(qǐng)避免使用這一選項(xiàng);確認(rèn)對(duì)于生產(chǎn)應(yīng)用系統(tǒng)來(lái)說(shuō)是個(gè)好事情.有時(shí), 一個(gè)軟件包會(huì)依賴于其它一組軟件包中的任意一個(gè).比如:

debian:~# apt-cache depends mailxmailxDepends: libc6Depends: liblockfile1|Depends: exim4Depends: <mail-transport-agent>courier-mtaesmtp-runeximmasqmailnullmailerpostfixsendmail-binssmtpxmailexim4-daemon-heavyexim4-daemon-lightDepends: base-filesConflicts: <suidmanager>

 

mailx 依賴于能夠提供 郵件傳輸代理的任一個(gè)軟件包, 在默認(rèn)情況下會(huì)安裝 exim4, 除非您明確指定:

#apt-get install mailx postfix

 

6. 查詢

到目前為止, 一切感覺(jué)都還不錯(cuò), 只要您知道了軟件包名稱, 使用APT安裝簡(jiǎn)直就是小菜一碟. 當(dāng)我們需要安裝一個(gè)軟件, 而又沒(méi)有確切的知道其名稱時(shí), 就需要求助于 apt 提供的另一個(gè)命令 apt-cache (詳細(xì)的使用方法, 請(qǐng)查閱 apt-cache(8) 聯(lián)機(jī)手冊(cè)). 它可以用于查詢您的軟件包數(shù)據(jù)庫(kù), 包括軟件包描述, 就象這樣:

debian:~# apt-cache search mysql-servermysql-server - mysql database server (current version)mysql-server-4.1 - mysql database server binariesmysql-server-5.0 - mysql database server binariesphpbb2-conf-mysql - Automatic configurator for phpbb2 onscoop - Web-based collaborative media applicationwebmin-mysql - mysql-server control module for webmin

 

我們找到了幾個(gè)相關(guān)的軟件包, 以及有關(guān)的簡(jiǎn)單描述. 想進(jìn)一步獲得某個(gè)軟件包的詳細(xì)信息, 你可以運(yùn)行:

#apt-cache show mysql-serverPackage: mysql-serverPriority: optionalSection: miscInstalled-Size: 8344Maintainer: Christian Hammers <ch@debian.org>Architecture: i386Source: mysql-dfsgVersion: 4.0.24-10sarge1Provides: virtual-mysql-serverDepends: mysql-common (>= 4.0.24-10sarge1), mysql-client (>= 4.0.24-10sarge1),ebconf (>= 1.2.9), libdbi-perl, perl (>= 5.6), libc6 (>= 2.3.2.ds1-21), libgcc(>= 1:3.4.1-3), libmysqlclient12, libstdc++5 (>= 1:3.3.4-1), libwrap0, zlib1g= 1:1.2.1), adduser (>= 3.40), psmisc, passwd, mailxConflicts: mysql-server-4.1Filename: pool/updates/main/m/mysql-dfsg/mysql-server_4.0.24-10sarge1_i386.debSize: 3645680MD5sum: b1877cc602daf4b3aeffd350ced6f6a7Description: mysql database server binariesMySQL is a fast, stable and true multi-user, multi-threaded SQL databaseserver. SQL (Structured Query Language) is the most popular database querylanguage in the world. The main goals of MySQL are speed, robustness andease of use..This package includes the server binaries for the 4.0 branch.

 

如果僅想了解某軟件包的與哪些軟件包關(guān)聯(lián), 可運(yùn)行:

debian:~# apt-cache depends mysql-servermysql-serverDepends: mysql-commonDepends: mysql-clientDepends: debconfDepends: libdbi-perlDepends: perlDepends: libc6Depends: libgcc1Depends: libmysqlclient12Depends: libstdc++5Depends: libwrap0Depends: zlib1gDepends: adduserDepends: psmiscDepends: passwdDepends: mailxmailutilsConflicts: mysql-server-4.1

 

而命令

debian: # apt-cache rdepends mysql-server

 

則會(huì)查詢哪些包依賴于mysql-server. 如果要將這兩種查詢信息合并到一起, 則可以使用:

debian: # apt-cache showpkg mysql-server

 

apt-cache search 的參數(shù)可以使用正則表達(dá)式, 如果指定了多個(gè)參數(shù), 則輸出的軟件包必需同時(shí)包含這它們這些內(nèi)容. 也可以使用 --name-only 選項(xiàng)( APT::Cache::NameOlny true ),只搜索軟件包名. 當(dāng)指定 --full 選項(xiàng)(APT::Cache::ShowFull true )時(shí), 將會(huì)顯示軟件包的所有信息.

7. 高級(jí)查詢

如果你想安裝某個(gè)軟件包, 但用 apt-cache 查不出它的名稱,不過(guò)你知道這個(gè)程序的文件名, 或這個(gè)軟件包中某些文件的文件名, 那么你可以用 apt-file 來(lái)查找軟件包名稱. 這個(gè)工具由同名軟件包提供. apt-file 事實(shí)上是一個(gè) APT 軟件庫(kù)中提供的 Contents 文件的接口. 每個(gè)發(fā)行版都提供這樣的文件, 包括了某個(gè)發(fā)行版所要安裝的所有文件的列表. 在使用 apt-file 前, 需要首先獲取用戶要查詢的 Contents 文件. 運(yùn)行 apt-file update 將會(huì)這個(gè)文件下載到 /var/cache/apt 目錄. 這樣就可以使用 apt-file 查詢這個(gè)文件了.apt-file 的主要用途是確定某個(gè)文件是由哪個(gè)軟件包提供的.

$ apt-file search filename

 

用這個(gè)命令, 你可以列出軟件包的內(nèi)容:

$ apt-file list packagename

 

apt-get 一樣, 這個(gè)數(shù)據(jù)庫(kù)也需要實(shí)時(shí)更新, 完成更新可以運(yùn)行:

# apt-file update

 

8. 卸載和清除

如果你不再使用某些軟件包, 你可以用 APT 將其從系統(tǒng)中刪除. 要?jiǎng)h除軟件包只需輸入:apt-get remove package. 如下所示:

debian:~# apt-get remove vimReading Package Lists... DoneBuilding Dependency Tree... DoneThe following packages will be REMOVED:vim vim-common0 upgraded, 0 newly installed, 2 to remove and 1 not upgraded.Need to get 0B of archives.After unpacking 15.1MB disk space will be freed.Do you want to continue? [Y/n]

 

可以注意到, 在請(qǐng)求刪除 vim 時(shí), vim-common 也會(huì)同時(shí)卸載, 因?yàn)?APT 會(huì)關(guān)注那些與被刪除的軟件包有依賴關(guān)系的軟件包. 使用 APT 刪除一個(gè)軟件包將會(huì)連帶刪除那些與該軟件包有依賴關(guān)系的軟件包.但是它們的配置文件, 如果有的話, 會(huì)完好無(wú)損地保留在系統(tǒng)里. 如果想徹底刪除這些包及其配置文件,運(yùn)行:

debian:~# apt-get remove vim --purgeReading Package Lists... DoneBuilding Dependency Tree... DoneThe following packages will be REMOVED:vim* vim-common*0 upgraded, 0 newly installed, 2 to remove and 1 not upgraded.Need to get 0B of archives.After unpacking 15.1MB disk space will be freed.Do you want to continue? [Y/n]

 

注意軟件包后的星號(hào), 這表示將要被清除, 而不是簡(jiǎn)單的刪除.

您也可以在安裝的同時(shí)進(jìn)行軟件卸載, 比如:

debian:~# apt-get install nano-tiny nano-Reading Package Lists... DoneBuilding Dependency Tree... DoneThe following packages will be REMOVED:nanoThe following NEW packages will be installed:nano-tiny0 upgraded, 1 newly installed, 1 to remove and 1 not upgraded.Need to get 0B/87.8kB of archives.After unpacking 913kB disk space will be freed.Do you want to continue? [Y/n]

 

注意 nano 后邊的 "-", 它提示在安裝 nano-tiny 的同時(shí)將nano 卸載掉.

當(dāng)然也可以用 dpkg 進(jìn)行軟件包刪除, 但是它并不能自動(dòng)解決依賴問(wèn)題.

9. 系統(tǒng)升級(jí)

9.1 軟件升級(jí)

Debian 的一個(gè)強(qiáng)大之處就是它的對(duì)軟件包的無(wú)縫升級(jí). 無(wú)論是請(qǐng)求APT將一個(gè)持續(xù)相當(dāng)長(zhǎng)時(shí)間的的 woody 服務(wù)器升級(jí)到sarge, 還是對(duì)當(dāng)前 stable 發(fā)行版升級(jí)一些軟件包,APT 都不會(huì)有問(wèn)題.升級(jí)軟件包就是指一個(gè)軟件包版本號(hào)比當(dāng)前安裝的版本號(hào)要高. 從 Debian 的一個(gè)發(fā)行版升級(jí)到另一個(gè), 軟件包的版本號(hào)都作了刻意的增加,而stable 內(nèi)部的升級(jí)則是因?yàn)榘踩珕?wèn)題, 和重大補(bǔ)丁修正, 而不可能是功能調(diào)整. 如果新的上游版本修正了某個(gè)安全問(wèn)題, 則安全修正仍會(huì)使用stable 版中的版本號(hào), 以盡量減少變動(dòng). Debian/stable 要確保系統(tǒng)的穩(wěn)定性.

一個(gè) stable 版本所包含的軟件包列表可能從不會(huì)改變, 但是一個(gè)新的發(fā)行版通常會(huì)引入等多的軟件包. 因此, stable 內(nèi)部的依賴關(guān)系從不會(huì)發(fā)生變化, 但是新的發(fā)行版中可能會(huì)包含更名, 或拆分的軟件包, 因此需要修改軟件包之間的依賴關(guān)系.

版本內(nèi)升級(jí), 只需一條命令即可完成更新:

#apt-get upgrade

 

運(yùn)行該命令時(shí)加上 -u 選項(xiàng)很有用. 這個(gè)選項(xiàng)讓 APT 顯示完整的可更新軟件包列表. APT 會(huì)下載每個(gè)軟件包的最新更新版本, 然后以合理的次序安裝它們. 注意在運(yùn)行該命令前應(yīng)先運(yùn)行 apt-get update 更新數(shù)據(jù)庫(kù).定時(shí)順序執(zhí)行 update/upgrade, 可以保持系統(tǒng)運(yùn)行平穩(wěn)和安全. 也可以使用 cron 自動(dòng)升級(jí)系統(tǒng).

9.2 升級(jí)到新版本

不同的版本之間, 提供的軟件包的數(shù)目, 以及軟件包間的依賴關(guān)系會(huì)有很大差異, 如果更改新的版本, 比如將系統(tǒng)從 stable 升級(jí)到 testing, update/upgrade 不會(huì)安裝沒(méi)有在系統(tǒng)中出現(xiàn)的軟件包; 只會(huì)對(duì)現(xiàn)存軟件包進(jìn)行升級(jí). 并且如果現(xiàn)有軟件新版本依賴關(guān)系發(fā)生而來(lái)變化, 那么將無(wú)法對(duì)其升級(jí):

debian:~# apt-get upgradeReading Package Lists...Building Dependency Tree...The following packages have been kept back:adduser apache apache-common apache2-utils apt apt-utils aptitude bc...The following packages will be upgraded:base-files base-passwd bash binutils bitchx bootcd bootcd-i386 bsdmainutils...142 upgraded, 0 newly installed, 0 to remove and 83 not upgraded.Need to get 51.8MB of archives.After unpacking 12.5MB of additional disk space will be used.Do you want to continue? [Y/n]

 

我們看到有些包被阻止更新(kept back), 現(xiàn)在我們就用使用APT的智能升級(jí)機(jī)制: apt-get dist-upgrade

debian:~# apt-get dist-upgradeReading Package Lists...Building Dependency Tree...The following packages will be REMOVED:libgssapi1-heimdal libroken16-kerberos4kth libsp1 mysql-common-4.1postfix-tlsThe following NEW packages will be installed:apache2-common apache2-mpm-prefork cpp-4.0 dmidecode gcc-4.0 gcc-4.0-base...The following packages will be upgraded:adduser apache apache-common apache2-utils apt apt-utils aptitude base-files...225 upgraded, 42 newly installed, 5 to remove and 0 not upgraded.Need to get 132MB of archives.After unpacking 70.6MB of additional disk space will be used.Do you want to continue? [Y/n]

 

當(dāng) apt-get dist-upgrade 時(shí), APT 會(huì)安裝新軟件包,甚至?xí)h除廢棄的軟件包. 實(shí)際的新軟件包的安裝, 或刪除舊軟件包, 仍是由 dpkg 完成的.

幾分鐘(也可能是幾個(gè)小時(shí), 這和你 的帶寬和升級(jí)的軟件包的多少有關(guān))后, APT 就完成了系統(tǒng)從 stable 到 testing的升級(jí).因?yàn)槿允怯?dpkg 來(lái)響應(yīng)實(shí)際的安裝, 您精心調(diào)整的配置文件并不會(huì)被修改(除非您選擇安裝新的版本).當(dāng)新版的軟件包需要修改調(diào)整文件時(shí), Debian 的維護(hù)者將會(huì)提供不同的軟件包, 這樣您就不必花費(fèi)整個(gè)下午的時(shí)間來(lái)調(diào)整您的軟件恢復(fù)正常了.

10. 解決問(wèn)題

  • 如何將本地光盤加入安裝源列表:
    這可以求助于 apt-cdrom add
  • 如何降級(jí)一個(gè)系統(tǒng)(比如將 sid 降級(jí)為 testing)

    /etc/apt/preferences文件中加入:

            Package: *    Pin: release a=testing    Pin-Priority: 1001    
    修改 /etc/apt/sources.list, 將資源庫(kù)由 sid 改為 testing 分支, 然后運(yùn)行:
    #apt-get update

    #apt-get -u dist-upgrade

    注: 降級(jí)處理存在一定的風(fēng)險(xiǎn), 謹(jǐn)慎使用

     

  • 如果在安裝過(guò)程中出現(xiàn)中斷, 然后你發(fā)現(xiàn)該軟件包既不能重裝又不能刪除, 試試下面兩個(gè)命令:
    # apt-get -f install

    # dpkg --configure -a

  • 如何清除下載到本地的軟件庫(kù)

    #apt-get clean
    //將刪除 /var/cache/apt/archives/ 目錄和 /var/cache/apt/archives/partial/ 目錄下的所有文件,除了被鎖定的文件.

     

    apt-get autoclean
    //僅刪除那些不需要再次下載的文件.

     

  • 如何查看一個(gè)軟件的編譯依賴庫(kù)

    #apt-cache showsrc packagename|grep Build-Depends
    注: sources.list 中應(yīng)該有 deb-src

     

  • 下載軟件的源代碼

    #apt-get source packagename
    注: sources.list 中應(yīng)該有 deb-src 源

     

  • 安裝軟件包源碼的同時(shí), 安裝其編譯環(huán)境

    #apt-get build-dep packagename
    注: sources.list 中應(yīng)該有 deb-src 源

     

  • 檢查軟件包的狀態(tài)

    #apt-cache policy packagename

     

 

11. 參考文獻(xiàn)

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
apt
Linux常用命令--軟件包管理
ubuntu備份教程
在 Ubuntu 上如何添加 Apt 軟件源
Debian新手apt-get/dpkg簡(jiǎn)明入門
ubuntu--install
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服