O makeopts który przekazuje parametry do gcc
Prawdopodobnie chodzi o to ustawienie:
-j [JOBS], --jobs[=JOBS]
Specifies the number of packages to build simultaneously. If this option is given without an argument, emerge will not limit the number of jobs that can run simultaneously. Also see the related --load-average option. Similarly to the --quiet-build option, the --jobs option causes all build output to be redirected to logs. Note that interactive packages currently force a setting of --jobs=1. This issue can be temporarily avoided by specifying --accept-properties=-interactive.
https://dev.gentoo.org/~zmedico/portage/doc/man/emerge.1.html
Też mi się tak wydaje. To jest nawet w oficjalnym poradniku
https://wiki.gentoo.org/wiki/MAKEOPTS
ale może jeszcze gdzieś jest inny znaczący parametr -j ?
Tak myślałem. Przełącznik -j przy MAKEOPTS mówi kompilotorowi ile procesorów/rdzeni/wątków ma użyć do kompilacji. Ja miałem na myśli opcję emerge (-j/–jobs), która mówi emerge ile zadań jednocześnie (ile pakietów) ma kompilować.
Jednym słowem:
MAKEOPTS="-j8" - wykorzystaj 8 rdzeni do kompilacji
EMERGE_DEFAULT_OPTS="-j20" - kompiluj 20 pakietów na raz jeśli to możliwe
EMERGE_DEFAULT_OPTS="-j20 --load-average 20" - kompiluj 20 pakietów na raz jeśli to możliwe i staraj się nie przekraczać load powyżej 20.
Dokładnie o to chodzi
Gdyby komuś przyszło do głowy instalować bez tych przełączników, to i3-5010U kompilował 238 pakietów (gentoo+kde) przez 7 godzin. A potem wysypał się przy kompilacji kernela i było po instalacji.
Instalacja gentoo to kpina z użytkowników - wpisywanie ponad 20 poleceń bez zmian za każdym razem, a można by to zrobić prostym skryptem przygotowanym przez twórców.
Przecież nie ma obowiązku instalacji “czystego” Gentoo. Możesz wybrać dystrybucję opartą o Gentoo, np. Sabayon - będziesz miał swoje proste skrypty.
Kpina z jakich użytkowników? Tych, ktorzy nie potrafią czytać dokumentacji, czy tych którym nie chce się czytać.
Gdy pierwszy raz w życiu instalowałeś Linuksa, to robiłeś to w ciemno, czy posilkowales się jakimś poradnikiem?
Poza tym Gentoo daje Ci pełną kontrolę nad system, więc nie dziw się, że kazdy musi dostosować go po swojemu. Wolę siedzieć 2 dni przy Gentoo i wiedzieć co w trawie piszczy, niż reinstalować srubuntu, bo się zesralo niewiadomo czemu.
Ja jechałem w ciemno
Linux to nie windows terminala i poleceń i tak zawsze będziesz potrzebować, w jednym więcej,
w innym mniej.
No i okej. Ja też pierwszy raz jechałem w ciemno, gdy próbowałem w 2006 zainstalować Mandrake 6.5 i tym sposobem wyczyściłem sobie dysk z XP i plikami. Pliki te były dla mnie ważne, ponieważ kiedyś zajmowałem się muzyką i wszystkie podkłady szlag trafił. Od tamtego czasu wolę czytać dokumentację.
Poza tym wiki Gentoo jest szczegółowe i czytelne, starsza wersja była lepsza i po polsku, ale w odmentach internetu można się dogrzebac do starej dokumentacji.
Poza tym Arch również ma świetne wiki i czesto jak nie wiki Gentoo, to wiki Archa jest moim miejscem pozyskiwania wiedzy i to nawet gdy korzystałem z Debiana, gdyż jest to uniwersalna dokumentacja. Nie jak w przypadku lubudubu, centos, redhat czy innego systemu.
Ja nawet w Windows ile mogę używam cmd lub ps.
Nie wszyscy są ekspertami od cmd czy linuksowych terminali.
Jeżeli chodzi o mnie to cmd wcale nie znam.
CMD jest akurat straszne ubogie, PS trochę lepiej. Też nie znam aż tak mocno CMD, ale wolę użyć, np. ipconfig niż przeklikiwac się przez setki opcji, żeby zobaczyć konfigurację protokołu ip szybciej też przypisze adres ip statycznie lub dhcp z cmd, założę konto uzytkownika lub zmienię haslo bez logowania się na czyjeś konto
W każdym razie chodzi o to, że systemy jak Gentoo czy Slackware dają użytkownikowi pełna kontrolę, ubuntu czy mint już nie, bo ktoś skonfigurował system za uzytkownika i musi na tym polegać. Mamy wybór, więc po co mieć pretensje, że w Gentoo czy Slackware trzeba skonfigurować system samemu. One są kierowane do innej grupy odbiorców.
Gdyby Microsoft dał mi wybór: gotowy Windows 10 i Windows 10 core tylko z CMD, który trzeba przeklikac, doinstalować usługi itp. wybrałbym ten drugi, zeby uruchomić tylko to co potrzebuję i optymalizować wydajność systemu.
Dobrze ale jak bym miał np. przeprowadzić optymalizację i konfigurację Gentoo pod dany
hardware, dużo zależy również od niego?
Ja bez poradnika lub porady eksperta nie wiem czy bym sobie poradził.
Rozumiałbym, gdyby te polecenia dawały jakiś wybór czy jakąś większą kontrolę i każde z nich wprowadzało nasze określone parametry. Problem polega na tym, że te pierwsze kilkanaście poleceń wklepywanych przed chroot nie dają żadnej kontroli, bo wszystkie polecenia należy wklepać dokładnie tak, jak w dokumentacji. Zamiast nich powinien być prosty skrypt, który wykona je za nas, potem fdisk i znów skrypt przenoszący nas od razu do środowiska z chroot. Już nie wymagam instalatora graficznego, bo to bez sensu, ale upchanie tych kilkunastu poleceń w skrypcie to nie jest jakiś wyczyn dla twórców.
Od sprzętu? Generalnie ustawiasz wszystko w make.conf. Możesz kompilować na sprzęcie pod dowolną architekturę, np. dla RPi po tcp/ip, wszystko tam okreslasz. Sprawa jest ułatwiona, jak nie znasz swojej architektury, to używasz opcji -march=native, kompilator sobie sprawdzi Twoją architekturę. Z racji tego, że twórcy Gentoo ułatwili ludziom życie, stage3 i stage4 to prekompilowane pakiety, czyli binarki. Wówczas musisz przekompilowac system pod swój sprzęt poleceniem emerge -e system. Wcześniej możesz też zrobić bootstrap, coś ala stage1/2. Gdy to zrobisz, kompilacja zapitala jeszcze szybciej, różnicę widać gołym okiem.
System pomiędzy prockami intela jest przenośny. Przenosilem system ze statego laptopa, na nowy z i5 2 generacji, na i5 6 generacji i ponownie wykonalem bootstrap i emerge -e system. Nie przenosilem nigdy na inną architekturę, np. amd, ale gdyby system się nie uruchomił, to zawsze można go przekompilowac w chroot
Pakiety dla slabego sprzętu możesz kompilować na 2 sposoby. Po tcp/ip lub skompilować pakiet pod wybraną architekturę bez instalacji i wskazać mocny sprzęt jako reppozytorium pakietów binarnych lub przenieść je na i zainstalować z binarek. Przy kompilacji mozesz tworzyć pakiety binarne. Przydaje się, gdy np. masz 20 systemów do zaktualizowania. Kompilujesz na jednym, reszta instaluje sobie już pakiety binarne.
Szybka instalacja Gentoo wygląda tak:
- Rozpakowujesz stage do /mnt/gentoo
- Robisz chroot instalujesz niezbędne do uruchomienia rzeczy jak Grub, kernel, dhcpcd itp.
- Kompilujesz jajko
- Restartujesz system.
- Jeśli dobrze przygotowałeś jajko i system wystartował, konfigurujesz sobie make.conf
- Po konfiguracji make.conf (ustawienia kompilatora, flagi, język, platformy itp.); rekompilujesz system.
- Po rekompilacji systemu instalujesz resztę rzeczy, np. KDE.
- Po zainstalowaniu DE, instalujesz soft wedle uznania.
Całość zajmuje mi 20 - 40 minut. Jeśli masz słaby sprzęt bez ssd, to myślę, że w max. 2h postawiłbyś działające Gentoo
Punkt 6. jest opcjonalny. Zawsze można go zrobić na samym końcu po instalacji całego softu.
Ja pomijam ustawienia locale, bo korzystam z systemu w języku angielskim, gdyż jest mi tak wygodniej, a tłumaczenia softu na polski to czasami śmiech na sali
Zresztą locale i strefę czasową można ustawić na samym końcu i tak przy pierwszej aktualizacji system lub world przebudujesz sobie system