[轉貼]Debian APT HOWTO

Debian 有很多實用的工具如: apt 系列 、 update- 系列,但是我們卻常常忽略了!這個版就是要大家一起來分享您在使用 debian 特殊指令的經驗!請大家共襄盛舉囉!注意不要在此提問問題喔!

[轉貼]Debian APT HOWTO

文章moto » 週二 5月 20, 2003 5:20 pm

文章來源:

http://www.linuxeden.com/edu/docindex.p ... gory=howto

附註:

我轉成繁體,並且做了簡單的編輯。

Debian APT HOWTO 第二章 基礎設置
APT HOWTO
第二章 基礎設置

2.1 /etc/apt/sources.list文件
=============================
作為操作的一部分,APT使用一個文件列出可獲得軟件包的鏡像站點地址,這個文
件就是/etc/apt/sources.list。

文件中的各項信息通常按如下格式列出:

deb http://site.http.org/debian distribution section1 section2 section3
deb-src http://site.http.org/debian distribution section1 section2 section3

當然,上面所列的地址項都是假設的不可用的。每行的第一個單詞deb或deb-src,
描述了文件類型,目錄中包含的是二進制軟件包(deb),即我們通常使用的已編
譯好的軟件包;或包含的是源碼包(deb-src),源碼包包含源程序編碼、Debian
管理文件(.dsc)和“Debian化”該程序所做更改的記錄文件diff.gz。

通常可以看出如下Debian默認的sources.list:

# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
deb http://http.us.debian.org/debian stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib
non-free
deb http://security.debian.org stable/updates main contrib non-free

# Uncomment if you want the apt-get source function to work
#deb-src http://http.us.debian.org/debian stable main contrib non-free
#deb-src http://non-us.debian.org/debian-non-US stable non-US

這些是Debian基本安裝所需的軟件包來源地址,第一個deb行指向官方正式軟件包
來源,第二個deb行指向non-US軟件包來源,第三deb行指向Debian安全補丁更新包
來源。

