學習使用apt 四

2021-08-29 03:35:46 字數 1943 閱讀 9323

第六章 使用原始碼包

debian原始碼另乙個常見的用法就是從不穩定發行版中修正乙個新版本的程式以適應穩定版.編譯乙個相對穩定版本的軟體包將會建立一些與當前版本中可獲得的軟體包相匹配依賴關係的deb包.

要完成這樣的工作,在我們的/etc/apt/sources.list檔案中的deb-src實體要指向不穩定版本.他也應被允許(但是並不推薦這樣).

$ apt-get source packagename

$ apt-get -b source packagename

$ dpkg-buildpackage -***keroot -uc -b

要安裝上面的命令所建立的安裝包,我們要直接使用包管理器.如下面的命令:

# dpkg -i file.deb

6.2 編譯原始碼包所需要的包

在通常的情況下,為了編譯乙個原始碼包需要專門的標頭檔案和共享庫.所有的原始碼包在他們的控制檔案中都存在乙個名"build-depends"的區域來表明為了從原始碼編譯這個包所需要的額外的包.

# apt-get build-dep gmc

這樣將會安裝的軟體包就是我們要正確的編譯gmc包所需要的軟體包.在這裡有一點要注意的就是這個命令並不會查詢我們要編譯程式的原始碼,所以我們需要執行單獨的apt-get source來得到我們所需的原始碼.

如果我們所希望的只是檢查要建立指定的包所需要的包,有許多的apt-cache show可以滿足我們這樣的要求.在這個命令的顯示資訊中,build-depends部分就會列出所需要的軟體包.如:

# apt-cache showsrc package

第七章 如何處理錯誤

7.1 常規錯誤

錯誤總是會發生的,其中的許多是由於使用者沒有注意而造成的.下面我們會列出一些最常出現的一些錯誤以及一些解決辦法.

如果我們試著執行apt-get install package時會出現類似於下面的錯誤資訊:

reading package lists...done

building dependency tree...done

w: couldn't stat source package list ' unstable/ package'

w: you may want to run apt-get update to correct these missing files

e: couldn't find package penguineyes

這是因為在你上次更改/etc/apt/source.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?

如果我們在試著執行任何的apt-get方法而不是source方法,我們不具有root許可權,也就是說,我們正在以普通使用者在執行這些命令.

如果我們在同一時間執行了兩次apt-get命令或是我們在試著執行apt-get的同時dpkg程序處於啟用,也會出現類似的資訊.可以與其他同時執行的唯一的方法就是source方法.

如果乙個安裝程序在中間被打斷而我們發現再也不可能安裝或是移除這個安裝包,我們可以試著執行下面的兩個命令:

# apt-get -f install

# dpkg --configure -a

然後再試一下.上面的兩個命令比較起來似乎第二個更必須一些.這對於使用'unstable'的使用者來說是很重要的一課.

如果我們在執行apt-get update時出現"e:dynamic mmap ran out of room",我們可以在我們的/etc/apt/apt.conf中加入下面的一句:

apt::cache-limit 10000000;

(end)

學習使用apt 四

第六章 使用原始碼包 debian原始碼另乙個常見的用法就是從不穩定發行版中修正乙個新版本的程式以適應穩定版.編譯乙個相對穩定版本的軟體包將會建立一些與當前版本中可獲得的軟體包相匹配依賴關係的deb包.要完成這樣的工作,在我們的 etc apt sources.list檔案中的deb src實體要指...

學習使用apt 二

4.1如何安裝本地預編譯包 equivs 有時也許我們會希望安裝乙個特定版本的程式,但是卻沒有debian包而只有原始碼包.但是當這樣做時包管理系統會遇到麻煩.假如我們要編譯乙個新版本的郵件伺服器.一切順利,但是在debian系統上許多的軟體包要依賴mta mail transport agent ...

學習使用apt 二

4.1如何安裝本地預編譯包 equivs 有時也許我們會希望安裝乙個特定版本的程式,但是卻沒有debian包而只有原始碼包.但是當這樣做時包管理系統會遇到麻煩.假如我們要編譯乙個新版本的郵件伺服器.一切順利,但是在debian系統上許多的軟體包要依賴mta mail transport agent ...