Niedawno zainstalowałem Ubuntu Server wydanie 13.10 (Saucy Salamander). Ale napotkałem trochę problemu.
Pod koniec instalacji prosi o kilka dodatkowych pakietów, czy chcesz, czy nie, takich jak serwer OpenSSH i host maszyny wirtualnej. Oto na co patrzę:
Mój problem polega na tym, że nie pamiętam, czy zaznaczyłem pole wyboru „host maszyny wirtualnej”. Jak sprawdzić, czy mój serwer ma odpowiednie pakiety?
Jakie pakiety są dostarczane z hostem maszyny wirtualnej?
$ apt-cache policy <package-name>
, np.$ apt-cache policy dillo
Odpowiedzi:
Czy chcesz wiedzieć o wszystkich poleceniach dpkg z opcjami? Przeczytaj poniższy link.
15 komend dpkg do zarządzania serwerami Linux opartymi na Debianie
Aby wyświetlić listę wszystkich zainstalowanych pakietów
Tutaj „mniej” to prosty czytnik tekstu służący do przewijania listy pakietów w nowym buforze, który otwiera się w istniejącym oknie terminala. Lista nie będzie mieszana z innymi poleceniami terminalowymi i danymi wyjściowymi. Naciśnij „q”, aby powrócić do monitu terminalu. Aby uzyskać więcej informacji, zobacz „mniej ludzi”.
Aby sprawdzić, czy pakiet jest zainstalowany, czy nie:
Aby sprawdzić, czy pakiet jest zainstalowany, czy nie (na przykład
vlc
). Jeśli jest zainstalowany, uruchom pakiet:Pokaż lokalizację, w której pakiet jest zainstalowany. „-S” (duże S) oznacza „szukaj”
Aby użyć Grep do wyszukiwania:
źródło
dpkg -l packagename
, ponieważ może on zwrócić kod wyjścia 0, nawet jeśli pakiet nie jest w pełni zainstalowany - patrz: github.com/bitrise-io/bitrise/issues/433dpkg -l | cut -d " " -f 3 | grep "^vlc"
aby wyświetlić wszystkie nazwy pakietów zaczynające się odvlc
Posługiwać się
dpkg
To polecenie jest menedżerem pakietów debian.
Możesz wyświetlić listę wszystkich zainstalowanych pakietów za pomocą
Możesz zobaczyć szczegóły dla konkretnego pakietu za pomocą
Aby dowiedzieć się, czy jest zainstalowany, użyj
Możesz dowiedzieć się, który pakiet zawiera odpowiednie oprogramowanie
W twoim przypadku należy użyć tego polecenia, aby wyszukać żądaną nazwę pakietu
źródło
apt -qq list PACKAGE
może być również użyty do sprawdzenia, czy PAKIET jest zainstalowany.Jeśli zainstalowany, wydrukuje coś w stylu (z
[installed]
na końcu linii):Jeśli nie zostanie zainstalowany, wyjście będzie:
źródło
-qq
za? Wydaje się, że bez niego działa identycznie, a tej opcji nie ma w instrukcjiman apt
apt list
polecenie nie jest jeszcze w pełni udokumentowane. Niektóre szybkie testy 16.04 wydają się wskazywać, że-q
jest to synonim--quiet
opcji. Pierwszy-q
zapobiega drukowaniu słowa „Gotowe”. Drugi zapobiega także drukowaniu „Listing ...”.Znalazłem sposób na sprawdzenie instalacji pakietu za pomocą polecenia dpkg-query bez żadnych potoków.
Szukałem takiego rozwiązania pisząc zadanie dla ansible playbook.
Więc możesz zrobić coś takiego:
To tylko kolejny sposób na zrobienie tego.
źródło
shell
modułem można stosować rury w ansible .Piszę nową odpowiedź jako tasksel „nazwy zadania” nie pojawi się w
dpkg
lubapt
zapytań. Oznacza to, że pozostałe odpowiedzi są niekompletne (lub błędne).„Nie pamiętam, jeśli zaznaczyłem pole wyboru„ host maszyny wirtualnej ”.”
Po ponownym uruchomieniu sprawdź, czy gwiazdka zawiera nazwę
sudo tasksel
.(lub „ i ”, jeśli jest uruchomiony
tasksel --list-tasks
).Jeśli nie widzisz tego, to prawdopodobnie nie mają „tasksel meta-pakietu ” zainstalowany.
„..Jak mogę sprawdzić, czy mój serwer ma odpowiednie pakiety?”
Jeśli chcesz dowiedzieć się, co jest zainstalowane w meta-pakiecie zadań hosta maszyny wirtualnej:
tasksel --list-tasks
(w twoim przypadku
tasksel --list-tasks | grep virt
wystarczy)Daje to prawidłową nazwę zadania i wskazanie, czy jest ono zainstalowane.
W twoim przypadku ta nazwa zadania to
virt-host
.„Jakie pakiety są dostarczane z hostem maszyny wirtualnej?”
W ostatnim poleceniu znajdź nazwę zadania tasksel.
Jest to potrzebne do następnego polecenia:
tasksel --task-packages virt-host
Zawiera listę poszczególnych metapakietów Tasksel (oznaczonych dołączonym „^”), które składają się na nazwę.
W twoim przypadku to jest
virt-host^
.Po znalezieniu właściwej meta-nazwy możesz użyć apt:
(lub
apt-cache show
...
jeśliapt show
nie działa.)Spowoduje to wyświetlenie wszystkich pakietów tworzących dany pakiet meta.
Następnie:
Dzięki temu dowiesz się, czy dany pakiet jest zainstalowany / odinstalowany (oznaczony drugą literą: status „i” oznacza zainstalowany). Zrób to dla wszystkich pakietów wymienionych w pakiecie zadań / meta.
To powinno odpowiedzieć na oryginalne pytania.
Uwaga dodatkowa: /usr/share/tasksel/descs/ubuntu-tasks.desc zawiera także opisy meta-pakietów Tasksel. Jeśli:
grep "virt" /usr/share/tasksel/descs/ubuntu-tasks.desc
pokaże prawidłową nazwę metapakietu APT. (W twoim przypadku to jestubuntu-virt-server
). Możesz również używaćapt
poleceń z tą meta-nazwą.Jeśli chcesz usunąć pakiety zadań, trochę to wpada w chwasty. Proszę sprawdzić https://askubuntu.com/a/88897/169878 lub dowolną liczbę innych odpowiedzi tam.
Pamiętaj, że pakiety „meta” apt nie pasują do nazw pakietów Tasksel. Więcej informacji można znaleźć na stronie społeczności Tasksel .
źródło
Użyj tasksel (
sudo apt-get install tasksel
jeśli jeszcze go nie masz) i uruchomtasksel --list-tasks
.tasksel wydrukuje listę zadań, a
i
obok każdego zadania, które jest zainstalowane, będzieu
obok każdego zadania, które nie zostanie zainstalowane.Jeśli chcesz zainstalować zadanie, użyj
tasksel install <task>
. Nazwa zadania, którego szukasz, tovirt-host
.Elementy wyboru oprogramowania nazywane są „zadaniami”.
źródło
Jeśli ktoś jest zainteresowany, stworzyłem mały skrypt, za pomocą którego można automatycznie zainstalować z listy pakietów lub aplikacji lub po prostu sprawdzić, czy są już zainstalowane:
Mam nadzieję, że to komuś pomaga.
źródło
Prostsze rozwiązanie:
Teraz jest
apt list
polecenie, które wyświetla listę zainstalowanych pakietów. Możesz także wyszukać konkretny pakiet za pomocąZobacz
man apt
więcej informacji. Jeśli nie znasz dokładnej nazwy pakietu, możesz użyćapt search
części, a następnie jej części, aby wyświetlić listę powiązanych pakietów.źródło