最後兩行被注釋掉了(在句首加#),所以apt-get將忽略它們。這些是deb-src行
指向Debian源碼包來源,如果你常下載程序源碼來測試或重編譯,可取消對它們的
注釋。

/etc/apt/sources.list文件可包含多種類型的地址,APT知道如何處理這些不同的
地址類型:http,ftp,file(本地文件,例如:一個加載了ISO9600文件系統的目
錄)和ssh。

別忘了在修改完/etc/apt/sources.list文件後運行apt-get使更改生效。你必須完
成這個步驟,以便讓APT從你指定的地方獲得新的軟件包列表。



2.2 如何在本地使用APT
=====================
有時你硬盤上有許多軟件包,你會希望通過APT來安裝它們,以便讓它去處理軟件
包間復雜的依賴關系。

想這麼做,就建一個目錄,將所有你想要安裝的.deb文件放入其中。例如:

mkdir /root/debs

你可以使用一個重載文件(override file)直接去修改軟件包中管理文件中的定
義(definitions),使之符合你的軟件儲藏庫管理規則,在這個重載文件中,你
可能希望定義一些選項來重載那些軟件包的定義,如下所示:

package priority section

package是軟件包的名稱,priority有三個級別low,medium或high,section是軟
件包所屬的section,重載文件可任意命名,文件名將在接下來的步驟中做為參數
傳遞給dpkg-scanpackages。如果你不想寫重載文件,只需在調用dpkg-
scanpackages時使用/dev/null就行了。

仍是在/root目錄下執行:

dpkg-scanpackages debs file | gzip > debs/Packages.gz

在上述的命令行中,file為重載文件,命令生成一個Packages.gz文件,它包含了
APT所需的各種軟件包信息,要使用這些軟件包,在sources.list中加上:

deb file:/root debs/

完成了上面的工作,就可以通常那樣使用APT命令操作這些軟件包了。你可以使用
同樣的方法生成一個源碼庫,但請記住你需要將.orig.tar.gz文件、.dsc文件和
.diff.gz文件包含在目錄中,要生成Source.gz文件而不是Packages.gz文件。所使
用的命令也不相同,要使用dpkg-scansources,命令如下所示:

dpkg-scansources debs | gzip > debs/Sources.gz

注意dpkg-scansource不需要重載文件,在sources.list中的引用法是:

deb-src file:/root debs/



2.3 選擇最佳鏡像發布站點加入source.list文件:netselect,netselect-apt
=====================================================================
一個新用戶經常問到的問題:“該將哪個Debian鏡像發布站點加入source.list文
件?”。有很多方法來選擇鏡像發布站點,專家們可能會寫一個腳本去測試不同站
點的ping time,不過有一個現成的程序可以幫你:netselect。

安裝netselect

apt-get install netselect

不帶參數運行它時會顯示它的幫助信息。運行它時加上以空格分隔的鏡像主機列
表,它會返回一個分值和列表中的一個主機名。這個分值通過評估ping time和
hops number(一個網絡請求報文到達目標主機所經過的轉發主機的個數)得出,
它與鏡像站點預計下載速度成反比(數值越小越好)。返回的主機名是主機列表中
得分最低的那個(查看列表中所以主機的得分情況可使用-vv選項)。看出下的例子:

bash$ netselect ftp.debian.org http.us.debian.org ftp.at.debian.org
download.unesp.br ftp.debian.org.br
365 ftp.debian.org.br
bash$

它表示,在netselect後列出的所有主機中,ftp.debian.org.br是下載速度最快的
主機,其得分為365。(注意!!這是在我電腦上的測試結果,不同的網絡節點網
速會大不相同,所以這個分值不一定適用于其它電腦)

現在將netselect找到的連接速度最快的鏡像站點加入/etc/apt/sources.list文件
(see The /etc/apt/sources.list file, Section 2.1)and follow the tips
in Managing packages, Chapter 3.

注意:鏡像站點列表通常包含在文件http://www.debian.org/mirror/mirrors_full。

從0.3版開始,netselect軟件包包含了netselect-apt腳本,它使上述操作自動完
成。只需將發布目錄樹做為參數(默認為stable)輸入,sources.list文件就會生
成速度最快的main和non-US鏡像站點列表,並保存在當前目錄下。下面的例子生成
一個包含stable發布鏡像站點列表的sources.list

bash$ ls sources.list
ls: sources.list: File or directory not found
bash$ netselect-apt stable
(...)
bash$ ls -l sources.list
sources.list
bash$

記住:sources.list生成在當前目錄下,必須將其移至/etc/apt目錄。

Then, follow the tips in Managing packages, Chapter 3.



2.4 將CD-ROM加入source.list文件
===============================
如果你用APT從CD-ROM上安裝及升級軟件包,你可以將它加入到sources.list文件
中。完成該操作,可使用apt-cdrom程序:

apt-cdrom add

將Debian光盤放入光驅,它將加載光盤目錄,並在光盤上查找軟件包信息。如果你
的光驅需要額外設置,可使用以下選項:

-h - program help
-d directory - CD-ROM mount point
-r - Rename a recognized CD-ROM
-m - No mounting
-f - Fast mode, don't check package files
-a - Thorough scan mode

例如:

apt-cdrom -d /home/kov/mycdrom add

你還可以掃描一張光盤,但不將其加入列表:

apt-cdrom ident

注意,只有當你在系統的/etc/fstab中正確設置了光驅後,該程序才會工作。


Debian APT HOWTO 第三章 軟件包管理
APT HOWTO
第三章 軟件包管理

3.1 更新可用軟件包列表
======================
軟件包管理系統使用一個私有數據庫跟蹤列表中軟件包的當前狀態:已安裝、未安
裝或可安裝。apt-get通過該數據庫來確定如何安裝用戶想用的軟件包以及正常運
行軟件包所必須的其它關聯包。

你可以使用apt-get update來更新數據庫列表。這個命令將掃描
/etc/apt/sources.list文件中所指路徑中的軟件包列表文件。有關該列表文件的
更多信息請查閱 第二章 /etc/apt/source.list文件。

定時運行這個程序是個好主意,它將使你和你的系統獲得最新的軟件包更新和安全
更新等信息。



3.2 安裝軟件包
==============
現在,終于到了你一直期待的階段!準備好了sources.list和最新版的的可用軟件
包,你所需做的就是運行apt-get來安裝你渴望已久的軟件了。例如,你可以這樣:

apt-get install xchat

APT會掃描它的數據庫找到最新的版本的軟件包,並將它從sources.list中所指的
地方下載到本地。如果該軟件包需要其它軟件包才能正常運行──如本例一樣──APT
會做關聯性檢查並自動安裝所關聯軟件包。如下所示:

[root]@[/] # apt-get install nautilus
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
bonobo libmedusa0 libnautilus0
The following NEW packages will be installed:
bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 0 to remove and 1 not upgraded.
Need to get 8329kB of archives. After unpacking 17.2MB will be used.
Do you want to continue? [Y/n]

nautilus軟件包需要引用共享函數庫,因此APT會從鏡像源處下載相關共享函數
庫,如果你在apt-get命令行中手動指定了這些共享函數庫的名稱,APT會默認為你
要安裝所有這些軟件包。

也就是說APT只會在安裝那些沒有在命令行中指定的軟件包時提示你進行確認。

下列apt-get選項也許對你有用

-h This help text.
-d Download only - do NOT install or unpack archives
-f Attempt to continue if the integrity check fails
-s No-act. Perform ordering simulation
-y Assume Yes to all queries and do not prompt
-u Show a list of upgraded packages as well

可以用一條命令安裝多個軟件包。包文件從網絡上下載到本地
/var/cache/apt/archives目錄,稍後再安裝。

你可以用同樣的命令行刪除指定軟件包,只需在軟件包名稱後緊跟一個“-”,如下
所示:

[root]@[/] # apt-get install nautilus gnome-panel-
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
bonobo libmedusa0 libnautilus0
The following packages will be REMOVED:
gnome-applets gnome-panel gnome-panel-data gnome-session
The following NEW packages will be installed:
bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
Need to get 8329kB of archives. After unpacking 2594kB will be used.
Do you want to continue? [Y/n]

有關刪除軟件包的更多詳細信息,參閱 3.3 移除軟件包。

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

[root]@[/] # apt-get --reinstall install gdm
Reading Package Lists... Done
Building Dependency Tree... Done
0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1
not upgraded.
Need to get 0B/182kB of archives. After unpacking 0B will be used.
Do you want to continue? [Y/n]

本文檔寫作時所參考的APT版本為0.5.3,這個版本還屬于“unstable”(sid)階
段。如是你安裝了這個版本,你可以在系統配置中使用新增的功能:你可以用apt-
get install package/distribution來安裝指定發布版中的軟件包,或者用apt-
get install package=version,如下所示:

apt-get install nautilus/unstable

它將為你安裝“unstable”發布版中的nautilus軟件包,即使你當前運行的是
“stable”版本。命令中“distribution”選項的可用參數值為:stable,testing,
unstable。

在處理關聯問題時,你可能更樂意使用-t開關來選擇目標發布版,讓apt-get幫你
考慮使用哪個發布版。

重要信息:最新版的Debian軟件包首先會上傳到“unstable”發布版中,這個發布版
包含了軟件包所有更改階段,無論是小修小補還是影響到眾多軟件包乃至整個系統
的重大修改。所以,新手和那些強調系統穩定性的用戶不會使用這個發布版。

“testing”發布版比起“unstable”發布版,多注重了些系統穩定性,但正式運行的
系統應當使用“stable”發布版。



3.3 移除軟件包
==============
如果你不再使用某些軟件包,你可以用APT將其從系統中刪除。要刪除軟件包只需
輸入:apt-get remove package。如下所示:

[root]@[/] # apt-get remove gnome-panel
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
gnome-applets gnome-panel gnome-panel-data gnome-session
0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
Need to get 0B of archives. After unpacking 14.6MB will be freed.
Do you want to continue? [Y/n]

由上例可知,APT會關注那些與被刪除的軟件包有依賴關系的軟件包。使用APT刪除
一個軟件包將會連帶刪除那些與該軟件包有依賴關系的軟件包。

上例中運行apt-get會刪除指定軟件包以及與之有依賴關系的軟件包,但它們的配
置文件,如果有的話,會完好無損地保留在系統裡。如果想徹底刪除這些包及其配
置文件,運行:

[root]@[/] # apt-get --purge remove gnome-panel
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
Need to get 0B of archives. After unpacking 14.6MB will be freed.
Do you want to continue? [Y/n]

注意:軟件包名字後面的*表示該軟件包所有的配置文件也將被刪除。

就象安裝軟件時一樣,你可以在刪除命令中用一個符號來指定安裝某個軟件包。在
刪除軟件包時,如果你在軟件包名字後面緊跟一個“+”,那麼該軟件包就會被安裝
而不是刪除。

[root]@[/] # apt-get --purge remove gnome-panel nautilus+
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
bonobo libmedusa0 libnautilus0 nautilus
The following packages will be REMOVED:
gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
The following NEW packages will be installed:
bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
Need to get 8329kB of archives. After unpacking 2594kB will be used.
Do you want to continue? [Y/n]

注意,apt-get列出了那些將要被安裝的關聯軟件包(即保證該軟件包正常運行的
其它軟件包)和將要被刪除關聯軟件包,然後,再次列出了將要被安裝的軟件包。



3.4 更新軟件包
==============
軟件包更新是APT最成功的特點。只需一條命令即可完成更新:apt-get upgrade。
你可以使用這條命令從相同版本號的發布版中更新軟件包,也可以從新版本號的發
布版中更新軟件包,盡管實現後一種更新的首選命令為apt-get dist-upgrade;實
情參閱 3.5升級到新版本。

在運行該命令時加上-u選項很有用。這個選項讓APT顯示完整的可更新軟件包列
表。不加這個選項,你就只能盲目地更新。APT會下載每個軟件包的最新更新版
本,然後以合理的次序安裝它們。注意在運行該命令前應先運行apt-get update更
新數據庫。有關詳情參閱 3.1更新可用軟件包列表。看看這個例子:

[root]@[/] # apt-get -u upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages have been kept back
cpp gcc lilo
The following packages will be upgraded
adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent
ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev
libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0
libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc
29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
Do you want to continue? [Y/n]

整個更新過程非常簡單。注意在本例中頭幾行,apt-get報告有些軟件包的更新被
阻止(kept back),這表明這些軟件包的更新版本因故無法安裝,可能的原因有
關聯不同步(當前沒有供下載的新版本關聯包)或關聯擴展(需要安裝新的關聯包
以配合新版軟件包)。

對于第一種原因沒有很好的解決方法,對于第二次原因,運行apt-get intall安裝
所需的新關聯包就可以。另一個更好的解決方法就是使用dist-upgrade。詳情參閱
3.5升級到新版本。



3.5 升級到新版本
================
APT的絕活就是讓你一次就完成整個系統的更新,不論是通過Internet還是通過光
盤文件(購買的碟片或下載的ISO鏡像文件)。

它也可以用來更新尋些改變了關聯關系的軟件包。即如前所述的那些使用apt-get
upgrade時被阻止更新(kept back)的軟件包。

例如,假設你目前使用的Debian為stable revision 0(如woody 3.0 r0,譯者
注),而你購買了revision 3的新版Debian(如woody 3.0 r3,譯者注),你可以
使用APT從新光盤上升級你的系統。使用apt-cdrom(參閱 2.4將CD-ROM加入
source.list文件)將光盤加載到/etc/apt/sources.list中,然後運行apt-get
dist-upgrade。

請注意,APT總是搜索最新版本的軟件包,因此,如果一個軟件包在你的
/etc/apt/sources.list中所列的版本比光盤上所列的版本要新,那麼APT會按照
sources.list文件所指的地址下載這個軟件包而不是使用光盤上的軟件包。

在 3.4更新軟件包 中我們舉了個例子,我們看到有些包被阻止更新(kept
back),現在我們就用dist-upgrade方法來解決這個問題:

[root]@[/] # apt-get -u dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following NEW packages will be installed:
cpp-2.95 cron exim gcc-2.95 libident libopenldap-runtime libopenldap1
libpcre2 logrotate mailx
The following packages have been kept back
lilo
The following packages will be upgraded
adduser ae apt autoconf cpp debhelper dpkg-dev esound esound-common ftp gcc
indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0
libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev
liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit
procps psmisc
31 packages upgraded, 10 newly installed, 0 to remove and 1 not upgraded.
Need to get 0B/7098kB of archives. After unpacking 3118kB will be used.
Do you want to continue? [Y/n]

注意現在那些軟件包將會被更新,那些新的關聯軟件包也會被安裝。但是lilo仍被
阻止更新,可能還存在一些比建立新關聯更棘手的問題,我們通過如下方法確定問
題所在:

[root]@[/] # apt-get -u install lilo
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
logrotate mailx
The following packages will be REMOVED:
debconf-tiny
The following NEW packages will be installed:
cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
logrotate mailx
The following packages will be upgraded
lilo
1 packages upgraded, 9 newly installed, 1 to remove and 31 not upgraded.
Need to get 225kB/1179kB of archives. After unpacking 2659kB will be used.
Do you want to continue? [Y/n]

查看上述提示信息可知,lilo與debconf-tiny包產生了一個新衝突,這表明除非刪
除debconf-tiny,否則將無法更新lilo。

想知道該保留或刪除哪些軟件包,你可以使用:

# apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Starting
Starting 2
Investigating python1.5
Package python1.5 has broken dep on python1.5-base
Considering python1.5-base 0 as a solution to python1.5 0
Holding Back python1.5 rather than change python1.5-base
Investigating python1.5-dev
Package python1.5-dev has broken dep on python1.5
Considering python1.5 0 as a solution to python1.5-dev 0
Holding Back python1.5-dev rather than change python1.5
Try to Re-Instate python1.5-dev
Done
Done
The following packages have been kept back
gs python1.5-dev
0 packages upgraded, 0 newly installed, 0 to remove and 2 not upgraded.

現在,你很容易就知道不能安裝python1.5-dev軟件包是因為無法滿足另一個軟件
包python1.5的關聯要求。



3.6 移除無用軟件包文件:apt-get clean and autoclean
===================================================
當你需要安裝某個軟件包時,APT從/etc/apt/sources.list中所列的主機下載所需
的文件,將它們保存到本機軟件庫(/var/cache/apt/archives/),然後開始安
裝,參閱 3.2 安裝軟件包。

本地軟件庫會不斷膨脹佔用大量硬盤空間,幸運的是,APT提供了工具來管理本地
軟件庫:apt-get的clean方法和autoclean方法。

apt-get clean將刪除/var/cache/apt/archives目錄和
/var/cache/apt/archives/partial目錄下的所有文件,除了被鎖定的文件。這樣
以來,當你需要再次安裝某個軟件包時,APT將重新下載它。

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

下面這個例子顯示了apt-get autoclean如何工作:

# ls /var/cache/apt/archives/logrotate* /var/cache/apt/archives/gpm*
logrotate_3.5.9-7_i386.deb
logrotate_3.5.9-8_i386.deb
gpm_1.19.6-11_i386.deb

在/var/cache/apt/archives目錄下有兩個不同版本的logrotate軟件包文件以及一
個gpm軟件包文件。

# apt-show-versions -p logrotate
logrotate/stable uptodate 3.5.9-8
# apt-show-versions -p gpm
gpm/stable upgradeable from 1.19.6-11 to 1.19.6-12

apt-show-versions顯示logrotate_3.5.9-8_i386.deb提供了logrotate的升級版
本,所以logrotate_3.5.9-7_i386.deb沒用了。同樣gpm_1.19.6-11_i386.deb也沒
有用了,因為可以下載該軟件包的更新版本。

# apt-get autoclean
Reading Package Lists... Done
Building Dependency Tree... Done
Del gpm 1.19.6-11 [145kB]
Del logrotate 3.5.9-7 [26.5kB]

總之,apt-get autoclean僅刪除那些過時的文件。參閱 3.9如何從Debian的專用
版本下升級軟件包 獲得更多apt-show-versions相關信息。



3.7 在dselect中操作APT
======================
dselect工具幫助用戶選取想要安裝的Debian軟件包。它有點復雜甚至令人望而生
厭,但經過實踐你就能掌握它恐怖的終端界面。

dselect高級功能之一就是它知道利用Debian軟件包的“推薦”和“建議”能力。
(Debian軟件包有一種能力:推薦或建議系統在安裝自己的同時,安裝別的軟件包
以配合自身的工作,當然這些推薦的軟件包不一定是必須的;而dselect工具可以
識別和利用這個能力,使用dselect時你就能體會到。譯者注)以root身份運行
dselect,進入程序後選擇apt作為連接方式(access)。該步驟不是必須的,但如
果你沒有光驅而且想通過Internet下載安裝軟件包,這是使用dselect的最好方法。

想深入學習dselect的用法,請到Debian網站查閱dselect文檔頁面
http://www.debian.org/doc/ddp

在dselect中選好了軟件包後,運行:

apt-get -u dselect-upgrade

如下例所示:

[root]@[/] # apt-get -u dselect-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
lbxproxy
The following NEW packages will be installed:
bonobo console-tools-libs cpp-3.0 enscript expat fingerd gcc-3.0
gcc-3.0-base icepref klogd libdigest-md5-perl libfnlib0 libft-perl
libgc5-dev libgcc300 libhtml-clean-perl libltdl0-dev libsasl-modules
libstdc++3.0 metamail nethack proftpd-doc psfontmgr python-newt talk tidy
util-linux-locales vacation xbill xplanet-images
The following packages will be upgraded
debian-policy
1 packages upgraded, 30 newly installed, 1 to remove and 0 not upgraded.
Need to get 7140kB of archives. After unpacking 16.3MB will be used.
Do you want to continue? [Y/n]

比較一下我們在相同系統上運行apt-get dist-upgrade時的情形:

[root]@[/] # apt-get -u dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following packages will be upgraded
debian-policy
1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 421kB of archives. After unpacking 25.6kB will be freed.
Do you want to continue? [Y/n]

我們看到在前例中許多軟件包被安裝是其它軟件包“推薦”或“建議”的結果。另外一
些軟件包被安裝或刪除(例如lbxproxy軟件包)是我們通過dselect工具作出的決
定。由此可見dselect與APT結合起來將是一個功能強大的工具。



3.8 如何構建一個混合系統
========================
人們常使用testing發布版,因為它比unstable要穩定同時又比stable時髦。然而
對于那些想運行某些軟件包的最新版本,又不希望將整個系統遷移到unstable發布
版的還有一種選擇:運行一個testing/unstable混合系統。對另一部分保守的用戶
而言,他們可能希望運行stable/testing混合系統。

要實現混合系統,請在/etc/apt/apt.conf中加入下面的語句:

APT::Default-Release "testing";

以後,在從unstable發布版安裝軟件包時,使用-t開關:

# apt-get -t unstable install packagename

別忘了,使用Debian的某個發布版的軟件包時,要將鏡像源加入到
/etc/apt/sources.list文件中。在這個例子中,除了加入testing發布版鏡像源
處,我們還需要加入unstable發布版鏡像源。



3.9 如何從Debian的專用版本下升級軟件包
======================================
apt-show-versions提供了一個安全的途徑,讓那些使用混合系統的用戶放心升級
他們的系統,不必擔心升級會將原來屬于stable的包升級成了unstable包。例如,
這條命令將只升級你的unstable軟件包:

# apt-get install `apt-show-versions -u -b | grep unstable`



3.10 如何維護已安裝軟件包的多個版本(復雜)
==========================================
你可能會遇到這種情況,更改了某個軟件包中的一些文件,但你沒有時間或根本就
不想將這些更改引入到新版本中。或者,你將系統升級到3.0,但仍想繼續使用
Debian 2.2下的某個軟件包。你可以“釘住”(pin)這個版本,這樣它就不會被更
新了。

操作起來十分簡單,你只需編輯/etc/apt/preferences文件。

文件格式很簡單:

Package:
Pin:
Priority:

例如,我對sylpheed軟件包做了某些修改,其版本為0.4.99,我想保留這些修改不
被更新,可加上:

Package: sylpheed
Pin: version 0.4.99*

注意我用了一個 *(星號)。這是一個“通配符”;它表明我希望“釘住”所有以
0.4.99打頭的版本(以防它們被下載並安裝到我機器上。pin控制的是服務器端的
更新軟件包而非本地的已安裝軟件包。譯者注)。因為Debian使用“Debian版本號”
為其軟件包定版本,我不想進行所有這些版本的升級,如果不用通配符,那麼
0.4.99-1版或0.4.99-10版只要一出爐系統就會安裝它們。如果你修改了軟件包,
你一定不希望這麼做。

Priority是可選域;如果沒有特別指定,它的默認值為989。

讓我們來看看pin如何體現優先級(priorty)區別。一個低于0的優先級表示:該
軟件包被禁止安裝;優先級在0到100之間表示:軟件包沒有安裝並且當前也沒有可
用版本,這些軟件包不會出現在供選擇版本列表中;優先級為100表示軟件包已被
安裝──對于這個已安裝的軟件包,如果有一個不同的版本要替換它,那麼替換者的
優先級必須大于100。

優先級在100以上表示軟件包應該被安裝。典型的例子如,某個軟件包的升級補丁
包,任何處于100和1000(包括1000)之間的優先級都表示上述情形。但是,一個
軟件包如果被定為這樣的優先級,它並不會降級已安裝的版本。例如,如果我安裝
了sylpheed 0.5.3並為sylpheed 0.4.99指定了一個優先級為999的pin,那麼由于
要滿足pin的優先級,所以0.4.99軟件包不會被安裝。如果要實現軟件包“降級”,
則需要將pin的優先級定為大于1000。(100<優先級<=1000時,如果存在升級包就
對本機相關包升級,如果本機軟件包比更新包還新就保持不變;優先級>1000時,
服務器端軟件包不論比本機的軟件包新還是舊,均對本機相關軟件包進行更新。譯
者注)

pin可以被用來控制軟件包的修訂版本(version)、發布版本(release)或版本
來源(origin)。

在前面我們已經看到,釘住修訂版本時使用通配符來代替版本號數字,這樣可一次
指定多個版本。

release選項是基于發布版文件(Release file)的,這個文件在本地APT軟件庫中
或安裝光盤上。如果你從本地軟件庫安裝軟件包而軟件庫中又沒有該文件,那麼這
個選項將失效。來看看/var/lib/apt/lists/目錄中發布版文件的內容,發布版包
括這些參數:a(archive),c(components),v(version),o(origin),l
(lable)。

來看一個例子:

Package: *
Pin: release v=2.2*,a=stable,c=main,o=Debian,l=Debian
Priority: 1001

在本例中,我們選擇了version為2.2*的Debian(它可以是2.2r2,2.2r3──這些版
本包含了“point releases”即安全更新和其它非常生要的更新),stable軟件庫,
main類軟件包(非contrib或non-free),版本來源和標簽均為Debian。版本來源
(o=)說明誰制作了這個發布版文件,標簽(l=)說明該發布版的名稱:Debian即
是指Debian自己,Progeny即是指後裔制作者,下面是一個發布版文件的樣例:

$ cat
/var/lib/apt/lists/ftp.debian.org.br_debian_dists_potato_main_binary-i386_Release

Archive: stable
Version: 2.2r3
Component: main
Origin: Debian
Label: Debian
Architecture: i386

Debian APT HOWTO 第四章 幾個非常有用的工具
APT HOWTO
第四章 幾個非常有用的工具

4.1 如何安裝本地編譯的軟件包:equivs
====================================
有時,用戶想使用某些軟件的特殊版本,它們只以源代碼的形式存在,沒有現成的
Debian軟件包。軟件包管理系統在處理這類事務時可能會出問題。假設你想編譯新
版本的郵件服務器,編譯、安裝一切正常,然而,軟件包管理系統並不知道你在系
統中安裝了自己編譯的東西,在Debian中許多基于MTA(Mail Transport Agent 郵
件傳輸代理)的軟件包也不知道這些。

現在是equivs登台的時候了。用它來安裝軟件包,它所做的工作就是創建一個新的
空軟件包來實現關聯,讓軟件包管理系統相信關聯實現了。

在我們開始以前,我必須提醒你,編譯某個軟件最安全的方法是對該軟件現有的
Debian軟件包進行修改後重新編譯,如果你並不知道你正在幹什麼,勸你不要使用
equivs替換關聯包。更多信息請參閱 第六章 源碼包操作。

繼續上面的例子,你安裝好了新編譯的postfix,接下來打算安裝mutt,突然你發
現mutt想與另一個MTA建立關聯,而你想讓它使用你剛安裝的新MTA。

轉到某個目錄(例如/tmp)執行:

# equivs-control name

將name替換為你創建的管理文件(control file),管理文件按如下格式創建:

Section: misc
Priority: optional
Standards-Version: 3.0.1

Package:
Version:
Maintainer:
Pre-Depends:
Depends:
Recommends:
Suggests:
Provides: <(virtual)package>
Architecture: all
Copyright:
Changelog:
Readme:
Extra-Files:
Description:
long description and info
.
second paragraph

我們只需按自己的需要修改相關項目就行了。文件中每個項目都描述得很清楚,我
們不必在此逐行解釋它們。現在開始修改吧:

Section: misc
Priority: optional
Standards-Version: 3.0.1

Package: mta-local
Provides: mail-transport-agent

行了,就是這樣。mutt要與mail-transport-agent關聯,這是所有MTA共用的一個
虛擬包(virtual package),我可以簡單地將這個軟件包命名為mail-transport-
agent,不過我更願意使用系統的虛擬包方案,使用Provides選項。

現在你可以開始創建軟件包了:

# equivs-build name
dh_testdir
touch build-stamp
dh_testdir
dh_testroot
dh_clean -k
# Add here commands to install the package into debian/tmp.
touch install-stamp
dh_testdir
dh_testroot
dh_installdocs
dh_installchangelogs
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: building package `name' in `../name_1.0_all.deb'.

The package has been created.
Attention, the package has been created in the current directory,

然後安裝這個新創建的.deb。

眾所週知,equivs的用法很多,它甚至可以幫你為那些常用軟件的底層關聯包創建
個性化版本。盡情發揮你的想像力吧,不過要小心。

重要提示:管理文件(control files)的樣例文件在
/usr/share/doc/equivs/examples目錄下。



4.2 移除無用的locale files文件:localepurge
===========================================
許多Debian用戶僅在固定地區使用Debian。例如,在巴西的Debian用戶,通常使用
pt_BR地區配置文件(locale file)而不會關心es地區配置文件。

對于這類用戶而言localepurge是一個非常有用的工具,你可以僅保留你當前所用
的地區配置文件,刪除其它無用的文件,從而釋放大量硬盤空間。運行apt-get
install localepurge就行了。

它配置起來非常容易,debconf的提問將引導用戶一步一步完成設置。在回答第一
個問題時請務必謹慎,如果回答錯了,系統可能刪掉所有的地區配置文件,包括你
正在使用的這個。復原它們的唯一方法就是重裝那些軟件包。



4.3 如何知曉哪些軟件包可以升級
==============================
apt-show-versions工具可以告訴你系統中哪些包可以更新以及其它一些有用的信
息。-u選項可以顯示可更新軟件包列表:

$ apt-show-versions -u
libeel0/unstable upgradeable from 1.0.2-5 to 1.0.2-7
libeel-data/unstable upgradeable from 1.0.2-5 to 1.0.2-7


Debian APT HOWTO 第五章 獲取軟件包信息
APT HOWTO
第五章 獲取軟件包信息

有些基于APT系統的前端程序,能十分方便地獲得系統軟件包列表,列表包括可安
裝或已安裝的軟件包,還可以顯示某軟件包屬于哪個域(section),它的優先級
(priority)是多少,它的說明文檔,等等。

但是...在此我們想的學習如何使用APT本身來完成。你如何找出你想要安裝的軟件
包的名稱?

我們完成這個任務的方法有很多。我們從apt-cache開始,APT系統使用這個程序來
維護它的數據庫。下面我們通過一些實際操作來對它做個概覽。



5.1 獲得軟件包名稱
==================
假設你十分懷念玩Atari 2600的好日子,你決定用APT安裝一個Atari emulator,
隨後再下載幾個遊戲,你可以這樣:

[root]@[/] # apt-cache search atari
atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
circuslinux - The clowns are trying to pop balloons to score points!
madbomber - A Kaboom! clone
tcs - Character set translator.
atari800 - Atari emulator for svgalib/X/curses
stella - Atari 2600 Emulator for X windows
xmess-x - X binaries for Multi-Emulator Super System

我們找到了幾個相關的軟件包,以及有關的簡單描述。想進一步獲得某個軟件包的
詳細信息,你可以運行:

[root]@[/] # apt-cache show stella
Package: stella
Priority: extra
Section: non-free/otherosfs
Installed-Size: 830
Maintainer: Tom Lear
Architecture: i386
Version: 1.1-2
Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1)
Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
Size: 483430
MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
Description: Atari 2600 Emulator for X windows
Stella is a portable emulator of the old Atari 2600 video-game console
written in C++. You can play most Atari 2600 games with it. The latest
news, code and binaries for Stella can be found at:
http://www4.ncsu.edu/~bwmott/2600

