apt-cache pkgnames

Potrzebujesz pomocy z C, C++, perl, python, itp.
jang
Beginner
Posty: 208
Rejestracja: 26 stycznia 2007, 14:38

apt-cache pkgnames

Post autor: jang »

W/g info apt-cache :

Kod: Zaznacz cały

       pkgnames [ prefiks ]
              To polecenie wyświetla nazwy wszystkich pakietów zainstalowanych
              w systemie.  Opcjonalnym argumentem jest przedrostek nazwy paki-
              etów.   
Zrobiłem coś takiego :

Kod: Zaznacz cały

apt-cache pkgnames > /tmp/zainst-deb
sort /tmp/zainst-deb -o /tmp/zainst-deb
i znalazłem w tym spisie coś takiego :
CGI-modules
Zna ktoś taki pakiet ?
Kpackage nie zna takiego pakietu.
apt-cache madison CGI-modules - nie pokazuje nic.
apt-cache search CGI-modules daje taki wynik :
libcgi-perl - modules for perl5, for use in writing CGI scripts.

Wie ktoś o co w tym bałaganie chodzi ?
To cudo w końcu pokazuję listę pakietów czy listę ... no właśnie czego ?

Czy ktoś z Was zna jakiś inny sposób na poznanie listy zainstalowanych w systemie pakietów ?
velmafia
Member
Posty: 1820
Rejestracja: 01 września 2006, 00:56
Lokalizacja: Las

Re: apt-cache pkgnames

Post autor: velmafia »

jang pisze:Czy ktoś z Was zna jakiś inny sposób na poznanie listy zainstalowanych w systemie pakietów ?

Kod: Zaznacz cały

dpkg -l 

aloha
jang
Beginner
Posty: 208
Rejestracja: 26 stycznia 2007, 14:38

Post autor: jang »

velmafia
dzięki za już i za jeszcze (jeśli możesz)
w/g info dpkg :

Kod: Zaznacz cały

dpkg -l | --list wzorzec-nazw-pakietów ...
Wyświetla pakiety pasujące do wzorca
przyznasz że raczej trudno się z tego domyślić że coś takiego wyświetli to o co mi chodziło.

Czy jest coś co wyświetli mi trochę bardziej skróconą wersję listy pakietów tzn same nazwy ?

Pozdrowienia
velmafia
Member
Posty: 1820
Rejestracja: 01 września 2006, 00:56
Lokalizacja: Las

Post autor: velmafia »

jang pisze:przyznasz że raczej trudno się z tego domyślić że coś takiego wyświetli to o co mi chodziło.
a o co dokładnie Ci chodzi? ;)
jang
Beginner
Posty: 208
Rejestracja: 26 stycznia 2007, 14:38

Post autor: jang »

Przepraszam ja tak tylko głośno myślę o tych czasami dziwnych wpisach w info, man. Przy takim opisie jak wyżej zacytowałem trudno się domyślić że dpkg - lwyświetli mi listę zainstalowanych pakietów ale mniejsza z tym.
dpkg - l wyświetala jak zresztą wiesz coś takiego :

Kod: Zaznacz cały

ii  arts                1.5.5-1             sound system from the official KDE release
ii  artsbuilder         3.5.5-2             synthesizer designer for aRts
ii  at                  3.1.10              Delayed job execution and batch processing
a ja potrzebowałbym tak :

Kod: Zaznacz cały

arts
artsbuilder
at
oczywiście jeśli nie ma jakiegoś gotowego polecenia to sobie poradzę z tym przy pomocy bash'a no ale może jest coś takiego ?
Gość

Post autor: Gość »

Kod: Zaznacz cały

dpkg -l | awk '{print $2}'
Pozdrawiam
jang
Beginner
Posty: 208
Rejestracja: 26 stycznia 2007, 14:38

Post autor: jang »

Ze względu na kolejny :-( problem który się pojawił :
apt-get -d install ... - nie chce ściągać pakietów które są zainstalowane w systemie

mam kolejne pytanie : czy jest jakieś polecenie które wyświetli nie : adduser a cały pakiet czyli : adduser_3.102_all.deb

reprepro nie potrafi instalować pakietu tak jak apt - apt-get install adduser tylko musi mieć : adduser_3.102_all.deb

Pozdrawiam i dziękuję za odpowiedzi.
Gość

Post autor: Gość »

jang pisze:mam kolejne pytanie : czy jest jakieś polecenie które wyświetli nie:adduser a cały pakiet czyli: adduser_3.102_all.deb
Tak wystarczy?

Kod: Zaznacz cały

apt-cache show adduser | sed '/Filename:/!d]
[b][u]DOPISEK:[/u][/b]
Na wszelki wypadek dopiszę jeszcze, że aby w ten sposób uzyskać od razu info o wszystkich zainstalowanych paczkach wystarczy mini skrypcik:
[code]#!/bin/bash

paczka="$(dpkg -l | awk '{print $2}')"

for x in $paczka; do
	apt-cache show "$x" \
	| sed '/Filename:/!d;{s/.*\///}'
done
Pozdrawiam
jang
Beginner
Posty: 208
Rejestracja: 26 stycznia 2007, 14:38

Post autor: jang »

Hagal
bardzo bardzo dziękuję,

i jeszcze jedno pytanko, ale może "umaluję" je na końcu posta.
No więc tak - dpgk -l wyświetlając coś na ekranie pokazuje również nagłówek :

Kod: Zaznacz cały

Wybór=U=Nieznany/I=Instalacja/R=Usunięcie/P=Wyczyszczenie/H=Zatrzymanie
| Stan=N=Brak/I=Zainst./C=Skonfig./U=Rozpakowany/F=Nieskonfig./H=Wpół-zainst.
|/ Błędy?=(brak)/H=Wstrzym./R=Do przeinst./X=Obydwa (Stan,Błędy:wielk.lit.=źle)
||/ Nazwa             Wersja            Opis
+++-=================-=================-=====================
który mnie osobiście w tym konkretnym przypadku nie jest do szczęścia potrzebny. Więc nie wypadało mi nic innego zrobić jak tylko z lekka zmodernizować Twój mini skrypcik :-) no i wyszło mi coś takiego (w tej wersji zmieniła się tylko paczka)

