package.keywords cleaner

5 komentarzy

Z Gentoo to jest tak, że każdy używa go inaczej. Jedni zajmują się tweakowaniem wszystkiego, inni budują system bleeding edge, choć odnoszę wrażenie, że Ci po mału przesiadają się na Fedorę ... pewnie mylne wrażenie. Ja (i wielu innych) z kolei chcę, żeby w miarę możliwości wszystko zawsze działało bez większego zastanawiania się jak to działa i utrzymują system w wersji stable.
Przy okazji nie lubię kiedy system zaczyna aktualizować paczki które mam zainstalowane w wersji testing do kolejnych nie koniecznie stabilnych wersji, ciągnąc kolejne zależności również w wersjach nie oznaczonych jako stable. Krótko mówiąc odmaskowuję paczki dodając do /etc/portage/packages.keywords wpisy odnoszące się do konkretnej wersji danej paczki: $ grep netscape-flash /etc/portage/package.keywords =net-www/netscape-flash-9.0.31.0 ~x86 #=net-www/netscape-flash-9.0.60.0_beta100107 ~x86 =net-www/netscape-flash-9.0.124.0 ~x86 =net-www/netscape-flash-10_rc20080915 ~x86 No i to jest problem, wpisy się mnożą i mnożą, i niby nic strasznego bo plik nie jest rozmiarów monstrualnych, co najwyżej jest dużo większy niż mógłby być. $ ls -lh /etc/portage/package.keywords -rw-r--r-- 1 root root 11K IX 27 11:54 /etc/portage/package.keywords

A jaki mógłby być? Tu wkracza do akcji ultra hiper turbo nowoczesne narzędzie, w postaci perlowego skryptu: $ cat skrypty/portage/keywords-cleaner #!/usr/bin/perl # keywords-cleaner-0.2 # copyleft 2007-2008 by Jakub Klawiter # GNU GPL v3 or later blah, blah, blah # przeglada /etc/portage/package.keywords # i wypisuje paczki ktore nie sa zainstalowane # oraz sa zainstalkowane w innych (nowszych?) wersjach # czyli nie potrzebne w pliku. # DEPENDENCIES: # * app-portage/eix # MANUAL! :D # USAGE: # $ ./keywords-cleaner > package.keywords use strict; use warnings; my $keywords_file = '/etc/portage/package.keywords'; open(FH, $keywords_file) or die "can’t open $keywords_file : $!"; while ( <FH> ) { chomp; if ( $_ =~ /^=([0-9a-zA-Z\-\/]*)-([0-9a-zA-Z\-\_\.]*)/ ) { my ( $package, $version ) = ( $1, $2 ); my $eix_query = ( `/usr/bin/eix -e $1` ) or return 0; if (! ( $eix_query =~ /Installed versions:\s*([0-9a-z\.\-\_]*)[!\[\(]/ ) ) { printf STDERR "%-60s NOT installed!\n", $_; } elsif (! ( $version eq $1 ) ) { printf STDERR "%-60s OTHER version installed \n", $_; } else { print "$_\n"; } } } close FH;

Jak można tego cudaka użyć? Najpierw trzeba mieć w systemie zainstalowaną paczkę app-portage/eix, ale to akurat mają chyba wszyscy ;-). Później:

  1. # emerge -avuDN world aby upewnić się, że wszystkie paczki są zainstalowane w najnowszych możliwych wersjach (w celach testowych).
  2. Jako użytkownik (nie root) w katalogu ze skryptem: $ ./keywords-cleaner > package.keywords co skutkuje zapisaniem pliku package.keywords w katalogu programu.
  3. Następnie w konsoli root'a: # cd /etc/portage/ # mv package.keywords package.keywords.bak # backup ;-) # cp /home/wariat/skrypty/portage/package.keywords ./ # emerge -avuDN world Jeśli wszystko poszło tak jak powinno, to ostatnie emerge powie, że nie ma nic do roboty, gdyby buczał, że jakaś paczka nie istnieje lub próbował hacków z downgrade oznacza to tylko tyle, że skrypt jest do niczego. Wtedy można przywrócić kopię z pliku /etc/portage/package.keywords.bak

Efekt? $ ls -lh /etc/portage/package.keywords -rw-r--r-- 1 root root 2,4K IX 27 13:05 /etc/portage/package.keywords 80% pliku stanowiły śmieci, czy raczej pozostałości po paczkach których już w systemie nie ma, lub są w nowszych wersjach.

Uciekający kursor schwytany!

Dodaj komentarz

Kilka razy spotkałem się w starych laptopach z problemem kursora myszy który samowolnie udawał się w sobie tylko znanym kierunku. Trafiło też jakiś czas temu we Freda (starą Tecrę znaczy). A że ta była mi chwilowo potrzebna na dłużej co wykluczało permanentną obsługę z klawiatury, kursor siedział cały czas schowany w lewym dolnym rogu ekranu.
W pierwszym odruchu chciałem po prostu wyłączyć myszkę w systemie (u Freda mieszka Windows XP), kłopot polega na tym, że się nie da. Można odinstalować co powoduje, że winda chce zrobić restart, po którym instaluje łechtaczkę z powrotem, opcja wyłączenia urządzenia jest nieaktywna (de facto nieobecna).
Wpadłem na pomysł, że po prostu odepnę łechtaczkę od płyty i być może w ten sposób pozbędę się problemu. A kursor na ekranie napędzę za pomocą myszy podłączanej do USB.
Długo się nie zastanawiając wymontowałem klawiaturę dokonałem dwóch obserwacji:

  1. I klawiatura i łechtaczka wpięte są jedną taśmą, czyli nie da się odpiąć trzeba by wyciąć, a co jeśli przetnie się nie to co trzeba? ;)
  2. Styki tasiemki były okrutnie zaśniedziałe!
No to w ramach rozpoczynania od działań mało inwazyjnych, te styki oczyściłem (skrobiąc śrubokrętem, bo papier ścierny był całe piętro niżej - czyli ewidentnie za daleko. Zmontowałem staruszkę do kupy i ... jak ręką odjął. Jeśli ktoś jeszcze obserwuje początki życia u swojego kursora proponuję zajrzeć pod klawiaturę ... być może to ta sama przypadłość.

Pułapki (auto)Lokalizacyjne

5 komentarzy

Polska język trudna język, a bardziej Angielska język uboga (w słowa) język... To, że czasami Name znaczy Imię i Nazwisko to jeszcze nie znaczy, że ta musi być zawsze. :D
Hey Google! You're 0wn3D! :D

iGoogle settings translation bug

Registered Linux User #161416
Become a Friend of GNOME
wariat @ gógle