屏幕上顯示出這個軟件包的詳細信息及其用途的完整描述。如果你的系統中已安裝
了某個軟件包而系統又搜索到它的新版本,系統會將它們的詳細信息一並列出。如
下例:

[root]@[/] # apt-cache show lilo
Package: lilo
Priority: important
Section: base
Installed-Size: 271
Maintainer: Russell Coker
Architecture: i386
Version: 1:21.7-3
Depends: libc6 (>= 2.2.1-2), debconf (>=0.2.26), logrotate
Suggests: lilo-doc
Conflicts: manpages (<<1.29-3)
Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb
Size: 143052
MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e
Description: LInux LOader - The Classic OS loader can load Linux and others
This Package contains lilo (the installer) and boot-record-images to
install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
.
You can use Lilo to manage your Master Boot Record (with a simple text
screen)
or call Lilo from other Boot-Loaders to jump-start the Linux kernel.

Package: lilo
Status: install ok installed
Priority: important
Section: base
Installed-Size: 190
Maintainer: Vincent Renardias
Version: 1:21.4.3-2
Depends: libc6 (>= 2.1.2)
Recommends: mbr
Suggests: lilo-doc
Description: LInux LOader - The Classic OS loader can load Linux and others
This Package contains lilo (the installer) and boot-record-images to
install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
.
You can use Lilo to manage your Master Boot Record (with a simple text
screen)
or call Lilo from other Boot-Loaders to jump-start the Linux kernel.

注意,首先列出的是可用軟件包,接著列出的是已安裝軟件包。獲取某個軟件包的
常規信息可運行:

[root]@[/] # apt-cache showpkg penguin-command
Package: penguin-command
Versions:
1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)


Reverse Depends:
Dependencies:
1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0)
libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3)
Provides:
1.4.5-1 -
Reverse Provides:

如果僅想了解某軟件包的與哪些軟件包關聯,可運行:

[root]@[/] # apt-cache depends penguin-command
penguin-command
Depends: libc6
Depends: libpng2
Depends: libsdl-mixer1.1
Depends: libsdl1.1
Depends: zlib1g

總之,有一系列工具可幫助我們找到我們想要的軟件包。



5.2 使用dpkg查找軟件包名稱
==========================
另一個定位軟件包的方法是知道軟件包中某個關鍵文件的名稱。例如,你編譯時需
要某個頭文件,查找提供該文件的軟件包,你可以運行:

[root]@[/] # dpkg -S stdio.h
libc6-dev: /usr/include/stdio.h
libc6-dev: /usr/include/bits/stdio.h
perl: /usr/lib/perl/5.6.0/CORE/nostdio.h

或者:

[root]@[/] # dpkg -S /usr/include/stdio.h
libc6-dev: /usr/include/stdio.h

在清理硬盤空間時,了解系統中已安裝軟件的軟件包名稱十分有用,你可以運行:

[root]@[/] # dpkg -l | grep mozilla
ii mozilla-browse 0.9.6-7 Mozilla Web Browser

這個命令的缺點是它會“截斷”軟件包的名字。在上例中,軟件包的全稱是mozilla-
browser,解決這個問題可以使用COLUMNS環境變量:

[kov]@[couve] $ COLUMNS=132 dpkg -l | grep mozilla
ii mozilla-browser 0.9.6-7 Mozilla Web Browser - core and browser

或顯示成這樣:

[root]@[/] # apt-cache search "Mozilla Web Browser"
mozilla-browser - Mozilla Web Browser



5.3 如何“按需”安裝軟件包
==========================
你正在編譯某段程序,突然,停住了!一條錯誤信息報告說你沒有它需要的頭文
件。讓auto-apt來救你吧,它問你是否要安裝需要的軟件包,然後掛起編譯進程,
安裝好軟件包後再恢復編譯進程。

你所要做的僅僅是:

auto-apt run command

這裡“command”指在運行過程中可能出現“需求文件不存在”問題的命令。例如:

auto-apt run ./configure

一會兒,它就會告訴你要安裝所需的軟件包並自動轉到apt-get處理。如果你正在
運行X,就會一個圖形界面提示窗口。

為了提高效率auto-apt所用的數據庫需要實時更新。可調用auto-apt update,
auto-apt updatedb和auto-apt update-local來完成更新。



5.4 如何知道文件屬于哪個軟件包
==============================
如果你想安裝某個軟件包,但用apt-cache查不出它的名稱,不過你知道這個程序
的文件名,或這個軟件包中某些文件的文件名,那麼你可以用apt-file來查找軟件
包名稱。

$ apt-file search filename

它用起來很象dpkg -S,不過它還會列出包含該文件的已刪除軟件包。它也可以用
來查找哪個軟件包包含編譯時所缺的文件,當然,解決這類問題auto-apt可能是更
好的方案,請參閱 5.3如何“按需”安裝軟件包。

用這個命令,你可以列出軟件包的內容:

$ apt-file list packagename

apt-file用一個數據庫來存放所有軟件包的內容信息,和auto-apt一樣,這個數據
庫也需要實時更新,完成更新可以運行:

# apt-file update

默認情況下,apt-file和auto-apt使用同一個數據庫,參閱 5.3如何“按需”安裝軟
件包。



5.5 如何掌握軟件包的變化情況
============================
在每個軟件包被安裝以後,都會在文檔目錄(/usr/share/doc/packagename)生成
一個changelog.Debian.gz的文件,這個文件記錄了該軟件包最後一次更新對系統
做了哪些修改,你可以用zless閱讀這些信息。不過當你對整個系統進行升級以
後,逐個查看軟件包的更新信息可不是件容易事。

