亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1314 | 回復(fù): 0
打印 上一主題 下一主題

Debian Reference Debian軟件包管理 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-05-04 15:08 |只看該作者 |倒序?yàn)g覽
Debian Reference Debian軟件包管理 
使用ATP下載軟件包時(shí),請(qǐng)確保使用了squid設(shè)置本地HTTP代理,如果有可能,請(qǐng)?jiān)O(shè)置http_proxy環(huán)境變量或在/etc/apt/apt.confhttp值,這樣可極大的改善網(wǎng)絡(luò)升級(jí)的性能,特別是在局域網(wǎng)中多臺(tái)Debian機(jī)器同時(shí)升級(jí)時(shí)。 
盡管apt_preferences(5)的pin功能十分強(qiáng)大,但它并不能解決所有關(guān)聯(lián)問(wèn)題,因?yàn)殛P(guān)聯(lián)需求總傾向于更新其它基礎(chǔ)程序包。 
chroot, 節(jié) 8.6.33中所描述的使用方法非常適于將系統(tǒng)的穩(wěn)定性和可使用大量新版軟件兩個(gè)優(yōu)點(diǎn)結(jié)合在一起。 
本章基于Woody系統(tǒng)撰寫(xiě)的,但大部分信息均適用于Potato系統(tǒng)(除了apt_preferences(5)和/etc/apt/preferences的相關(guān)主題)。 
6.1 概述
如果你沒(méi)精力閱讀所有的開(kāi)發(fā)文檔,那么先看看本章的內(nèi)容,開(kāi)始體驗(yàn)Debian testing/unstable的威力吧 :-) 
6.1.1 主要工具
     dselect   — 使用菜單界面的軟件包管理工具(最上層的包管理工具)
     dpkg      — 安裝軟件包(管理軟件包中的文件)
     apt-get   — 安裝軟件包(管理軟件包,CLI APT)
     tasksel   — 安裝任務(wù)套件(管理面向某方面任務(wù)的一套軟件包)
     aptitude  — 安裝軟件包(管理軟件包和任務(wù)套件,ncurses APT)
     deity     — 另一種ncurses APT
     synaptic, gsynaptic — 另一種GUI APT
