Jak mogę ustalić, czy pakiet jest meta-pakietem z wiersza poleceń, prawdopodobnie za pomocą apt-get, aptitude lub apt-cache?
Próbowałem:
apt-cache show texlive-full
apt-cache showpkg texlive-full
ale jedynym sposobem, w jaki mogę powiedzieć, że ten pakiet jest meta, jest czytanie pola „en-description”.
Czy istnieje bardziej automatyczny sposób na zrobienie tego, który da mi odpowiedź „tak / nie”, lub przynajmniej będzie zawierał takie pole jak „en-description”?
package-management
metapackages
Ciro Santilli
źródło
źródło
Odpowiedzi:
Nie ma formalnej definicji metapakietu. Nieformalna definicja jest taka, że metapakiet to taki, który jest przeznaczony wyłącznie do zainstalowania ze względu na jego zależności i nie zawiera własnego przydatnego pliku.
Można zdefiniować metapakiet jako pakiet, który nie zawiera pliku. Nie ma możliwości ustalenia tego na podstawie bazy danych pakietu. Możesz użyć bazy danych plików i sprawdzić, czy pakiet zawiera tylko katalogi (wiele takich pakietów zawiera kilka katalogów). W rzeczywistości większość metapakietów zawiera kilka plików
/usr/share/doc/<package name>
:copyright
plik, dziennik zmian, czasem kilka innych. Oto przybliżenie, które definiuje metapakiet jako zawierający tylko pliki w/usr/share/doc/<some directory>
(nie w jego podkatalogach) i wiodące katalogi:Innym podejściem jest poszukiwanie znacznika pakietu z
debtags
. Istnieje kilka tagów, które są powszechnie używane w metapakietach.Innym podejściem jest poszukiwanie pakietów o małym rozmiarze. Każdy katalog liczy się jako 4 kB, więc planuj odpowiednio przy wybieraniu progu (ponownie, jest to przybliżenie).
Po zastanowieniu zastanawiam się, czy masz na myśli pakiety wirtualne, a nie metapakiety. Pakiety wirtualne w rzeczywistości nie są pakietami, ale nazwami pakietów używanymi w
Provides:
polach. Możesz je wymienićaptitude search '~v'
. Uruchomionyapt-cache show
na jednym wyświetlaczy „Nie można wybrać wersje z pakietu«zcav»jak to jest czysto wirtualny”. Uruchamianieaptitude show
wyświetla listę pakietów, które to zapewniają. Wygodnym sposobem wyświetlania wirtualnych pakietów jestapt-cache
: drukuje jedną linię dla pakietu nie-wirtualnego i potencjalnie wiele linii (jedna dla każdego dostawcy) dla pakietu wirtualnego - możesz stwierdzić, czy pakiet jest wirtualny, nawet jeśli jest jeden dostawca ponieważ nazwa dostawcy jest inna.źródło
apt-get autoremove
,aptitude (un)markauto
TheM
komenda w umiejętności interaktywny interfejs.apt-get install texlive-full
,apt-get purge texlive-full; apt-get autoremove
nie usunąć wszystkie zainstalowane zależności. Czytałem gdzieś, że dzieje się tak dlatego, że pełny tekst był metapakietem i że było to normalne zachowanie metapakietu, ale może to było złe. Z drugiej strony aptitude zdawało się dobrze usuwać automatycznie instalowane zależności.Możesz spróbować wejść
która da ci długą listę, a następnie użyj
grep
, powiedzmy, pokaż wszystkie metapakiety związane z naukąTo zwróci długą listę ( skróciłem ją tutaj)
Możesz użyć dowolnej liczby alternatyw dla nauki, takich jak
KDE
znalezienie wszystkichKDE
metapakietów.Prawdopodobnie jest to najlepsze, co możesz zrobić
apt-cache
, ale powinno szybko zlokalizować większość metapakietów, które chcesz znaleźć. Jeśli nie znajdzie dokładnie wszystkiego, czego szukałeś, najprostszą rzeczą jest zajrzenie do sekcji metapakietu wSynaptic
.źródło