有一個工具能幫你完成這項任務,它就是apt-listchanges。首先你要裝上apt-
listchanges軟件包。在安裝的過程中,Debconf會問你一些問題,按你的要求回答
它們就行了。

“Should apt-listchanges be automatically run by apt”(想讓apt自動運行apt
-listchanges嗎?)這個選項非常有用,因為在你使用apt更新軟件包時,它會告
訴你此次軟件包更新將會對原有系統做出了哪些修改,你分析了這些信息以後再決
定是否執行此次更新。“Should apt-listchanges prompt for confirmation
after displaying changes?”(顯示更新信息後,需要apt-listchanges等待你的
確認信息嗎?)選項也非常有用,因為在你閱讀完更新信息後,它會詢問你是否繼
續安裝進程,如果你不想繼續,apt-listchanges會返回一條錯誤信息,告訴apt停
止安裝進程。

安裝了apt-listchanges後,每當apt下載軟件包時(不論來源是Internet、光盤或
是硬盤)都會顯示這些軟件包的系統更新信息。


Debian APT HOWTO 第六章 源碼包操作
APT HOWTO
第六章 源碼包操作

6.1 下載源碼包
==============
在自由軟件的世界裡,經常需要學習源碼或為程序除錯,所以你需要下載它們。
APT提供了一套簡便的方法幫你獲得發布版中眾多程序的源代碼以及創建一個.debs
所需的所有文件。

Debian源碼的另一個普遍用途是將unstable發布版的新版程序進行改寫以供別的發
布版使用,例如,從stable發布版外引入新的軟件包,需要重新生成.debs將它在
原發布版中的關聯關系遷移到新的發布版。