它們不是同級(jí)的工具。dselect運(yùn)行于APT(命令行命令是apt-get)和dpkg之上。 
APT使用/var/lib/apt/lists/*來(lái)跟蹤可用的軟件包,而dpkg使用的是/var/lib/dpkg/available。如果直接用apt-get或同類工具如aptitude等來(lái)安裝軟件包,千萬(wàn)別忘了更新/var/lib/dpkg/available文件,可以使用dselect的[U]pdate選項(xiàng)或在運(yùn)行dselect update、tasksel或dpkg -l前執(zhí)行shell命令行“dselect update”。 
在處理關(guān)聯(lián)軟件包的方式上,apt-get會(huì)自動(dòng)搜索下載depends類軟件包,但不會(huì)理睬recommends和suggests類軟件包,而dselect在軟件包的選擇方面采用菜單方式操作,對(duì)depends、recommends和suggests三類相關(guān)軟件包均給出提示。aptitude則提供了選項(xiàng)下載安裝所有depends、recommends和suggests類軟件包。參閱軟件包關(guān)聯(lián)性, 節(jié) 2.2.8。 
6.1.2 方便的工具
     apt-cache         - 在本地緩沖區(qū)檢查包文件
     dpkg-reconfigure  - 重新配置已安裝的軟件包(如果它是使用debconf進(jìn)行配置的)
     dpkg-source       - 管理源碼包
     dpkg-buildpackage - 自動(dòng)生成包文件
     ...
6.2 Debian軟件包管理基礎(chǔ)
成套地安裝軟件包稱之為task,還可以使用軟件包管理工具逐個(gè)地安裝軟件包或升級(jí)系統(tǒng)。亦可參閱Debian系統(tǒng)安裝提示, 章 3、發(fā)行版升級(jí), 章 5和應(yīng)急的編輯器, 節(jié) 11.2。 
6.2.1 使用tasksel或aptitude進(jìn)行task安裝
tasksel是Debian的任務(wù)安裝器,系統(tǒng)安裝過(guò)程中它為用戶提供了一種簡(jiǎn)易軟件包選擇方式。 
如果你希望完裝的某項(xiàng)常規(guī)功能包含了許多軟件包,最好的辦法就是使用它來(lái)安裝。運(yùn)行如下命令: 
     # dselect update
     # tasksel
aptitude亦可訪問(wèn)task。用它不僅可以選擇tasks還可以對(duì)task選項(xiàng)菜單中的軟件包進(jìn)行逐個(gè)取舍。 
6.2.2 設(shè)置APT系統(tǒng)
使用testing發(fā)布版的用戶,有時(shí)需要對(duì)系統(tǒng)進(jìn)行有選擇性地升級(jí),這時(shí)可按將APT升級(jí)到Woody版本, 節(jié) 5.1中描述的方法設(shè)置APT系統(tǒng)(>Woody),使用其apt_preferences(5)功能。 
首先,在/etc/apt/sources.list中添加stable、testing和unstable鏡像源,接著編輯/etc/apt/preferences,設(shè)置合適的Pin-Priority。 
     Package: *
     Pin: release a=stable
     Pin-Priority: 500
     
     Package: *
     Pin: release a=testing
     Pin-Priority: 600
     
     Package: *
     Pin: release a=unstable
     Pin-Priority: 50
6.2.3 dselect
啟動(dòng)程序,dselect會(huì)自動(dòng)選上所有“Required”、“Important”和“Standard”類軟件包,在Potato系統(tǒng)中,某些大型應(yīng)用程序如TeX和Emacs處于這些分類中,在初次安裝系統(tǒng)時(shí)最好手工取消對(duì)它們的選擇(輸入“_”)。在Woody中,這些大型應(yīng)用程序被移入“Optional”類軟件包。 
dselect的用戶界面有點(diǎn)怪。有4個(gè)相似命令(注意是大寫(xiě)字母。 
     Key-stroke  Action
     Q           退出。確認(rèn)當(dāng)前的選擇然后退出。
                 (override dependencies)
     R           恢復(fù)!我放棄我做出的選擇
     D           不管它!我不管dselect有什么建議,照我說(shuō)的做!
     U           照系統(tǒng)的建議做
使用D和Q可以選擇有沖突的選項(xiàng),你要自負(fù)風(fēng)險(xiǎn),所以使用這些命令要小心。當(dāng)前dselect是一款成熟的菜單驅(qū)動(dòng)式工具,在對(duì)suggests和recommends類軟件包的選擇控制方面,它提供相當(dāng)棒的微操作能力。 
在/etc/dpkg/dselect.cfg中加上一行包含“expert”選項(xiàng)以減少干擾。對(duì)于速度慢的機(jī)器,請(qǐng)?jiān)谄渌俣瓤斓臋C(jī)器上運(yùn)行dselect選好軟件包,然后用apt-get install安裝它們。 
對(duì)于沒(méi)有定義Pin-Priority的軟件包,dselect不會(huì)訪問(wèn)它們。 
6.2.4 aptitude
aptitude是一款新的菜單驅(qū)動(dòng)式軟件包安裝工具,與dselect很相似。它亦可作為命令行工具apt-get的替代品。參閱aptitude(1)。 
aptitude可接受單字符命令,通常是小寫(xiě)字母。 
     Key-stroke  Action
     F10         菜單
     ?           鍵盤(pán)命令幫助
     u           更新軟件包信息
     g           下載并安裝選定的軟件包
     q           保存修改并退出當(dāng)前屏幕
     x           放棄修改并退出當(dāng)前屏幕
     Enter       瀏覽某軟件包的相關(guān)信息
aptitude提供了選項(xiàng)可自動(dòng)選取所有depends、recommends和suggests類軟件包?稍贔10 -> Options -> Dependency handling菜單中設(shè)置它。 
通過(guò)aptitude可訪問(wèn)某軟件包的所有版本。 
6.2.5 apt-cache和apt-get命令
還是以上面使用testing發(fā)布版的用戶為例,可使用下列命令管理系統(tǒng): 
apt-get -u upgrade 
跟蹤testing發(fā)布版的更新情況,對(duì)系統(tǒng)上所有軟件包進(jìn)行升級(jí)并從testing處安裝關(guān)聯(lián)軟件包。 
apt-get -u dist-upgrade 
跟蹤testing發(fā)布版的更新情況,對(duì)系統(tǒng)上所有軟件包進(jìn)行升級(jí)并從testing處重新分析關(guān)聯(lián)關(guān)系并安裝關(guān)聯(lián)包。 
apt-get -u dselect-upgrade 
跟蹤testing發(fā)布版的更新情況,對(duì)系統(tǒng)上所有在dselect中選定了的軟件包進(jìn)行升級(jí)。 
apt-get -u install package 
從testing處安裝package及其關(guān)聯(lián)包。 
apt-get -u install package/unstable 
從unstable處安裝package并從testing處安裝關(guān)聯(lián)包。 
apt-get -u install -t unstable package 
從unstable處安裝package及其關(guān)聯(lián)包。注意須設(shè)置unstable的Pin-Priority為990。 
apt-cache policy foo bar ... 
檢查foo bar ...軟件包的狀態(tài)。 
apt-cache show foo bar ... | less 
查看foo bar ...軟件包的有關(guān)信息。 
apt-get install foo=2.2.4-1 
安裝foo軟件包的特定版本2.2.4-1。 
apt-get -u install foo bar- 
安裝foo軟件包并刪除bar軟件包。 
apt-get remove bar 
刪除bar軟件包,但保留其配置文件。 
apt-get remove --purge bar 
刪除bar軟件包及其配置文件。 
在上面的例子中使用-u選項(xiàng)的作用是在實(shí)際升級(jí)之前將所有將要升級(jí)的軟件包列出,并提示用戶確認(rèn)。下面的操作可將-u設(shè)置為默認(rèn)行為: 
     $ cat >> /etc/apt/apt.conf  1000而引起強(qiáng)制降級(jí)。注意,該操作可能會(huì)在關(guān)聯(lián)性方面發(fā)生一點(diǎn)問(wèn)題。 
6.2.8 /etc/apt/preferences概述
設(shè)置APT系統(tǒng), 節(jié) 6.2.2中展示的/etc/apt/preferences樣例文件里,首行Package: *表示該段落指令作用于所有軟件包。可以通過(guò)指定軟件包名稱來(lái)為某個(gè)特定的軟件包設(shè)置指定的Pin-Priority。 
接下來(lái)的一行是Pin: release a=stable表示apt-get從包含Archive: stable節(jié)的Release文件所在的目錄獲得Packages.gz文件。 
最后一行Pin-Priority: 500指定Pin-Priority為500。 
如果多個(gè)軟件包同名,系統(tǒng)通常會(huì)安裝擁有最高Pin-Priority的軟件包。 
在此,Pin-Priority表示: 
1001及以上:可降級(jí)優(yōu)先級(jí)。 
Pin-Priority處于該范圍的軟件包允許降級(jí)操作。 
100到1000:標(biāo)準(zhǔn)優(yōu)先級(jí)。 
不允許降級(jí)。幾個(gè)key Pin-Priority的值: 
990:由--target-release或apt-get(8)-t選項(xiàng)設(shè)置的優(yōu)先級(jí)。 
500:所有默認(rèn)軟件包文件的優(yōu)先級(jí)。 
100:當(dāng)前安裝軟件包文件的優(yōu)先級(jí)。 
0到99:非自動(dòng)優(yōu)先級(jí)。(僅用于軟件包沒(méi)有安裝或沒(méi)有別的可用版本時(shí)。) 
小于0:決不選擇該版本。 
按下面的方法設(shè)置/etc/apt/apt.conf可獲得與--target-release一樣的效果: 
     # echo 'APT::Default-Release "testing";' >> /etc/apt/apt.conf
命令行選項(xiàng)--target-release和/etc/apt/apt.conf中的設(shè)置會(huì)頂替/etc/apt/preferences的設(shè)置。在玩/etc/apt/preferences的時(shí)候小心兩者沖突。 
6.3 Debian生存工具
掌握了這些知識(shí),就能讓你的系統(tǒng)“青春永駐”了:-) 
6.3.1 檢測(cè)程序錯(cuò)誤尋求幫助
如你使用某個(gè)軟件包出現(xiàn)問(wèn)題,在尋求幫助或發(fā)送錯(cuò)誤報(bào)告之前請(qǐng)確認(rèn)查看過(guò)下列站點(diǎn)(lynx、links和w3m同樣好用): 
     $ lynx http://bugs.debian.org/
     $ lynx http://bugs.debian.org/package-name  # 如果你知道軟件包名稱
     $ lynx http://bugs.debian.org/bugnumber     # 如果你知道錯(cuò)誤序號(hào)
在Google(www.google.com)中使用關(guān)鍵字“site:debian.org”搜索。 
如有疑問(wèn),可閱讀幫助文件。設(shè)置CDPATH如下: 
     export CDPATH=.:/usr/local:/usr/share/doc
然后輸入 
     $ cd packagename
     $ pager README.Debian # if this exists
     $ mc
更多技術(shù)支持資源列在Debian技術(shù)支持, 章 15。 
6.3.2 APT升級(jí)錯(cuò)誤及解決方法
從unstable/testing進(jìn)行升級(jí)時(shí)可能出現(xiàn)升級(jí)Debian系統(tǒng), 節(jié) 5.3中提到的軟件包關(guān)聯(lián)問(wèn)題。多數(shù)情況下,是因?yàn)樯?jí)的軟件包所需的新增的關(guān)聯(lián)包沒(méi)有安裝?墒褂萌缦路椒ń鉀Q: 
     # apt-get dist-upgrade
如果這招無(wú)效,可以重復(fù)下面的方法至到問(wèn)題解決: 
     # apt-get upgrade -f         # continue upgrade even after error
     ... 或
     # apt-get dist-upgrade -f    # continue dist-upgrade even after error
一些的確存在問(wèn)題的升級(jí)腳本會(huì)引起持續(xù)出錯(cuò)。最好的解決方法是檢查該軟件包的安裝腳本/var/lib/dpkg/info/packagename.{post-,pre-}{install,removal}然后運(yùn)行: 
     # dpkg --configure -a    # 配置所有未完成安裝的軟件包
如果腳本報(bào)告缺少配置文件,查看一下/etc中相關(guān)的配置文件。如果配置文件有.new擴(kuò)展名(或其它類似的擴(kuò)展名),去掉(mv)它的擴(kuò)展名。 
從unstable/testing進(jìn)行升級(jí)時(shí)可能出現(xiàn)軟件包關(guān)聯(lián)問(wèn)題?捎眠@個(gè)方法智。 
     # apt-get install -f package # 重載壞關(guān)聯(lián)
還可以用equivs包來(lái)解決此類問(wèn)題。參閱/usr/share/doc/equivs/README.Debian and equivs軟件包, 節(jié) 6.5.2。 
6.3.3 使用dpkg救助
如果系統(tǒng)的dselect(APT)受損無(wú)法完成安裝,可使用dpkg來(lái)恢復(fù): 
     # cd /var/cache/apt/archives
     # dpkg -i libc6* libdb2* perl*
     # dpkg -i apt* dpkg* debconf*
     # dpkg -i *  # 直至不再出錯(cuò)
如果軟件包丟失,用下述方法從鏡像源下載: 
     # mc            # use "FTP link" pointing to Debian FTP server
現(xiàn)在,在HTTP/FTP服務(wù)器上,軟件包的真正位置不再是傳統(tǒng)的/dist目錄而是新的/pool目錄。(參閱pool目錄, 節(jié) 2.1.10) 
然后開(kāi)始安裝: 
     # dpkg -i /var/cache/apt/archives/packagefile.deb
對(duì)于壞關(guān)聯(lián),可這樣解決: 
     # dpkg --ignore-depends=package1,... -i packagefile.deb
     # dpkg --force-depends -i packagefile.deb
     # dpkg --force-depends --purge package
     # dpkg --force-confmiss -i packagefile.deb # Install missing conffile
6.3.4 恢復(fù)軟件包選擇狀態(tài)的數(shù)據(jù)
如果/var/lib/dpkg/status因?yàn)槟撤N原因壞掉了,Debian系統(tǒng)將會(huì)完全丟失軟件包選擇狀態(tài)的數(shù)據(jù)。趕快到/var/lib/dpkg/status-old或/var/backups/dpkg.status.*下找找舊的/var/lib/dpkg/status文件。 
將/var/backups/放在其它的分區(qū)是個(gè)好習(xí)慣,因?yàn)樵撃夸洶嗽S多非常重要的系統(tǒng)數(shù)據(jù)。 
如果舊的/var/lib/dpkg/status文件也壞了,仍可以從/usr/share/doc/下的目錄進(jìn)行恢復(fù)這些信息。 
     # ls /usr/share/doc | \
       grep -v [A-Z] | \
       grep -v '^texmf$' | \
       grep -v '^debian$' | \
       awk '{print $1 " install"}' | \
       dpkg --set-selections
     # dselect --expert # reinstall system, de-select as needed
6.3.5 /var被刪除后如何恢復(fù)系統(tǒng)
/var目錄包含著定時(shí)更新的數(shù)據(jù)如mail,它們很容易遭破壞。將目錄放到別的分區(qū)可降低風(fēng)險(xiǎn),如果最壞的事情發(fā)生了,可以通過(guò)重建/var目錄來(lái)挽救Debian系統(tǒng)。 
從相同或舊版本的最簡(jiǎn)Debian系統(tǒng)中取得/var目錄的內(nèi)容框架,例如var.tar.gz,然后它放入受損系統(tǒng)的root目錄,接著 
     # cd /
     # mv var var-old      # 如果剩有有用內(nèi)容
     # tar xvzf var.tar.gz # 使用Woody框架文件
     # aptitude            # 或用dselect
上述步驟可使系統(tǒng)恢復(fù)工作。使用恢復(fù)軟件包選擇狀態(tài)的數(shù)據(jù), 節(jié) 6.3.4中描述的技術(shù)加速軟件包選擇數(shù)據(jù)的恢復(fù)。([FIXME]:該過(guò)程需要更多的實(shí)踐來(lái)檢驗(yàn)) 
6.3.6 為無(wú)法啟動(dòng)的系統(tǒng)安裝軟件包
使用Debian急救軟盤(pán)/CD或從多啟動(dòng)Linux系統(tǒng)其它分區(qū)啟動(dòng)。 See 啟動(dòng)系統(tǒng), 節(jié) 8.1. 將無(wú)法啟動(dòng)的系統(tǒng)掛載到/target并使用dpkg的chroot安裝模式。 
     # dpkg --root /target -i packagefile.deb
接下來(lái)就可以著手配置并解決問(wèn)題。 
如是只是由于lilo損壞而造系統(tǒng)無(wú)法啟動(dòng),可使用標(biāo)準(zhǔn)Debian急救盤(pán)啟動(dòng)。假設(shè)你的root分區(qū)位于/dev/hda12且想使用runlevel 3,在啟動(dòng)提示符輸入: 
     boot: rescue root=/dev/hda12 3
這樣,你就可以使用軟盤(pán)中內(nèi)核啟動(dòng)系統(tǒng),新系統(tǒng)的功能基本齊全。(可能丟失某些內(nèi)核特性或模塊) 
6.3.7 如果dpkg命令出錯(cuò)該怎么辦
如果dpkg損壞就不能安裝任何.deb文件。下面的操作可幫助你修復(fù)這種狀況。(在第一行,你可將“l(fā)inks”替換成你喜歡的瀏覽器。) 
     $ links http://http.us.debian.org/debian/pool/main/d/dpkg/
       ... 下載完好的dpkg_version_arch.deb
     $ su
     password: *****
     # ar x dpkg_version_arch.deb
     # mv data.tar.gz /data.tar.gz
     # cd /
     # tar xzfv data.tar.gz
對(duì)i386,亦可用http://packages.debian.org/dpkg作為URL。 
6.4 Debian必殺技
有了這些命令的啟迪,你將會(huì)從無(wú)休止的升級(jí)沖突的地獄中解放出來(lái),達(dá)到Debian天堂。 :-) 
6.4.1 文件信息
查找特定文件所屬的軟件包: 
     $ dpkg {-S|--search} pattern # search for pattern in installed packages
     $ zgrep -e pattern /local/copy/of/debian/woody/Contents-i386.gz
                  # find filename-pattern of files in the debian archive
或使用專門的軟件包命令: 
     # apt-get install dlocate  
                      # conflicts with slocate (secure version of locate)
     $ dlocate filename         # fast alternative to dpkg -L and dpkg -S
     ...
     # apt-get install auto-apt # on-demand package installation tool
     # auto-apt update          # create db file for auto-apt
     $ auto-apt search pattern  
                     # search for pattern in all packages, installed or not
6.4.2 軟件包信息
搜索并顯示包文件的信息。編輯/etc/apt/sources.list,讓APT指向正確的包文件。如果想了解testing/unstable中的相應(yīng)軟件包與當(dāng)前系統(tǒng)安裝的軟件包有何差別,使用apt-cache policy—更好。 
     # apt-get   check           # 更新緩沖區(qū)并檢查損壞的軟件包
     $ apt-cache search  pattern # 按文本描述搜索軟件包
     $ apt-cache policy  package # 軟件包的priority/dists信息
     $ apt-cache show -a package # 顯示所有dists中軟件包描述信息
     $ apt-cache showsrc package # 顯示相應(yīng)源碼包的信息
     $ apt-cache showpkg package # 軟件包調(diào)試信息
     # dpkg  --audit|-C          # 搜索未完成安裝的軟件包
     $ dpkg {-s|--status} package ... # 已安裝軟件包描述
     $ dpkg -l package ...       # 已安裝軟件包的狀態(tài)(每個(gè)占一行)
     $ dpkg -L package ...       # 列出軟件包安裝的文件的名稱
Woody發(fā)布版沒(méi)有為apt-cache showsrc建檔,但該命令可用:) 
你也這可這樣查看軟件包信息(我用mc瀏覽): 
     /var/lib/apt/lists/*
     /var/lib/dpkg/available
比較下面的文件可以確切了解最近的安裝過(guò)程對(duì)系統(tǒng)造成了那些改變。 
     /var/lib/dpkg/status
     /var/backups/dpkg.status*
6.4.3 使用APT進(jìn)行全自動(dòng)系統(tǒng)安裝
進(jìn)行全自動(dòng)安裝,要在/etc/apt/apt.conf中加上一行: 
     Dpkg::Options {"--force-confold";}
另一種等階的方法是運(yùn)行apt-get -q -y packagename。這種方法可能產(chǎn)生嚴(yán)重的負(fù)作用,所以使用起來(lái)要小心。參閱apt.conf(5)和dpkg(1)。 
安裝完畢以后,可以用重新配置已安裝軟件包, 節(jié) 6.4.4中的方法配置特定的軟件包。 
6.4.4 重新配置已安裝軟件包
使用下列方法重新配置已安裝軟件包。 
     # dpkg-reconfigure --priority=medium package [...]
     # dpkg-reconfigure --all   # 重新配置所有的軟件包
     # dpkg-reconfigure locales # 生成別的locales
     # dpkg-reconfigure --p=low xserver-xfree86 # 重新配置X服務(wù)器
如果你想永久改變debconf對(duì)話框模式,可這么做。 
某些程序用于生成特殊的配置腳本。 
     apt-setup     - 創(chuàng)建/etc/apt/sources.list
     install-mbr   - 安裝主引導(dǎo)(Master Boot Record)管理器
     tzconfig      - 設(shè)定本地時(shí)間
     gpmconfig     - 設(shè)置gpm鼠標(biāo)daemon
     sambaconfig   - 在Potato中配置Samba(Woody使用debconf來(lái)配置)
     eximconfig    - 配置Exim (MTA)
     texconfig     - 配置teTeX
     apacheconfig  - 配置Apache (httpd)
     cvsconfig     - 配置CVS
     sndconfig     - 配置聲音系統(tǒng)
     ...
     update-alternatives - 設(shè)定默認(rèn)啟動(dòng)命令,例如設(shè)定vi啟動(dòng)vim
     update-rc.d         - System-V init腳本管理工具
     update-menus        - Debian菜單系統(tǒng)
     ...
6.4.5 刪除軟件包
刪除軟件包但保留其配置文件: 
     # apt-get remove package ...
     # dpkg  --remove package ...
刪除軟件包并刪除配置文件: 
     # apt-get remove --purge package ...
     # dpkg    --purge        package ...
6.4.6 阻止舊軟件包升級(jí)
舉個(gè)例子,要阻止libc6和libc6-dev通過(guò)dselect或使用apt-get -u upgrade package命令升級(jí),可執(zhí)行: 
     # echo -e "libc6 hold\nlibc6-dev hold" | dpkg --set-selections
這種方法不影響apt-get -u install package命令操作。要阻止apt-get -u upgrade package或apt-get -u dist-upgrade命令對(duì)軟件包執(zhí)行的強(qiáng)制自動(dòng)降級(jí)行為,可在/etc/apt/preferences中加上: 
     Package: libc6
     Pin: release a=stable
     Pin-Priority: 2000
這里“Package:”后不能使用通配符如“l(fā)ibc6*”,如果要保持所有與glibc源碼包相關(guān)的二進(jìn)制包的版本同步,可以明確的列出它們。 
該命令可以顯示處于“阻止”狀態(tài)的軟件包: 
     dpkg --get-selections "*"|grep -e "hold$"
6.4.7 stable/testing/unstable混合系統(tǒng)
apt-show-versions可以列出發(fā)行版中可用軟件包的版本。 
     $ apt-show-versions | fgrep /testing | wc
     ... 你有多少testing軟件包
     $ apt-show-versions -u
     ... 列出可升級(jí)的軟件包
     $ apt-get install `apt-show-versions -u -b | fgrep /unstable`
     ... 將所有unstable軟件包升級(jí)到最新版本
6.4.8 刪除緩存包文件
使用APT安裝軟件包會(huì)在/var/cache/apt/archives目錄留下緩存文件,要清除這些文件可使用: 
     # apt-get autoclean # removes only useless package files
     # apt-get clean     # removes all cached package files
6.4.9 記錄/拷貝系統(tǒng)配置
對(duì)軟件包選擇情況進(jìn)行本地備份: 
     $ dpkg --get-selections "*" >myselections   # or use \*
“*”使myselections包含那些被指定“完全刪除(purge)”的文件。 
你可將這個(gè)文件發(fā)送到另一臺(tái)電腦并在那兒按文件中的選擇進(jìn)行軟件包安裝。 
     # dselect update
     # dpkg --set-selections  override
     # editor override # adjust priority and section
     # dpkg-scanpackages pool override /usr/local/ \
        > dists/unstable/main/binary-i386/Packages
     # cat > dists/unstable/main/Release > /etc/apt/sources.list
還可以這樣快速創(chuàng)建一個(gè)本地deb倉(cāng)庫(kù): 
     # apt-get install dpkg-dev
     # mkdir /usr/local/debian
     # mv /some/where/package.deb /usr/local/debian
     # dpkg-scanpackages /usr/local/debian /dev/null | \
       gzip - > /usr/local/debian/Packages.gz
     #  echo "deb file:/usr/local/debian ./" >> /etc/apt/sources.list
在/etc/apt/sources.list中設(shè)置相應(yīng)鏡像源入口地址,就可以通過(guò)HTTP或FTP方式遠(yuǎn)程訪問(wèn)存放在其中的包文件了。 
6.4.12 轉(zhuǎn)化或安裝外來(lái)二進(jìn)制軟件包
alien可將其它格式的二進(jìn)制軟件包如Redhat的rpm、Stampede的slp、Slackware的tgz和Solaris的pkg等轉(zhuǎn)化成Debian的deb格式軟件包,如果你想在自己的系統(tǒng)上使用別的Linux發(fā)行版中的軟件包,可使用alien將它轉(zhuǎn)化成系統(tǒng)首選的軟件包格式后安裝。alien還支持LSB的軟件包。 
6.4.13 校驗(yàn)已安裝軟件包
debsums可以校驗(yàn)已安裝軟件包的MD5編碼,對(duì)某些軟件包沒(méi)有可用的MD5編碼,系統(tǒng)管理員可使用一個(gè)臨時(shí)的解決辦法: 
     # cat >>/etc/apt/apt.conf.d/90debsums
     DPkg::Post-Install-Pkgs {"xargs /usr/bin/debsums -sg";};
     ^D
per Joerg Wendland  (untested). 
6.4.14 優(yōu)化sources.list
簡(jiǎn)而言之,我嘗試過(guò)用各種優(yōu)化方法來(lái)創(chuàng)建sources.list,但任何一種方法對(duì)我這個(gè)住在美國(guó)的人來(lái)說(shuō)都沒(méi)有明顯的改善。最后我還是用apt-setup手工選擇近一點(diǎn)的站點(diǎn)。 
apt-spy會(huì)根據(jù)站點(diǎn)回應(yīng)時(shí)間和帶寬自動(dòng)創(chuàng)建sources.list。netselect-apt會(huì)創(chuàng)建一個(gè)更完整的sources.list文件,但它使用更落后的方法來(lái)選擇鏡像站點(diǎn)(比較ping time)。 
     # apt-get install apt-spy
     # cd /etc/apt ; mv sources.list sources.list.org
     # apt-spy -d testing -l sources.apt
6.5 其它Debian特性
6.5.1 dpkg-divert命令
使用文件轉(zhuǎn)移(diversions)的方法可以強(qiáng)令dpkg將文件安裝到轉(zhuǎn)移目錄而非默認(rèn)目錄。對(duì)于某個(gè)引起沖突的文件,可以在Debian軟件包腳本中使用Diversions將它安裝到別的目錄。系統(tǒng)管理員還可以使用diversion來(lái)重載軟件包配置文件,或者用來(lái)保留某些舊配置文件(這些文件沒(méi)有在conffiles中登記)當(dāng)安裝新版軟件時(shí)這些文件會(huì)被覆蓋。(參閱保存本地設(shè)置, 節(jié) 2.2.4)。 
     # dpkg-divert [--add]  filename # add "diversion"
     # dpkg-divert --remove filename # remove "diversion"
記住,不到萬(wàn)不得已不要使用dpkg-divert。 
6.5.2 equivs軟件包
如果你從源碼編譯程序,最好將它做成本地Debian化軟件包(*.deb)。最新的方法是使用equivs。 
     Package: equivs
     Priority: extra
     Section: admin
     Description: Circumventing Debian package dependencies
      This is a dummy package which can be used to create Debian
      packages, which only contain dependency information.
6.5.3 自選命令
想用vi命令啟動(dòng)vim,可使用update-alternatives來(lái)定義: 
     # update-alternatives --display vi
     ...
     # update-alternatives --config vi
       Selection    Command
     -----------------------------------------------
           1        /usr/bin/elvis-tiny
           2        /usr/bin/vim
     *+    3        /usr/bin/nvi
     
     Enter to keep the default
  • , or type selection number: 2
    Debian自選命令設(shè)定系統(tǒng)中的這些項(xiàng)目,都是/etc/alternatives下的鏈接文件。 
    想設(shè)置你喜愛(ài)的X window環(huán)境,執(zhí)行update-alternatives來(lái)指定/usr/bin/x-session-manager和/usr/bin/x-window-manager。詳情參閱自定義X會(huì)話, 節(jié) 9.4.5.1。 
    /bin/sh是指向/bin/bash或/bin/dash的鏈接。想兼容舊的Bash腳本,使用/bin/bash比較保險(xiǎn),但更好還是使用/bin/dash,因?yàn)樗螾OSIX標(biāo)準(zhǔn)。升級(jí)到2.4版Linux內(nèi)核,系統(tǒng)一般將它設(shè)置為/bin/dash。 
    6.5.4 System-V init文件和運(yùn)行級(jí)別
    可在/etc/inittab中設(shè)定系統(tǒng)啟動(dòng)的默認(rèn)運(yùn)行級(jí)別(runlevel)。 
    不同于其它的發(fā)行版,Debian將運(yùn)行級(jí)別的管理職責(zé)完全賦予系統(tǒng)管理員。Debian更傾向于使用update-rc.d腳本來(lái)管理它那System-V風(fēng)格的init。 
    下面的命令表示,按優(yōu)先級(jí)數(shù)字20(normal)所指定的次序,分別在runlevel 1、2、3中啟動(dòng)/etc/init.d/name,在runlevel 4、5中停止它們: 
         # update-rc.d name start 20 1 2 3 . stop 20 4 5 .
    要?jiǎng)h除init.d腳本中存在的符號(hào)鏈接可執(zhí)行: 
         # update-rc.d -f name remove
    要編輯運(yùn)行級(jí)別,我通常在mc中用Alt-Enter拷貝鏈接名,然后在shell提示符下使用mv命令手工編輯,例如: 
         # mv S99xdm K99xdm # 禁用xdm (X display manager)
    有時(shí)為了進(jìn)行臨時(shí)調(diào)試,我甚至在init.d腳本的開(kāi)頭加入exit 0來(lái)禁用一個(gè)daemon,反正它們都在conffiles登記過(guò)。 
    6.5.5 停止daemon服務(wù)
    Debian發(fā)行版非常注重系統(tǒng)安全,并期望系統(tǒng)管理員能擔(dān)此重任。它將系統(tǒng)的易用性放在了第二位,許多daemon服務(wù)都定位在最高安全級(jí)別,因而,默認(rèn)安裝狀態(tài)下系統(tǒng)只啟動(dòng)最少的(甚至沒(méi)有)可用的服務(wù)。 
    如果拿不定把握(有關(guān)Exim、DHCP...),可執(zhí)行ps aux或檢查/etc/init.d/*和/etc/inetd.conf下的內(nèi)容,還可以使用通過(guò)PAM和login實(shí)現(xiàn)訪問(wèn)權(quán)限管理, 節(jié) 9.2.1中提到的方法檢查/etc/hosts.deny。pidof命令也很有用(參閱pidof(8)) 
    在新版的Debian中,默認(rèn)狀態(tài)下X11不允許TCP/IP(遠(yuǎn)程)連接。參閱X的TCP/IP連接, 節(jié) 9.4.6,使用SSH進(jìn)行X傳送也是禁用的,參閱X遠(yuǎn)程聯(lián)接:ssh, 節(jié) 9.4.8。 
     原文地址 http://debian.linuxsir.org/book/reference/lyoo/ch-package.html
                   

    本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u3/95834/showart_1917849.html
  • 您需要登錄后才可以回帖 登錄 | 注冊(cè)

    本版積分規(guī)則 發(fā)表回復(fù)

      

    北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年舉報(bào)專區(qū)
    中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
    感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP