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:
# emerge -avuDN world
aby upewnić się, że wszystkie paczki są zainstalowane w najnowszych możliwych wersjach (w celach testowych).
$ ./keywords-cleaner > package.keywords co skutkuje zapisaniem pliku package.keywords w katalogu programu.
# 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.
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: