Gdyby kompilacja sypała mi się co chwilę, to też już dawno dałbym sobie spokój... ale tak nie jest i Gentoo nie sprawia mi żadnych problemów. Przez pół roku miałem dosłownie jeden problem nad którym musiałem chwilę posiedzieć -
wyglądał on tak.
Ale niech Wam już będzie, czasem (ale to bardzo rzadko) kompilacja potrafi się wywalić przy aktualizacji czegoś tam, tyle że wynika to z używania przeze mnie gałęzi rozwojowej i przeważnie to tylko jakiś drobny błąd w danym ebuildzie - skopane zależności czy coś w ten deseń. Specjalnie się tym przejmować nie ma sensu, bo problem i tak zniknie tak samo szybko jak się pojawił - wraz z poprawionym ebuildem po kolejnym zsynchronizowaniu drzewa.
Nie bawię się w jakieś wymyślne optymalizacje
CFLAGS i
CXXFLAGS, bo raz, że mi się nie chce, a dwa, że pożytek z tego w sumie żaden. Więcej z tym problemów - choćby wywalających się kompilacji właśnie, niż jakichkolwiek odczuwalnych korzyści. Mam tak:
Kod: Zaznacz cały
CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
i nie widzę najmniejszej potrzeby tego ruszać.
Flagi
USE - nie wiem jak było kiedyś, ale mi się chyba nigdy kompilacja nie wysypała przez źle ustawione, "brakujące" flagi
USE. Przyczyna tego jest bardzo prosta - jeśli coś nie gra, to portage krzyczy o tym jeszcze przed kompilacją i do takiej "wybrakowanej" kompilacji w ogóle nie dopuści.
¯eby maksymalnie ułatwić sobie życie mam ustawiony profil "desktop" - daje mi to pojęcie o tym, które flagi są najczęściej używane na systemach biurkowych. Zamiast przekopywać się przez dziesiątki flag w poszukiwaniu tych, które włączyć, zastanawiam się głównie nad tym, które z tych już włączonych wyłączyć. Tak jest szybciej i w moim mniemaniu łatwiej.
W
make.conf trzymam wyłącznie globalnie ustawione minusy (trochę się tego uzbierało), a dodatkowe flagi ustawiam lokalnie dla każdego pakietu w
package.use. Każdy ma jakiś swój system zarządzania flagami
USE - u mnie ten się sprawdza i nie zamierzam go zmieniać.
Aktualizuję przeważnie tak - najpierw:
Przeglądam co tam złego czy dobrego aktualizacja ze sobą niesie. Czasem coś zamaskuję, czasem odmaskuję, czasem dorzucę czy odejmę jakąś flagę
USE. Jak wszystko gra, to puszczam:
W
make.conf wrzucone
PORTAGE_NICENESS="19" - kompilacja leci sobie w tle zupełnie nie przeszkadzając w normalnym używaniu systemu. Jak już skończy, wypada przejrzeć co tam ciekawego portage ma do powiedzenia - na przykład przez
elogv.
Jeżeli coś "nadprogramowo" należy wykonać po aktualizacji, to te informacje zazwyczaj zostają jasno przekazane. Poza tym narzędzia takie jak:
dispatch-conf,
revdep-rebuild,
lafilefixer,
perl-cleaner, emerge z opcją
--depclean czy set
@preserved-rebuild nie są w Gentoo dlatego, że mają fajne nazwy, a po to żeby ich używać i utrzymać system "w pionie".
Ja w sumie nic więcej ze swoim systemem nie robię, aktualizuję raz w tygodniu, czasem częściej, czasem rzadziej - nie dbam o niego jakoś specjalnie, a problemów żadnych nie mam. I co ważne - nie jest to w ogóle uciążliwe - trzy aliasy na krzyż i niemal pełna automatyzacja.