Wpis z mikrobloga

W sumie to korzystam z #ubuntu i fajnie jest wtedy. ( ͡° ͜ʖ ͡°) Nie zawsze wszystko działa jakbym sobie tego żył, ale generalnie jest OK. Chciałbym się dopytać o samo kompilowanie programów. Często na githubie widzę "kompiluj używając cmake" itp. Jeszcze tego nie robiłem, bo trochę się cykam, że zniszczę sobie system i będę potrafił tego odkręcić, ale jak to działa? Postępuję zgodnie z instrukcjami i program jest na dysku (wiadomo), ale gdzie dokładnie? Jakie są zalety kompilowania samemu sobie programów? Kompilator dobierze w tle automatycznie jakieś parametry dopasowane pod moją konfigurację sprzętowo-systemową? Jeśli ten sam program jest w AppImage lub Flatpaku i w wersji do samodzielnej kompilacji, to lepiej go sobie samodzielnie skompilować? Czy jest gdzieś to wytłumaczone dla całkowitego nooba?
Sorry jeśli to głupie pytania. Próbowałem się trochę rozeznać, ale na tym etapie mojej wiedzy mam trochę mętlik.


#linux
  • 9
  • Odpowiedz
to lepiej go sobie samodzielnie skompilować?


@Commodore_64: nie, będziesz musiał dociągać gigabajty zależności, w zależności od softu czekać sporo czasu a efektów tego praktycznie brak nawet jakbyś ustawił ultra agresywne flagi optymalizujące dla kompilatora.

tl;dr szkoda czasu i prądu
  • Odpowiedz
@Commodore_64: @Kryspin013 Nie do końca.

Porównując do FlatPack lub AppImage to kompilowanie jest lżejsze. Kompilowanie wymaga pobrania dużo dodatkowych plików – tzw. plików nagłówkowych. Ale pobiera się je raz i służą one wszystkim kompilowanym programom. W przypadku FlatPacków i AppImage, dostarczają one wiele kopii tych samych bibliotek, bo biblioteki nie są współdzielone między programami.

Dodatkowo, uruchamianie własnoręcznie skompilowanych programów jest szybsze od Flatpack i AppImage, ale powodem jest głównie to, że po prostu nie ma dodatkowych chrootów i
  • Odpowiedz
Porównując do FlatPack lub AppImage to kompilowanie jest lżejsze.


@psiversum: co? xD

Kompilowałeś kiedyś np firefoxa i widziałeś ile tam jest zależności i ile ramu jest do tego potrzebne?
  • Odpowiedz
Kompilowałeś kiedyś np firefoxa i widziałeś ile tam jest zależności i ile ramu jest do tego potrzebne? xD


@Kryspin013: Bez jaj, kto normalny sam kompiluje Firefoxa czy Chromium. Nie popadajmy w skrajności. Ale tak, masz rację. Bardzo dużo zależy od tego co się dokładnie robi i jaką instalację chce uzyskać. Dlatego też napisałem, że przy standardowych instalacjach, własnoręczne kompilowanie nie ma sensu, ale odniosłem się wyłącznie do wyboru src vs pkg.

Jeżeli nie ma programu w reposytorium, a mamy wybór FlatPack, AppImage, kompilacja to trzeba sobie zadać kilka pytań:
- czy flatpack lub appimage stanowi dla nas jakiś problem
  • Odpowiedz
Kompilowanie pozwala jednak zmniejszyć znacząco instalację, ale jedynie przy już i tak małych instalacjach. Flagi kompilacji dają możliwość niewkompliowywania pewnych funkcji, wymagających jakichś dodatkowych bibliotek. Kiedyś można było w ten sposób znacząco zminimalizować ilość bibliotek w systemie, ale dzisiaj zależności są jak pokręcone, że przy standardowej instalacji, prędzej wywali się kompilacja niż uzyska się wspomniany efekt.


@psiversum: I zakładasz, że OP będzie doktoryzował się z każdego projektu który będzie chciał skompilować by by wiedzieć jakie funkcje powyłączać w programie. Nie wspominając już z ręcznym dobieraniem zależności i często #!$%@? się z poprawką flag np. dla gcc bo ten np czegoś sobie sam znaleźć nie może XD

Kompilacja to praktycznie ostateczność tzn jak masz jakiś konkretny cel w tej kompilacji: zmiana programu, optymalizacja pod konkrenty procek, oszczędność miejsca. 2 ostatnie praktycznie od kilku lat dotyczą tylko jakiś słabych proców w
  • Odpowiedz
@Kryspin013: ty to mocno przygłupi jednak jesteś. Ja kolesiowi podręcznikowo odpowiadam na pytania, bez stawiania ostatecznej tezy, a Ty się dowalasz :D Weź albo jeszcze z 10 razy przeczytaj co napisałem, albo w łeb się jebnij :D

Słucham. Co napisałem niepoprawnie?
  • Odpowiedz
@Kryspin013: Bez jaj, kto normalny sam kompiluje Firefoxa czy Chromium.


@psiversum: mi sie zdarzało jak potrzebowałem coś eksperymentalnie włączyć.

Słucham. Co napisałem niepoprawnie?


@psiversum: Przyznaję ci rację. Głowa mnie #!$%@? a cała twoja wypowiedź zabrzmiała jak dla mnie zbyt zachęcająco do kompilowania co dla newbie i to jeszcze desktop usera kompletnie nie ma sensu.
  • Odpowiedz