完成這些工作,/etc/apt/sources.list文件中deb-src所指引用鏡像源應該是
unstable,別忘了將行首的注釋符去掉。詳情參閱 2.1/etc/apt/sources.list文件。

用下面的命令下載源碼包:

apt-get source packagename

通常會下載三個文件:a .orig.tar.gz, a .dsc and a .diff.gz。對于Debian專
用的軟件包,最後一個文件不會下載,第一個文件的文件名中沒有“orig”項。

dpkg-source讀取.dsc文件信息,將源碼包解包到packagename-version目錄,下載
下來的源碼包中有一個debian/目錄,裡面是創建.deb包所需的文件。

想要下載的源碼包自動編譯成軟件包,只需在命令行中加上-b,如下:

apt-get -b source packagename

如果你不打算立即創建.deb包,你可以運行如下命令,以後再創建它。

dpkg-buildpackage -rfakeroot -uc -b

請在下載包所在的目錄中運行上面的命令。

apt-get的source命令與它的其它命令有所不同,普通用戶權限就可以運行source
命令,指定文件被下載到用戶調用apt-source package命令時所處的目錄中。



6.2 編譯源碼包所需的軟件包
==========================
通常,編譯源碼包時要用到某些頭文件和共享庫,所有的源碼包的管理文件
(control file)中都有一個域“Build-Depends:”,域中指出了編譯該源碼包需
要哪些附加包。

APT提供了一個簡單的方法下載這些附加包,你只需運行apt-get build-dep
package,其中package就是你打算編譯的源碼包名稱。見下例:

[root]@[/] # apt-get build-dep gmc
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev
libgnorba-dev
libgpmg1-dev
0 packages upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
Need to get 1069kB of archives. After unpacking 3514kB will be used.
Do you want to continue? [Y/n]

這些用于gmc正確編譯指定源碼包的附加包將會被安裝。注意這個命令不能用來搜
索某個軟件的源碼包,你得另外運行apt-get source下載源碼包。


Debian APT HOWTO 第七章 如何處理錯誤
APT HOWTO
第七章 如何處理錯誤

7.1 一般錯誤
============
錯誤總是發生,大部分是因為用戶的粗心,下面列舉一些常見錯誤及處理方法。

如果在運行apt-get install package...時,你的系統報告如下信息:

Reading Package Lists... Done
Building Dependency Tree... Done
W: Couldn't stat source package list 'http://people.debian.org unstable/
Packages'
(/var/state/apt/lists/people.debian.org_%7ekov_debian_unstable_Packages)
- stat (2 No such file or directory)
W: You may want to run apt-get update to correct these missing files
E: Couldn't find package penguineyes

上次你修改/etc/apt/sources.list後,忘了運行apt-get update更新。

如果出現這樣的信息:

E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission
denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you
root?

如果你沒有root權限,當運行除source處的其它apt-get命令,如會出現上面的錯
誤信息。

當你同時運行兩個apt-get進程,或者當你試圖運行apt-get時已有一個的dpkg進程
處于激活狀態,系統也會報告與上面相似的錯誤信息。唯一能與其它命令同時運行
的只有source命令。

如果在安裝過程中出現中斷,然後你發現該軟件包既不能重裝又不能刪除,試試下
面兩個命令:

# apt-get -f install
# dpkg --configure -a

再試著安裝那個軟件包,如果不行再次運行上述命令後再試。這兩個命令對于那些
使用unstable的玩家非常有用。



7.2 在哪兒獲得幫助?
===================
如果你發現自己有太多疑問,沒關系,有大量的Debian軟件包管理系統文檔供你參
考。--help和幫助文檔能為你提供巨大的幫助,這些文檔位于/usr/share/doc目錄
中,如/usr/share/doc/apt。

如果本文檔沒法幫你排憂解難,可以去Debian郵件列表找找答案,相關欄目內你會
獲得更多信息。Debian的網址是:http://www.debian.org。

記住只有Debian用戶才能這些郵件列表和資源,其它操作系統的用戶請到相關系統
發布者建立的社區中獲取更多資源。

====================================
APT HOWTO

1.8.2 - November 2002
Gustavo Noronha Silva kov@debian.org
中文翻譯:LYOO iamlyoo@163.com
2003/01/26
====================================




責任編輯:ayiiq180

Linux伊甸園 歡迎來信 <mailto:webmaster@linuxeden.com>交流
Linuxeden.com <http://www.linuxeden.com> 1998-2002 All rights reserved
歡迎你來到MOTO學園一起討論Debian相關問題。
在post問題前可先別忘記了以下的步驟:
1:翻一下/usr/share/doc/中是否已經有解答了?
2:閱讀一下無痛起步是否已經提到了?
3:找一下google予以解答?
4:善用學園中的"搜尋"功能,往往答案就在裡面窩。
頭像
moto
摩托學園站長
摩托學園站長
 
文章: 2808
註冊時間: 週二 9月 03, 2002 3:37 am
來自: 台北

re:[轉貼]Debian APT HOWTO

文章jarodsu » 週三 3月 24, 2004 3:53 pm

像我的apt
沒有apt-file這個指令

如何知道我安裝的packet
裡所有所有檔案的list
Jarod Acts the Role Of Demon
jarodsu
可愛的小學生
可愛的小學生
 
文章: 24
註冊時間: 週三 3月 24, 2004 2:35 pm

re:[轉貼]Debian APT HOWTO

文章Tetralet » 週三 3月 24, 2004 5:21 pm

請用
代碼: 選擇全部
apt-get install apt-file
apt-file update

來安裝 apt-file 並下載 apt-file 的資料檔。
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:[轉貼]Debian APT HOWTO

文章幸福的形狀 » 週日 3月 28, 2004 4:39 am

謝謝大大的分享
對初學debian的我來說真的受用 :-D
幸福的形狀
可愛的小學生
可愛的小學生
 
文章: 10
註冊時間: 週六 2月 14, 2004 1:00 am


回到 debian command

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客