Pakao (među)zavisnosti? Kako rešavate?

Knight

Member
Joined
Jun 18, 2012
Messages
181
Reaction score
0
Skinete izvorni kod nekog programa, i krenete da ga kompajlirate i instalirate, da li imate neke smernice, kako izaći iz Pakla (među)zavisnosti? Da li imate neki šablon ili okvir kojeg se držite?

Npr. neke programe sam lako instalirao, ali kod nekih recimo… imao sam problem da provalim uopšte šta je tu zapravo međuzavisnost (ok nekad je internet pomagao, a nekad i nije), tj. koji paket je potrebno instalirati da bi se rešila neka (među)zavisnost, a ovime nekad nastanu i čitavi lanci novih (među)zavisnosti. Kako se vi borite sa ovim?

Kakvih ili da li ima nekih boljih fora kako da se vidi, sem čitanja tekstualnih fajlova koji idu uz izvorni kod, kako da se izbori sa zavisnostima?

I kao neko dodatno pitanje, kako se kod optimizuje tačno za određenu platformu na ovaj način, npr. u gcc-u ili…?
 
Last edited:

Filip

Active member
Joined
Jul 21, 2012
Messages
2,497
Reaction score
0
Obično piše u dokumentaciji koja dolazi uz sors. Ako ne, onda web ili git strana programa. Ako i to ne pomogne, onda ispis pri kompajliranju. Tj. pri “./configure” 🙂

@Optimizacija:

Definišeš CFLAGS za C kod ( većina GTK aplikacija ), CXXFLAGS za C++ kod ( većina QT aplikacija ), ili oba ( postoje i programi koji su pisani u oba )
Najbolje je za svaki program posebno, mada možeš i globalno da ih eksportuješ u “/etc/profile”*. Npr:
  • make CFLAGS="…" CXXFLAGS="…"
  • make CFLAGS="-mtune=core2 -O2"
Detaljnije:
https://gcc.gnu.org/onlinedocs/gcc/i386-and-x86-64-Options.html
http://wiki.gentoo.org/wiki/GCC_optimization

EDIT:

Takođe, zaboravih, @make dodaješ i “jn”, ako imaš CPU sa više jezgara ( brže se kompajlira jer koristi dati broj jezgara ), gde je “n” broj jezgara + 1. Znači, za dual-core ide "make -j3…

@/etc/profile:

Dopišeš npr:
Code:
export CFLAGS="-march=native -O2 -pipe"
export CXXFLAGS="$CFLAGS"
export MAKEOPTS="-j3"
 
Last edited:

Knight

Member
Joined
Jun 18, 2012
Messages
181
Reaction score
0
Hvala Ćofi ovo je odlično upustvo! 🙂

A da li negde postoje već gotove iskomajlirane stvari nekih paketa, npr. ok naravno ne celih programa, ali recimo nekih delova međuzavisnosti, npr. lib-ova…?

Ok kapiram da je bolji fazon da se napravi optimizacija baš za datu mašinu, otuda i čar kompajliranja iz source-a ,ali da li negde postoje i gotove neke stvari, ako se ne varam, neko mi je davno pre dosta godina nešto tako i pokazivao, neke sajtove?!

P. S. Videću da nađem nešto da kompajliram ovih dana, pa ću javiti rezultate, možda npr. Jahshaku program kojeg nisam uspeo nigde sam kompajlirati, već sam ga negde video da postoji u nekoj live distrubuciji, tamo je već bio instaliran kako treba.
 
Last edited:

rapha

Active member
Joined
May 31, 2012
Messages
941
Reaction score
11
Ako, ako, samo cepaj. Vidim ja da ćeš ti na Gentoo uskoro. 😃 Nema ti života… 😃
 
Last edited:

Filip

Active member
Joined
Jul 21, 2012
Messages
2,497
Reaction score
0
Nema na čemu 🙂

Zavisi o čemu je reč. Za većinu Linuks programa, veliki deo zavisnosti imaš u repou ( naravno zavisi od distribucije ). 🙂

Što se optimizacije tiče:
  1. “Treba” ti za programe koji žderu CPU ( sigurno ti nije potrebna za text editor i sl. mada ne škodi ( vidi 2. ))
  2. Možeš i da preteraš sa njom, pa da dobiješ gore performanse nego bez njih. ( Takođe, veći “-O” nivo usporava kompajliranje )
  3. Ono gde zapravo ima najviše smisla, jeste mašina sa slabim procesorom, gde je svaki % performansi “osetan” ( single-core, P4, Athlon, Atom… ) 🙂
