Apt

apt-get build-dep 找不到源包

  • October 19, 2021

我已經按照本指南在我的 Ubuntu 12.04 上禁用滑鼠中鍵粘貼。

奇蹟般有效。

現在我正試圖在我的 Linux Mint 17 上實現同樣的目標。當我嘗試

sudo apt-get build-dep libgtk2.0-0

它給了我以下輸出:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'
E: Unable to find a source package for gtk+2.0

對我來說,看起來 apt-get 以某種方式“解析”'libgtk2.0-0''gtk+2.0',但是沒有找到任何這樣命名的包。

編輯:雖然我現在可以編譯程序(見我的回答),但我仍然不知道 Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'應該是什麼意思。任何對此的見解將不勝感激,謝謝!

正如其他人已經指出的那樣,請確保對於 和 中的每個條目deb …,您都有一個匹配的條目。該行的其餘部分必須相同。/etc/apt/sources.list``/etc/apt/sources.list.d/*``deb-src …

deb條目用於二進制包(即準備安裝),deb-src用於源包(即準備編譯)。之所以將這兩種包分開,是因為它們的管理方式很不一樣:二進制包有依賴跟踪機制和目前安裝列表,而源包只跟踪方便下載。請注意,在討論包儲存庫時,這個詞意味著兩個不相關的東西:一個源作為下載包的位置,以及一個源包而不是二進制包。

libgtk2.0-0是二進制包的名稱。它是從一個名為gtk+2.0. 源和二進制包名稱不總是匹配的原因是建構一個源包可以生成多個二進制包;例如,gtk+2.0是 14 個包的原始碼,因為它分為兩個庫 ( libgtk2.0, libgail)、使用這些庫建構程序的相應包 ( …-dev)、開發人員文件 ( …-doc)、配套程序 ( libgtk2.0-bin) 等。

您可以通過檢查Source: …dpkg -s BINARY_PACKAGE_NAME如果安裝了包)或apt-cache show BINARY_PACKAGE_NAME.

您可以列出由源包生成的二進制包aptitude search '?source-package(^SOURCE_PACKAGE_NAME$)

該命令apt-get source下載源包。如果你給它一個不是已知源包的參數,它會在可安裝二進制包的數據庫中查找它並嘗試下載相應的源包。

該命令apt-get build-dep採用相同的方法推導出源包的名稱,然後查詢源包數據庫以獲取二進制包列表(Build-Dep:欄位中的列表),並安裝這些二進制包。

Software Sources GUI 有一個用於官方儲存庫的複選框“啟用帶有原始碼的儲存庫”,確保它被勾選。如果您手動添加第三方儲存庫,請確保同時添加deb-srcdeb行。

引用自:https://unix.stackexchange.com/questions/158395