Jusko Napisano Grudzień 2, 2009 Zgłoszenie Share Napisano Grudzień 2, 2009 Witam. Lubię mieć porządek w systemie, a GNU/Linux jest taki, że jak ktoś nie uważa, to w mig naśmieci sobie w systemie bibliotekami, o których zapomni a są niepotrzebne i zajmują miejsce. Sprawa wygląda tak. Zainstalowałem poprzez Dodaj/Usuń pakiet XYZ, który wymagał np. 10 zależności. Pakiet XYZ przestał być potrzebny, więc poprzez Dodaj/Usuń go wywaliłem. Zależności po pakiecie jednak pozostały. I jak się teraz tego pozbyć? Dobrze, że dziennik pakietów jest pod ręką, to przynajmniej zajrzałem tam i ręcznie zależności potem wywaliłem po nazwach z dziennika. To jednak nie jest rozwiązanie, bo w mig naśmiecę sobie zależnościami w systemie. Jak skutecznie z tym walczyć? W Aptitude czy Apt-get problem nie występował, bo te managery sprawnie radziły sobie z zależnościami. Jak jest w przypadku Dodaj/Usuń, czyli bardziej patrząc pod maskę - Yum? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
multics Napisano Grudzień 2, 2009 Zgłoszenie Share Napisano Grudzień 2, 2009 man package-cleanup Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
sokar620 Napisano Grudzień 2, 2009 Zgłoszenie Share Napisano Grudzień 2, 2009 W F12 (może też i wcześniejszych wersjach) dostępne jest narzędzie yum history, np: yum history info xorg-x11-server-Xorg [...]Identyfikator transakcji : 62 [...] Zmienione pakiety: Updated xorg-x11-server-Xorg-1.7.1-7.fc12.i686 Update 1.7.1-7.fc12.2.rex.i686[...] Ważny jest identyfikator transakcji. Teraz wystarczy w tym przypadkuyum history undo 62 Oczywiście narzędzie jest przydatne w przypadku jeśli instalowałeś program za pomocą yum install X, ale zawsze wyświetlona będzie lista wszystkich pakietów instalowanych w określonej transakcji yuma. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Jusko Napisano Grudzień 2, 2009 Autor Zgłoszenie Share Napisano Grudzień 2, 2009 Cóż - dziękuję za odpowiedzi. Nie zlinczujcie mnie teraz, ale po przesiadce z Aptitude jako managera widzę, że był on znacznie inteligentniejszy od Yuma...I że powtarzany niby minus, że Yum nie jest bardzo ciasno zintegrowany z systemem, jest prawdą Ale idźmy dalej. Co, jeśli chcę odinstalować coś preinstalowanego - Gimpa czy Evolution? Wtedy pozostają zależności a nie znam ich Tak samo przykładowo PulseAudio - yum remove pulseaudio usunie tylko plugin odpowiedzialny za komunikację z systemem, a reszta zależności siedzi w nim dalej Może zapytam tak: ja Wy sobie z tym radzicie? Widzę już, że z Dodaj/Usuń nie ma co korzystać, bo nie dba o zależności. p.s: muszę poszukać, czy nie ma gdzieś programiku GtkOrphan - dobry był do tego typu spraw, choć o to powinien dbać manager pakietów... Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Grudzień 2, 2009 Zgłoszenie Share Napisano Grudzień 2, 2009 Może zapytam tak: ja Wy sobie z tym radzicie?Osobiście mnie to nie boli, ale jeśli usuwasz jakis pakiet, to możesz wcześniej uruchomić zapytanie rpm -qa --requires <nazwa_usuwanego_pakietu> Powinien pokazać wszystkie zależności pakietu. Oczywiście od jednego pakietu może zależeć wiele innych nie tylko ten, który usuwasz. Chodzi mi o to, że instalujesz pakiet A, który wymaga zainstalowania pakietu B. Yum od razu to zauważy i dociągnie pakiet B. Potem instalujesz pakiet C, który też zależy od B, ale to już nie jest tak jawne, bo yum widzi że pakiet B jest już w systemie. No i teraz odinstalowujesz pakiet A. Sprawdzasz sobie "rpm -qa --requires A", otrzymujesz B. Próbujesz wywalić też pakiet B... I tu niespodzianka, bo yum w ramach zależności chce usunąć C To chyba jakoś mętnie brzmi... Yum się wciąż rozwija, ale ostatnio deweloperzy skupili się chyba na szybkości działania a nie na funkcjonalności. Szybkość działania jest już IMHO niezła, więc może za jakiś czas yum będzie umiał określić zależności i jednocześnie rozpoznać, które z nich można usunąć, bo nie są już wymagane przez żaden inny pakiet. Na razie jest jak jest, ale i tak chwała deweloperom za uwolnienie nas od piekła zależności (przynajmniej przy instalacji ). Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Jusko Napisano Grudzień 2, 2009 Autor Zgłoszenie Share Napisano Grudzień 2, 2009 Masakra z tymi zależnościami. Przykład to sam Pidgin: [root@Jusko ~]# rpm -qa --requires pidgin /bin/sh /bin/sh /bin/sh /bin/sh GConf2 GConf2 GConf2 glib2 >= 2.22 libICE.so.6()(64bit) libORBit-2.so.0()(64bit) libSM.so.6()(64bit) libX11.so.6()(64bit) libXext.so.6()(64bit) libXss.so.1()(64bit) libatk-1.0.so.0()(64bit) libbonobo-2.so.0()(64bit) libbonobo-activation.so.4()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libcairo.so.2()(64bit) libdbus-1.so.3()(64bit) libdbus-glib-1.so.2()(64bit) libebackend-1.2.so.0()(64bit) libebook-1.2.so.9()(64bit) libedata-book-1.2.so.2()(64bit) libedataserver-1.2.so.11()(64bit) libfontconfig.so.1()(64bit) libfreetype.so.6()(64bit) libgconf-2.so.4()(64bit) libgdk-x11-2.0.so.0()(64bit) libgdk_pixbuf-2.0.so.0()(64bit) libgio-2.0.so.0()(64bit) libglib-2.0.so.0()(64bit) libgmodule-2.0.so.0()(64bit) libgobject-2.0.so.0()(64bit) libgstbase-0.10.so.0()(64bit) libgstfarsight-0.10.so.0()(64bit) libgstinterfaces-0.10.so.0()(64bit) libgstreamer-0.10.so.0()(64bit) libgthread-2.0.so.0()(64bit) libgtk-x11-2.0.so.0()(64bit) libgtkspell.so.0()(64bit) libidn.so.11()(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit) libnsl.so.1()(64bit) libpango-1.0.so.0()(64bit) libpangocairo-1.0.so.0()(64bit) libpangoft2-1.0.so.0()(64bit) libpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.2.5)(64bit) libpurple = 2.6.3-2.fc12 libpurple.so.0()(64bit) libresolv.so.2()(64bit) librt.so.1()(64bit) libsoup-2.4.so.1()(64bit) libstartup-notification-1.so.0()(64bit) libxml2.so.2()(64bit) rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(VersionedDependencies) <= 3.0.3-1 rtld(GNU_HASH) xdg-utils rpmlib(PayloadIsXz) <= 5.2-1 Coś tu chyba nie gra jak ma Czyli jednym słowem - Yum nie troszczy się o wywalanie zależności, tak? Rozwiązaniem jest chyba tylko sposób podany przez sokar620, choć muszę obadać package-cleanup. Przyznam, że zawiodłem się w takim razie troszkę na Yum. Nie dziwię się teraz, że była idea portu apta dla Red Hat system based. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Grudzień 2, 2009 Zgłoszenie Share Napisano Grudzień 2, 2009 Rozwiązaniem jest chyba tylko sposób podany przez sokar620,Raczej nie. Podałem wyżej przykład. Jeśli instalacja pakietu A i zależnego B to transakcja #1, a instalacja pakietu C (już bez pakietu B, bo jest w systemie) to transakcja #2, to odinstalowanie pakietów z transakcji #1 powoduje również usunięcie pakietu z transakcji #2 (który być może chcesz zachować i wtedy należy pozostawić pakiet . Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Jusko Napisano Grudzień 2, 2009 Autor Zgłoszenie Share Napisano Grudzień 2, 2009 Więc przyznam szczerze...już nie wiem, jak mam troszczyć się o te zależności w systemie... Nie chcę mieć zależności po usuniętym programie. Co za korzyść, gdy program musi dociągnąć np. 70MB zależności, a usunięcie programu usunie samą aplikację, która waży 2MB. Reszta, czyli te 70MB jest na dysku i zajmuje mi niepotrzebnie miejsce. rpm -qa --requires na podstawie Pidgina przegięło chyba - gdzie tu /bin/bash czy rpmlib Rozumiem, że cofanie transakcji to metoda dość bezpośrednia, ale patrząc na rpm --qa --requires pidgina to ja już nie wiem, co jest wymagane przez system, a co zwykłym depends Pidgina do wywalenia. A te przypadki pewnie się pomnoży :lammer: Dla mnie po odstawce Apta to prawdziwe piekło zależności Wybaczcie tę "lamerskość", ale lata z Aptitude zrobiły swoje, a tam kompletnie nie musiałem w ogóle myśleć o takich przeszkodach jak tutaj. Dlatego nie mam kompletnie doświadczenia w tej materii z Fedorą i czuję się zupełnie zielony. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
menth0l Napisano Grudzień 2, 2009 Zgłoszenie Share Napisano Grudzień 2, 2009 Istnieje plugin do yuma, który po odinstalowaniu pakietu listuje pakiety, które można bezpiecznie usunąć: yum-show-leaves Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
thof Napisano Grudzień 2, 2009 Zgłoszenie Share Napisano Grudzień 2, 2009 Właściwie to yum usuwa z zależnościami, ale tylko tymi, które nie są wymagane przez inne programy. I tu jest dziwne zjawisko, bo to, że przed instalacją jakiś pakiet był niepotrzebny nie oznacza, że nie wpadnie w jakąś zależność po instalacji (tak wynika z moich obserwacji). Taki jest właśnie rpm. Właściwie to ja nie widzę problemu, bo prędzej czy później te biblioteki i tak zostałyby doinstalowane, a pamięć na dyskach twardych jest teraz tania, więc kilka MB nie robi różnicy. Ewentualnie jak ktoś chce zwolnić sobie trochę pamięci to może wylistować pakiety zainstalowane i pousuwać niepotrzebne. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Jusko Napisano Grudzień 2, 2009 Autor Zgłoszenie Share Napisano Grudzień 2, 2009 Przeglądałem w dodaj/usuń listę pluginów do Yuma. Znalazłem takie coś jak yum-plugin-remove-with-leaves, a jego opis był taki: This plugin removes any unused dependencies that were brought in by an install but would not normally be removed. It helps to keep a system clean of unused libraries and packages. Instaluję, wchodzę do helpa Yuma i co widzę? Opcje wtyczki: --leaves-exclude-bin do not remove leaf packages which contain executable binaries --remove-leaves remove dependencies no longer needed by any other packages No to daję np. yum remove wine --remove-leaves i tu wyskakuje Wine i Xyz pakietów z zależnościami do deinstalacji Z tym, że faktycznie troszkę mniej ich niż przed instalacją :-D I to też różnie, bo np. Pidgin z tym parametrem to niby nie ma zależności do usunięcia (a co z Libpurple przykładowo?). Empathy podobnie. Ale taki Wine etc - mają. Więc widocznie coś tam usuwać musi. A zależy mi tak na tym, bo jeśli nie będzie się o to dbać, to powoli, ale systematycznie będzie coraz mniej miejsca, coraz więcej nieużywanych bibliotek w systemie, o większości się nie wie, później przyjdzie upgrade do nowego wydania a śmieci nadal zostaną, a znów potem kolejne biblioteki będą niepotrzebnie zostawać itd. Takie błędne koło. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
thof Napisano Grudzień 2, 2009 Zgłoszenie Share Napisano Grudzień 2, 2009 Pidgin z tym parametrem to niby nie ma zależności do usunięcia (a co z Libpurple przykładowo?).Ty tak zawsze pytasz o wszystko? Może zacznij czytać ze zrozumieniem i trochę sam główkować. Nie będę cytował mojego poprzedniego posta tylko wkleję kod z konsoli może trochę się wyjaśni: [root@localhost ~]# yum remove pidgin --remove-leaves Loaded plugins: refresh-packagekit, remove-with-leaves Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package pidgin.i686 0:2.6.3-2.fc12 set to be erased --> Finished Dependency Resolution removing gtkspell-2.0.15-2.fc12.i686. It is not required by anything else. --> Running transaction check ---> Package gtkspell.i686 0:2.0.15-2.fc12 set to be erased --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Removing: gtkspell i686 2.0.15-2.fc12 installed 69 k pidgin [root@localhost ~]# yum remove pidgin --remove-leaves Loaded plugins: refresh-packagekit, remove-with-leaves Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package pidgin.i686 0:2.6.3-2.fc12 set to be erased --> Finished Dependency Resolution removing gtkspell-2.0.15-2.fc12.i686. It is not required by anything else. --> Running transaction check ---> Package gtkspell.i686 0:2.0.15-2.fc12 set to be erased --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Removing: gtkspell i686 2.0.15-2.fc12 installed 69 k pidgin i686 2.6.3-2.fc12 installed 2.8 M Transaction Summary ================================================================================ Remove 2 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s) Is this ok [y/N]: n Exiting on user Command Complete! i686 2.6.3-2.fc12 installed 2.8 M Transaction Summary ================================================================================ Remove 2 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s) Is this ok [y/N]: n Exiting on user Command Complete! [root@localhost ~]# yum remove libpurple Loaded plugins: refresh-packagekit, remove-with-leaves Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package libpurple.i686 0:2.6.3-2.fc12 set to be erased --> Processing Dependency: libpurple.so.0 for package: nautilus-sendto-2.28.0-1.fc12.i686 --> Processing Dependency: libpurple.so.0 for package: pidgin-2.6.3-2.fc12.i686 --> Processing Dependency: libpurple = 2.6.3-2.fc12 for package: pidgin-2.6.3-2.fc12.i686 --> Running transaction check ---> Package nautilus-sendto.i686 0:2.28.0-1.fc12 set to be erased ---> Package pidgin.i686 0:2.6.3-2.fc12 set to be erased --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Removing: libpurple i686 2.6.3-2.fc12 installed 22 M Removing for dependencies: nautilus-sendto i686 2.28.0-1.fc12 installed 571 k pidgin i686 2.6.3-2.fc12 installed 2.8 M Transaction Summary ================================================================================ Remove 3 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s) Is this ok [y/N]: n Exiting on user Command Complete! [root@localhost ~]# yum remove nautilus-sendto Loaded plugins: refresh-packagekit, remove-with-leaves Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package nautilus-sendto.i686 0:2.28.0-1.fc12 set to be erased --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Removing: nautilus-sendto i686 2.28.0-1.fc12 installed 571 k Transaction Summary ================================================================================ Remove 1 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s) Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : nautilus-sendto-2.28.0-1.fc12.i686 1/1 Removed: nautilus-sendto.i686 0:2.28.0-1.fc12 Complete! [root@localhost ~]# yum remove pidgin --remove-leaves Loaded plugins: refresh-packagekit, remove-with-leaves Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package pidgin.i686 0:2.6.3-2.fc12 set to be erased --> Finished Dependency Resolution removing gtkspell-2.0.15-2.fc12.i686. It is not required by anything else. removing libpurple-2.6.3-2.fc12.i686. It is not required by anything else. removing cyrus-sasl-md5-2.1.23-4.fc12.i686. It is not required by anything else. removing cyrus-sasl-plain-2.1.23-4.fc12.i686. It is not required by anything else. removing meanwhile-1.1.0-2.fc12.i686. It is not required by anything else. removing libsilc-1.1.10-1.fc12.i686. It is not required by anything else. --> Running transaction check ---> Package cyrus-sasl-md5.i686 0:2.1.23-4.fc12 set to be erased ---> Package cyrus-sasl-plain.i686 0:2.1.23-4.fc12 set to be erased ---> Package gtkspell.i686 0:2.0.15-2.fc12 set to be erased ---> Package libpurple.i686 0:2.6.3-2.fc12 set to be erased ---> Package libsilc.i686 0:1.1.10-1.fc12 set to be erased ---> Package meanwhile.i686 0:1.1.0-2.fc12 set to be erased --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Removing: cyrus-sasl-md5 i686 2.1.23-4.fc12 installed 64 k cyrus-sasl-plain i686 2.1.23-4.fc12 installed 30 k gtkspell i686 2.0.15-2.fc12 installed 69 k libpurple i686 2.6.3-2.fc12 installed 22 M libsilc i686 1.1.10-1.fc12 installed 1.0 M meanwhile i686 1.1.0-2.fc12 installed 273 k pidgin i686 2.6.3-2.fc12 installed 2.8 M Transaction Summary ================================================================================ Remove 7 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s) Is this ok [y/N]: Hint: nautilus-sendto i dziwne zależności, o których pisałem w poprzednim poście. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Jusko Napisano Grudzień 2, 2009 Autor Zgłoszenie Share Napisano Grudzień 2, 2009 Dzięki za odpowiedzi. Nie - nie pytam o wszystko - szokiem małym jest dla mnie po prostu przerzutka na RPM i yum,bo z Debianem nie mam tylu przygód - po prostu normalnie bez problemu go użytkuję. Akurat pytanie o libpurple bardziej było luźnym przemyśleniem niewymagającym odpowiedzi - taka luźna myśl. Ale skoro odpowiedziałeś - doceniam to :-) A co do główkowania - bez tego to można używać chyba tylko Ubuntu, niczego innego Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się