Yep, slobodno probaj, i piši kako je prošlo/pitaj ako bude problema. 🙂

@Jahshaka:

Ako je reč o http://sourceforge.net/projects/jahshakafx/ problem je što je ovo koliko vidim prilično star softver. Zahteva QT3 koji je odavno prevaziđen, i nema ga u većini distroa ( u Deb Džesi barem nema 100%, proverio sam ).
README:
The only dependencies you need are Qt 3.x, freetype 2.x and glut 3.7+.

glut takođe ne postoji:
https://tracker.debian.org/pkg/glut

Sve u svemu, verovatno bi mogla oba da se kompajliraju, ali je pitanje da li bi i kako sve to radilo, s’ obzirom na ogromnu vremensku razliku… 🙂

P.S. Probaj da skineš (binarni) .run fajl sa SF-a, možda i prođe instalacija, ako je statički linkovan ( potrebne biblioteke “nosi” sa sobom = ne koristi sistemske )
P.S.2 Svakako probaj da kompajliraš, samo pronađi sors za QT3 i glut.
🙂
 
Last edited:

Knight

Member
Joined
Jun 18, 2012
Messages
181
Reaction score
0
Jeste to je taj program Jahshaka, probaću pa javim. 🙂 Donekle znam šta su statičke, a šta dinamičke biblioteke, ali hvala što tolerišeš nas sa slabijim znanjem. 🙂

Rapho, imao sam u planu da probam i Gentoo, a i linux from scratch. 🙂 Ok, otom-potom… 🙂

Za Gentoo (GENTOOMICIN? 🙂 ) ste isto rekli da nije pod Dart Vejderom i Tamnom Silom Univerzuma, LFS je priča za sebe. 🙂

Video sam jednu dobru foru, kada fale neke dinamičke biblioteke, baš određene verzije, npr. napraviš valjda simbolički link sa tim imenom, na novu verziju dinamičke biblioteke, tako neka fora, znam da mi je to kod jedne stvari upalilo skroz. 🙂 Valjda ova fora pali uvek?

P. S. Ako se ne varam Jahshaku sam video na nekoj live distrubiciji dali nekog edukativnog ili muzičkog live linux cd-a… e sad sad da se setim imena, teško… Ima jako zanimljivih live linux distribucija za određene vrste korisnika, npr. za studente, muzičare, naučnike, itd. Tako sam naleteo i na Jahshaku, već iskompajliranog samo da se startuje. 🙂
 
Last edited:

Knight

Member
Joined
Jun 18, 2012
Messages
181
Reaction score
0
Ok, nije deo teme, pošto je ovde reč o kompajliranju iz source-a, rekoh na drugoj temi da sam najviše voleo linux mint od svih distribucija.

Evo kako izgleda pokretanje ovog programa u ovoj distribuciji, gde je sve lakše. Jedina varijanta da se ovaj program najlakše natera da radi je skidanje portabilne 32-bitne verzije (za ubuntu) odavde:

http://sourceforge.net/projects/portable/

Naravno u 64-bitnom mintu, ovo podrazumeva da se aktivira multiarch podrška.

Kada se otpakuje i pokrene, izbacuje da mu fali neka neka libfuse2 biblioteka. Međutim kako je ista postojala, onda sam samo sa sudo apt-get install dodao 32-bitnu verziju i sve je proradilo: 🙂

sudo apt-get install libfuse2:i386
E sad preko source-a u nekoj drugoj distribuciji doći do toga da radi ovaj program, bi bile verovatno paklene muke. Ako stignem da probam u Slacku javiću kako je išlo. 🙂

Hvala još jednom na pomoći. 🙂
 
Last edited:

Sioux

Member
Joined
May 17, 2012
Messages
824
Reaction score
7
ja pogledam blago readme ili install.txt pa odradim šta treba, pa ako i to nije dovoljno na error izlazu svake komande piše šta fali od paketa …pa ponovo.
 
Last edited:

Knight

Member
Joined
Jun 18, 2012
Messages
181
Reaction score
0
Iskompajlirao i instalirao sam danas Evan’s debugger, uspeo sam se snaći, ali ne mogu da se setim kod čega sam imao problema… ok ako zaglavim negde, vraćam se opet na temu. Hvala svima! 🙂
 
Last edited:
Top