GNU/Linux >> Znalost Linux >  >> Linux

Apt-get Build-dep nemůže najít zdrojový balíček?

Již jsem postupoval podle tohoto průvodce, abych zakázal vkládání středního tlačítka myši na mém Ubuntu 12.04.

Funguje jako kouzlo.

Nyní se snažím dosáhnout stejného na svém Linux Mint 17. Když se o to pokusím

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

dává mi to následující výstup:

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

Pro mě to vypadá, že apt-get nějak „vyřeší“ 'libgtk2.0-0' na 'gtk+2.0' , ale pak nenajde žádný takto pojmenovaný balíček.

EDIT:
i když jsem nyní schopen zkompilovat program (viz moje odpověď), stále nevím, co Vybírám 'gtk+2.0' jako zdrojový balíček místo 'libgtk2.0-0' má znamenat. Jakékoli informace o tom by byly oceněny, díky!

Přijatá odpověď:

Jak již poznamenali ostatní, ujistěte se, že pro každý deb … záznam v /etc/apt/sources.list a /etc/apt/sources.list.d/* , máte odpovídající deb-src … vstup. Zbytek řádku musí být identický.

deb položka je pro binární balíčky (tj. připravené k instalaci), deb-src je pro zdrojové balíčky (tj. připravené ke kompilaci). Důvodem, proč jsou tyto dva druhy balíčků odděleny, je to, že jsou spravovány velmi odlišně:binární balíčky mají mechanismus sledování závislostí a aktuálně nainstalovaný seznam, zatímco zdrojové balíčky jsou sledovány pouze proto, aby je bylo možné pohodlně stáhnout.
Všimněte si, že když mluvíme o úložištích balíčků, slovo zdroj znamená dvě nesouvisející věci:zdroj jako v místě pro stahování balíčků a zdrojový balíček na rozdíl od binárního balíčku.

libgtk2.0-0 je název binárního balíčku. Je vytvořen ze zdrojového balíčku s názvem gtk+2.0 . Důvod, proč se názvy zdrojových a binárních balíčků vždy neshodují, je ten, že vytvořením zdrojového balíčku může vzniknout více binárních balíčků; například gtk+2.0 je zdrojem pro 14 balíčků, protože je rozdělen do dvou knihoven (libgtk2.0 , libgail ), odpovídající balíčky pro vytváření programů pomocí těchto knihoven (…-dev ), dokumentace pro vývojáře (…-doc ), doprovodné programy (libgtk2.0-bin ), atd.

Název zdrojového balíčku odpovídajícího binárnímu balíčku můžete vidět zaškrtnutím Zdroj:… řádek ve výstupu dpkg -s BINARY_PACKAGE_NAME (pokud je balíček nainstalován) nebo apt-cache show BINARY_PACKAGE_NAME .

Binární balíčky vytvořené zdrojovým balíčkem můžete vypsat pomocí aptitude search '?source-package(^SOURCE_PACKAGE_NAME$) .

Příkaz apt-get source stáhne zdrojový balíček. Pokud mu zadáte argument, který není známým zdrojovým balíčkem, vyhledá jej v databázi instalovatelných binárních balíčků a pokusí se stáhnout odpovídající zdrojový balíček.

Související:Nelze simulovat Ctrl+Shift+Fn+F10 Stisk klávesy ?

Příkaz apt-get build-dep postupuje podle stejného přístupu k odvození názvu zdrojového balíčku, poté se dotazuje na databázi zdrojových balíčků, aby získal seznam binárních balíčků (seznam v Build-Dep: pole) a nainstaluje tyto binární balíčky.

GUI Software Sources má zaškrtávací políčko „povolit úložiště se zdrojovým kódem“ pro oficiální úložiště, ujistěte se, že je zaškrtnuté. Pokud přidáváte repozitáře třetích stran ručně, ujistěte se, že jste přidali oba deb-src a deb řádky.


Linux
  1. Jak najít verzi balíčku v Linuxu

  2. pygrub:Nelze najít oddíl obsahující jádro

  3. Nelze yum nainstalovat mod_security – Není k dispozici žádný balíček mod_security [Vyřešeno]

  1. Nelze nainstalovat Mariadb na Ubuntu 20.04?

  2. nelze nainstalovat balíček libc6

  3. Ubuntu:OpenJDK 8 - Nelze najít balíček

  1. Docker – Nelze najít balíček docker-engine

  2. E:Nelze najít balíček python-pip na Ubuntu 18.04

  3. Selhání instalace nástrojů VMWare. Nelze najít program depmod