2017-12-04 222 views
5

Jeśli mam plik debian/control z wpisami Build-Depends i Depends.Jak zainstalować pakiet Debiana Build-zależy i zależy od niego:

Jak zainstalować oba zestawy zależności?

W tej chwili używam następującego polecenia, aby utworzyć pakiet pośredni, który zależy od Build-Depends, ale nie od Depends.

$ mk-build-deps --build-dep \ 
&& dpkg -i *.deb \ 
|| apt-get update && apt-get install --fix-broken --yes \ 

Odpowiedz

3

Zakładając, że jest to standardowy pakiet w swoim apt repozytoriów, powinieneś być w stanie po prostu uruchomić

apt-get build-dep PACKAGE [PACKAGE…] 

Ogólnie rzecz biorąc, najlepszym rozwiązaniem jest, aby znaleźć pakiet z tymi samymi zależnościami (jeszcze lepiej, identyczna, ale inna wersja tego samego pakietu) i tylko build-dep go. To rozwiązuje 99 +% z tych problemów z mojego doświadczenia.


nie wiem mk-build-deps w ogóle, ale można uruchomić to, aby zobaczyć, co nazywa się zależnościami w debian/control pliku:

echo $(sed -re '/^(Build-)?Depends:/,/^[^ ]/!d;//d' \ 
      -e 's/^ //;s/[^a-z0-9-].*$//;/^$/d' PACKAGE/debian/control) 

(ten analizuje plik kontrolny Debiana dla produkcji- Zależnie i zależnie od linii i przedstawia tylko wymienione zależności, wyłączając wszelkie zmienne (które, jak sądzę, są już uwzględnione w innych działaniach z pliku), a także wiele usunięć (//d usuwa kryteria pasujące do końca poprzedniego zapytania , /^$/d usuwa linie opróżnione przez poprzednią zamianę ment, który usuwa wersje, elementy opcjonalne, zmienne i przecinki).

Jeśli chcesz, wymień echo z apt-get install, ale najpierw musisz wyczyścić elementy, które chcesz dostosować i/lub ręcznie zainstalować.

Po tym, powinieneś mieć łatwiejszy czas z dpkg -i *.deb. Jeśli utkniesz, możesz spróbować w dowolnej chwili apt-get install --fix-broken.

+0

Zakładam, że nie mogę użyć 'apt-get build-dep' na pliku' debian/control'? Pakiet musiałby już istnieć? –

+0

'apt-get build-dep PACKAGE' zainstaluje zależności kompilacji dla najnowszej (w tym niestabilnej) wersji PACKAGE jako utrzymywanej w każdym z twoich repozytoriów, a nie lokalnie. Nie wymaga zainstalowania samego PACKAGE. Jeśli musisz przeanalizować plik 'debian/control', ponieważ nie możesz znaleźć wystarczająco podobnej paczki w swoich repozytoriach, użyj drugiej połowy mojej odpowiedzi. –