Kod: Zaznacz cały

paczka="$(dpkg -l | awk '{print $2}' | tail -n +6)
no i mam to co chciałem, czyli sam spis pakietów bez w/w nagłówka. No ale nie byłbym sobą gdybym nie spróbował jeszcze coś "namieszać" i efekt jest taki :

Kod: Zaznacz cały

paczka="$(dpkg -l | awk '{print $2}')"
for x in $paczka; do 
    apt-cache show "$x" | sed -e '1,5d' | sed '/Filename:/!d;{s/.*\///}'  >> /tmp/spis-deb
done
dodałem : sed -e '1,5d'
Czas już na pytanie - co faktycznie namieszałem ?
Przy tej drugiej wersji również w pliku mam to co chciałem, czyli to pytanie jest takie czysto teoretyczne ale może na przyszłość się przyda ? Chodzi o to że oprócz tego co chciałem mam na ekranie (to nie jest zapisywane do pliku) taki oto dodatek:

Kod: Zaznacz cały

W: Nie udało się odnaleźć pakietu Stan=N=Brak/I=Zainst./C=Skonfig./U=Rozpakowany/F=Nieskonfig./H=Wpół-zainst.
E: Nie znaleziono żadnych pakietów
W: Nie udało się odnaleźć pakietu Błędy?=(brak)/H=Wstrzym./R=Do
E: Nie znaleziono żadnych pakietów
W: Nie udało się odnaleźć pakietu Nazwa
E: Nie znaleziono żadnych pakietów
jang@ramireza:~$ ~/deb-spis1
W: Nie udało się odnaleźć pakietu Stan=N=Brak/I=Zainst./C=Skonfig./U=Rozpakowany/F=Nieskonfig./H=Wpół-zainst.
E: Nie znaleziono żadnych pakietów
W: Nie udało się odnaleźć pakietu Błędy?=(brak)/H=Wstrzym./R=Do
E: Nie znaleziono żadnych pakietów
W: Nie udało się odnaleźć pakietu Nazwa
E: Nie znaleziono żadnych pakietów
jang@ramireza:~$ ~/deb-spis1
W: Nie udało się odnaleźć pakietu Stan=N=Brak/I=Zainst./C=Skonfig./U=Rozpakowany/F=Nieskonfig./H=Wpół-zainst.
E: Nie znaleziono żadnych pakietów
W: Nie udało się odnaleźć pakietu Błędy?=(brak)/H=Wstrzym./R=Do
E: Nie znaleziono żadnych pakietów
W: Nie udało się odnaleźć pakietu Nazwa
E: Nie znaleziono żadnych pakietów
Absolutnie poprawny wynik uzyskałem po wprowadzeniu obydwu poprawek jednocześnie tzn:

Kod: Zaznacz cały

#!/bin/bash 

echo -n > /tmp/spis-deb

paczka="$(dpkg -l | awk '{print $2}' | tail -n +6)" 

for x in $paczka; do 
    apt-cache show "$x" | sed -e '1,5d' | sed '/Filename:/!d;{s/.*\///}'  >> /tmp/spis-deb
done
ale czy aby napewno muszą być obydwie czy też coś dałoby się poprawić tylko w pętli ?

Pozdrowienia
Gość

Post autor: Gość »

jang pisze:ale czy aby na pewno muszą być obydwie czy też coś dałoby się poprawić tylko w pętli?
Nie musi być ani jedna ani druga :)
Poza tym dzięki za zwrócenie uwagi na nagłówek - pisałem na szybko, więc mi umknęło.

Zauważ że dpkg -l poprzedza nazwę pakietu informacją o tym że jest zainstalowany (ii)

Skoro tak to całość wystarczy zapisać tak:

Kod: Zaznacz cały

#!/bin/bash

paczka="$(dpkg -l | grep '^ii ' | awk '{print $2}')"
lista="/tmp/spis-deb"

for x in $paczka]
i już grep odrzuci nam wszystkie linie nie rozpoczynające się od [b]ii[/b]

Pozdrawiam
ODPOWIEDZ