Multilib Slackware64

Uputstva, saveti i trikovi

Moderator: Urednik

Post Reply

Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 699
Joined: 08 May 2007, 12:39
Location: Banja Luka

Post Napisano: 04 Jan 2012, 22:43


Multilib Slackware x86_64
Napomena: Prevod članka Erica Hameleersa (poznatijeg u Slackware zajednici kao Alien BOB) na temu podešavanja multilib okruženja u 64-bitnom izdanju Slackware-a.

Ovo uputsvo sadrži instrukcije za pretvaranje "čistokrvnog" 64-bitnog izdanja Slackware-a u multilib. Multilib 64-bitni Linux sistem može pokretati i 64-bitni i 32-bitni softver. Standard koji se odnosi na hijerarhiju fajlsistema precizira najbolji način za jasno odvajanje 64-bitnog i 32-bitnog softvera na jednom sistemu. Odlučili smo usvojiti ovaj standard kod Slackware64, te je od početka putanja za 64-bitne biblioteke u folderima /lib64 i /usr/lib64. Iz ovog razloga je Slackware64 već pogodan za multilib - iako je putanja za 32-bitne biblioteke u /lib i /usr/lib, Slackware64 ne instalira ništa od 32-bitnog softvera. Potrebno je preduzeti još jedan korak kako bi Slackware64 postao multilib.

To ćemo postići na sledeći način:

1. Prvo treba da prebacimo na multilib verzije
  • glibc (glibc koji podržava pokretanje 32-bitnih i 64-bitnih binarnih datoteka) i
  • gcc (podržava kompajliranje i 32-bitnog i 64-bitnog softvera).
2. Potom ćemo preuzeti sistemske biblioteke sa 32-bitnog Slackware-a i instalirati ih na 64-bitni Slackware, čime završavamo proces stvaranja 32-bitnog softverskog sloja.
Slackware za x86_64 arhitekturu (skraćeno Slackware64) je "čistokrvan" 64-bitni operativni sistem, ali lako nadogradiv na multilib. Podrazumjevano ("fabrički"), Slackware64 može kompajlirati i pokretati samo 64-bitni softver.
Slackware64 ima prednost naspram svojih 64-bitnih derivata. Ovi derivati dodaju 32-bitni sloj ponovnim kompajliranjem mnoštva paketa kao 32-bitnih binarnih datoteka. Nasuprot tome, Slackware je distribucija koja se već sastoji iz 32-bitnih i 64-bitnih verzija koje se razvijaju paralelno. Što znači, ne morate kompajlirati 32-bitne pakete "od nule" kako bi ste dobili multilib na svom 64-bitnom sistemu. Jednostavno, preuzećete pakete sa 32-bitne verzije Slackware. Ovo je jedan od razloga zašto nismo dodali multilib na Slackware64 - stvorili smo sve preduslove, ali se od korisnika zahtjeva da djeluje, u slučaju da mu/joj treba multilib.

Nadalje ću objasniti kako možete pretvoriti 32-bitni Slackware paket (npr. "mesa") u paket koji možete instalirati na Slackware64 (u konkretnom primjeru, "mesa-compat32").

Prednosti multilib sistema

Navešću primjere programa kojima je potrebna multilib podrška kako bi radili na 64-bitnom Slackware-u, inače neće moći raditi ili se iskompajlirati ako već ne postoji 32-bitni sloj:

* Wine
Većina programa za Windows je još uvijek 32-bitna, stoga kako bi ste ih pokretali na Linuxu uz pomoć Wine-a, potrebna vam je 32-bitna verzija Wine-a.

* VirtualBox
Popularni softver za virtualizaciju. Iako je (djelimično) open source, još uvijek zahtijeva 32-bitne biblioteke na 64-bitnoj verziji Slackware-a.

* Skype, Citrix client, ...
Ovo su vlasnički programi zatvorenog izvornog koda. Stoga, da li će 64-bitne verzije biti dostupne ili ne, prevashodno zavisi od njihovih programera. Navedeni programi još uvijek postoje samo u 32-bitnim verzijama.

Srećom, podrška za 64-bitnu arhitekturu je svakim danom sve veća. Prošle godine, Adobe je pustio u distribuciju 64-bitnu verziju Flash plugina za web browsere, a Sun je objavio 64-bitnu verziju Java plugina za web browsere. Zadnji je ujedno i jedan od razloga za nastanak Slackware64.

Preuzimanje mulitlib paketa

Pakete spremne za instalaciju na multilib Slackware i dodatne skripte možete preuzeti sa mog web sajta: http://slackware.com/~alien/multilib/.

Izuzev nekoliko README datoteka (ovo uputstvo je zasnovano na jednoj od tih README datoteka), u folderu "multilib" pronaći ćete po jedan podfolder za svako izdanje 64-bitnog Slackware. Postoji još jedan folder sa nazivom "source". Ovaj folder sadrži izvorni kod za pakete i njihove SlackBuild skripte.

Ono što vas stvarno zanima - binarni paketi - nalazi se u folderu . Svaki od tih foldera sadrži i podfolder "slackware64/compat32" gdje ćete pronaći set konvertovanih 32-bitnih Slackware paketa, spremnih za instalaciju na 64-bitni Slackware.
S ciljem da budete u toku, predlažem da redovno pratite Changelog koji održavam za svoje mulitilib pakete. Uglavnom, ažurirane verzije glibc i gcc paketa biće dostupne u roku od jednog dana po izbacivanju njihovih zvaničnih Slackware nadogradnji. Takođe, isprobajte alatku compat32pkg od Sėbastiena Balleta koja automatizuje ovaj proces, slično slackpkg-u.
Aktiviranje multilib podrške na Slackware64

Brzo i "prljavo" uputsvo

Ovaj odjeljak sadrži sve neophodne instrukcije za dodavanje pune multilib kompatibilnosti postojećem Slackware64 sistemu. Ako želite da podrobnije shvatite ovaj proces ili jednostavno saznati kako da sami kompajlirate 32-bitni softver na Slackware64, pročitajte i sledeći odjeljak.

Po preuzimanju paketa sa mog web sajta (link sam vam dao u prethodnom dijelu teksta), potrebno je nadograditi 64-bitne "gcc" i "glibc" pakete mojim multilib verzijama. Pokrenite sledeću komandu u folderu gdje ste snimili preuzete pakete:

Code: Select all

upgradepkg --reinstall --install-new *.t?z
Prethodna komanda će takođe instalirati i dodatni paket sa nazivom "compat32-tools".

Ako ste takođe preuzeli i pakete iz foldera slackware64-compat32, onda imate sreće, jer sam već izvršio potrebnu konverziju na njima. Sve što je potrebno je pokretanje sledeće komande:

Code: Select all

upgradepkg --install-new slackware64-compat32/*-compat32/*.t?z
Prethodna komanda će instalirati sve konvertovane 32-bitne Slackware pakete (ili će ih nadograditi u slučaju da ste imali instalirane starije verzije multilib paketa). To je to!

U slučaju da ne možete pronaći podfolder slackware64-compat32, konverziju paketa ćete morati izvršiti sami. Uopšte nije teško, potrebno je svega nekoliko minuta.

Najbrži način je ako imate lokalni folder sa originalnim 32-bitnim Slackware paketima. Oni koji su kupili zvanično DVD izdanje mogu jednostavno iskoristiti DVD: kako je dvostran, 32-bitno izdanje Slackware se nalazi na jednoj od strana. U ovom primjeru pretpostaviću da vam se lokalna kopija 32-bitnih Slackware paketa nalazi u /home/ftp/pub/slackware-13.37/slackware/. Ovaj folder bi trebao sadržavati sledeće podfoldere "a", "ap", "d", "l", "n" i "x". (U slučaju da koristite pakete sa Slackware DVD-a, vaš folder će se najvjerovatnije nalaziti u /media/SlackDVD/slackware, ali tu lokaciju neću koristiti u primjeru koji slijedi).

Napravite novi folder (nazovimo ga "slackware64-compat32") i pristupite mu:

Code: Select all

mkdir slackware64-compat32 ; cd slackware64-compat32
Pokrenite sledeću komandu kako bi ste napravili set 32-bitnih kompatibilnih paketa, pri tom koristite putanju do foldera koji sadrži originalne 32-bitne Slackware pakete:

Code: Select all

massconvert32.sh -i /home/ftp/pub/slackware/slackware-13.37/slackware/
Prethodni korak može potrajati. Kada završi sa izvršavanjem, možete instalirati 90 MB svježe konvertovanih 32-bitnih Slackware paketa smještenih u podfoldere vašeg trenutnog foldera:

Code: Select all

upgradepkg --install-new *-compat32/*.t?z
Gotovo! Možete započeti preuzimanje, instaliranje i korištenje 32-bitnih programa. Ovo nije bilo tako teško, zar ne?
U slučaju da koristite menadžer paketa poput slackpkg, moraćete dodati pakete "glibc" i "gcc" na "crnu listu". U slučaju da to ne uradite, rizikujete da vaš menadžer paketa slučajno zamjeni multilib verzije paketa originalnim 64-bitnim verzijama! Ako koristite Slackware 13.37 ili noviji, onda već instalirani slackpkg podržava regularne izraze u svojoj datoteci sa "crnom listom". U tome slučaju, jedna dodana linija u "/etc/slackpkg/blacklist" će biti sasvim dovoljna da stavite sve moje pakete na "crnu listu" (uključujući multilib verzije gcc i glibc paketa i sve compat32 pakete):

Code: Select all

[0-9]+alien
Ako koristite Slackware 13.1 ili noviji, a preuzeli ste i instalirali paket compat32-tools za to izdanje, skripta massconvert32.sh može koristiti udaljeni server kako bi preuzela 32-bitne Slackware pakete, umjesto DVD-a ili lokalne kopije. Koristite parametar "-u", a potom navedite putanju do servera na sledeći način:

Code: Select all

massconvert32.sh -u http://nekiserver.org/putanja/do/slackware-13.37/slackware
Detaljnije instrukcije

Nadogradnja paketa glibc i gcc

Glibc/gcc paketi koji slijede su zamjena - ne dodatak - standardnim Slackware paketima. Koristite "upgradepkg" alatku kako bi postojeće verzije gcc i glibc paketa nadogradili mojim multilib verzijama. Trebate ih kako bi ste mogli pokretati (glibc) i kompajlirati (gcc) 32-bitni softver na 64-bitnom Slackware sistemu:

Slackware64 13.0

GCC pribor za kompajliranje:
  • gcc-4.3.3_multilib-x86_64-4alien.txz
  • gcc-g++-4.3.3_multilib-x86_64-4alien.txz
  • gcc-gfortran-4.3.3_multilib-x86_64-4alien.txz
  • gcc-gnat-4.3.3_multilib-x86_64-4alien.txz
  • gcc-java-4.3.3_multilib-x86_64-4alien.txz
  • gcc-objc-4.3.3_multilib-x86_64-4alien.txz
GNU libc biblioteke:
  • glibc-2.9_multilib-x86_64-3alien.txz
  • glibc-i18n-2.9_multilib-x86_64-3alien.txz
  • glibc-profile-2.9_multilib-x86_64-3alien.txz
  • glibc-solibs-2.9_multilib-x86_64-3alien.txz
  • glibc-zoneinfo-2.9_multilib-noarch-3alien.txz
Slackware64 13.1

GCC pribor za kompajliranje:
  • gcc-4.4.4_multilib-x86_64-1alien.txz
  • gcc-g++-4.4.4_multilib-x86_64-1alien.txz
  • gcc-gfortran-4.4.4_multilib-x86_64-1alien.txz
  • gcc-gnat-4.4.4_multilib-x86_64-1alien.txz
  • gcc-java-4.4.4_multilib-x86_64-1alien.txz
  • gcc-objc-4.4.4_multilib-x86_64-1alien.txz
GNU libc biblioteke:
  • glibc-2.11.1_multilib-x86_64-3alien.txz
  • glibc-i18n-2.11.1_multilib-x86_64-3alien.txz
  • glibc-profile-2.11.1_multilib-x86_64-3alien.txz
  • glibc-solibs-2.11.1_multilib-x86_64-3alien.txz
  • glibc-zoneinfo-2.11.1_multilib-noarch-3alien.txz
Slackware64 13.37

GCC pribor za kompajliranje:
  • gcc-4.5.2_multilib-x86_64-2alien.txz
  • gcc-g++-4.5.2_multilib-x86_64-2alien.txz
  • gcc-gfortran-4.5.2_multilib-x86_64-2alien.txz
  • gcc-gnat-4.5.2_multilib-x86_64-2alien.txz
  • gcc-java-4.5.2_multilib-x86_64-2alien.txz
  • gcc-objc-4.5.2_multilib-x86_64-2alien.txz
GNU libc biblioteke:
  • glibc-2.13_multilib-x86_64-3alien.txz
  • glibc-i18n-2.13_multilib-x86_64-3alien.txz
  • glibc-profile-2.13_multilib-x86_64-3alien.txz
  • glibc-solibs-2.13_multilib-x86_64-3alien.txz
  • glibc-zoneinfo-2.13_multilib-noarch-3alien.txz
Slackware64-current

GCC pribor za kompajliranje:
  • gcc-4.5.3_multilib-x86_64-2alien.txz
  • gcc-g++-4.5.3_multilib-x86_64-2alien.txz
  • gcc-gfortran-4.5.3_multilib-x86_64-2alien.txz
  • gcc-gnat-4.5.3_multilib-x86_64-2alien.txz
  • gcc-java-4.5.3_multilib-x86_64-2alien.txz
  • gcc-objc-4.5.3_multilib-x86_64-2alien.txz
GNU libc biblioteke:
  • glibc-2.13_multilib-x86_64-5alien.txz
  • glibc-i18n-2.13_multilib-x86_64-5alien.txz
  • glibc-profile-2.13_multilib-x86_64-5alien.txz
  • glibc-solibs-2.13_multilib-x86_64-5alien.txz
  • glibc-zoneinfo-2.13_multilib-noarch-5alien.txz
Postoji jedan dodatni paket koji instalirate pomoću alatke "installpkg":

"32-bitni komplet alata" (skripte koje omogućavaju pravljenje 32-bitnih paketa)

* compat32-tools-2.0-noarch-1alien.tgz
Slamd64 je imao odvojene 64-bitne i 32-bitne gcc/glibc pakete. Međutim, vjerujem da je čistiji način držati ove neophodne multilib pakete spojenim. Pratio sam koncept koji je ranije korišten u paketu binutils za Slackware64, koji u jednom paketu sadrži i 32-bitne i 64-bitne mogućnosti.
Dodavanje 32-bitnih Slackware biblioteka

Nadogradnja postojećih, prethodno opisanih, glibc i gcc paketa, mijenja vaš sistem iz "multilib-spreman" u "multilib-sposoban". Sve što trebate sada uraditi je instalirati 32-bitne verzije Slackware sistemskog softvera, kako bi programi koje budete instalirali i/ili kompajlirali u budućnosti mogli pronaći 32-bitne biblioteke koje su im potrebne da rade.

Ovo nije tako jednostavno kao što je bilo preuzimanje 32-bitnih Slackware paketa i njihovo instaliranje na Slackware64:
  • Prije svega, doći ćete u situaciju gdje će postojati više paketa sa istim imenom (dva "mesa" paketa, dva "zlib" paketa, itd…) što će izgledati zbunjujuće i vama i slackpkg menadžeru paketa
  • Nadalje, ako 32-bitni paket sadrži izvršne datoteke (npr. /usr/bin/foo), 64-bitne kopije će biti prepisane istim u trenutku kada instalirate 32-bitni paket. Ovako nešto može dovesti do ozbiljnih oštećenja sistema.
Potrebno je dodatno obratiti pažnju kako bi se nepotrebne/nepoželjne datoteke uklonile iz 32-bitnih paketa prije njihove instalacije. Ono što vam je potrebno je 32-bitni paket koji nije u konfliktu sa nečim što je već prisutno na postojećem 64-bitnom Slackware sistemu. Dakle, odatle ime "32-bitni kompatibilni paket".

Odlučio sam da bi bio nepotreban utrošak protoka kad bih ja pravio 32-bitne kompatibilne verzije Slackware paketa. Na kraju krajeva, vjerovatno ste kupili Slackware 13.37 DVD, stoga već posjedujete i 64-bitnu i 32-bitnu verziju Slackware… U suprotnom, 32-bitni Slackware paketi su dostupni za besplatno preuzimanje, naravno.

Umjesto toga, napisao sam nekoliko skripti (dijelovi tih skripti su napisani od strane Freda Emmotta tvorca Slamd64) i zapakovao ih u paket "compat32-tools". Njihova svrha je da vam omoguće otpakivanje sadržaja bilo kojeg 32-bitnog Slackware paketa i iskoristite ga za pravljenje novog paketa koji ćete moći bez problema instalirati na svoj 64-bitni Slackware.

Paket "compat32-tools" zahtjeva podrobnije objašnjenje. Pročitajte README datoteku koja sadrži sve detalje i nalazi se u /usr/doc/compat32-tools-*/ folderu, pomoći će vam u budućem radu sa ovim alatima. Ovo su tri korisne skripte koje ovaj paket instalira:
  • /etc/profile.d/32dev.sh
Identična skripti koja se isporučuje sa Slamd64. Rekonfiguriše vaše shell okruženje kako bi se stvorili uslovi za kompajliranje 32-bitnog softvera (preferiranjem 32-bitnih kompajlera i biblioteka)
  • convertpkg-compat32
Ova skripta kao input uzima 32-bitni Slackware paket i konvertuje ga u "-compat32" paket koji možete slobodno instalirati (upotrebom komande "installpkg") na Slackware64, uporedo sa 64-bitnom verzijom istog paketa. Npr. pretpostavimo da su vam potrebne 32-bitne biblioteke koje se nalaze u mesa paketu. Preuzećete mesa paket za 32-bitni Slackware (x/mesa-7.5-i486-1.txz) i uraditi sledeće:

Code: Select all

convertpkg-compat32 -i /putanja/do/mesa-7.5-i486-1.txz
Ovo će napraviti novi paket sa nazivom mesa-compat32-7.5-x86_64-1.txz. Ovaj novi paket (koji će biti smješten u /tmp folderu osim ako ne navedete neku drugu putanju) je u principu isti onaj stari 32-bitni paket, ali koji ne sadrži sve one nepotrebne datoteke. Izmjenjeno osnovno ime (mesa je promjenjeno u mesa-compat32) dozvoljava instalaciju ovog novog paketa na Slackware64, odnosno njegovu koegzistenciju sa 64-bitnim mesa paketom tj. bez presnimljavanja njegovih datoteka. Skripta ostavlja priveremene datotetke u folderu /tmp/paket--compat32 koje možete slobodno obrisati.
  • massconvert32.sh
Ova skripta sadrži internu listu 32-bitnih paketa koji sadrže sve one, po meni, neophodne stvari. Koristi gorepomenutu skriptu "convertpkg-compat32" kako bi preuzela svaki paket sa interne liste, a potom vrši konverziju u "-compat32" pakete. Pokrenućete je samo jednom, npr. na sledeći način (u primjeru se pretpostavlja da vam je 32-bitni Slackware DVD montiran na /mnt/dvd putanji):

Code: Select all

massconvert32.sh -i /mnt/dvd/slackware -d ~/compat32
Ovaj korak će dovesti do cca. 60 MB novih paketa, smještenih u novi folder ~/compat32 (izbor foldera je proizvoljan, ova putanja se koristi samo u ovom primjeru). Ovi paketi sadrže 32-bitnu komponentu vašeg multilib Slackware64 sistema. Potrebno ih je instalirati upotrebom "installpkg", čime dobijate poprilično kompletan 32-bitni kompatibilni sloj na vašem Slackware64:

Code: Select all

installpkg ~/compat32/*/*.t?z
U slučaju da vršite nadogradnju na noviju verziju (zato što se npr. nadogradili svoj 64-bitni Slackware na novije izdanje), onda naravno nećete koristiti
"installpkg", već "upgradepkg --install-new":

Code: Select all

upgradepkg --install-new ~/compat32/*/*.t?z
Parametar "--install-new" je potreban kako bi se instalirali novi compat32 paketi koji napravljeni za novo izdanje Slackware-a.
Prilikom instalacije compat32 paketa, primjetićete poruke sa greškama o nedostajućim datotekama u /etc fodleru. Ovo je "fabrički" i slobodno možete ignorisati te poruke. Prouzrokovane su činjenicom da datoteke iz foldera /etc su uklonjene iz "-compat32" paketa za vrijeme konverzije (izuzev za pakete pango i gtk+2). Pretpostavljam da datoteke u folderu /etc su već instalirane prilikom instalacije originalnih 64-bitnih paketa.

Jedan primjer ovih "grešaka" koje se javljaju prilikom instalacije cups-compat32 paketa:

Code: Select all

Executing install script for cups-compat32-1.3.11-x86_64-1.txz.
install/doinst.sh: line 5: [: too many arguments
cat: etc/cups/interfaces: Is a directory
cat: etc/cups/ppd: Is a directory
cat: etc/cups/ssl: Is a directory
cat: etc/cups/*.new: No such file or directory
cat: etc/dbus-1/system.d/cups.conf.new: No such file or directory
chmod: cannot access `etc/rc.d/rc.cups.new': No such file or directory
cat: etc/rc.d/rc.cups.new: No such file or directory
Package cups-compat32-1.3.11-x86_64-1.txz installed.
U slučaju da ste razmišljali o upotrebi convertpkg-compat32 skripte kako bi konvertovali nezvanični Slackware paket u -compat32, moram vas savjetovati da to ne radite. Skripta je napisana sa samo jednom namjerom - da napravi 32-bitne verzije zvaničnih Slackware64 binarnih datoteka/biblioteka za upotrebu u multilib okruženju. Kao takva, skipta će ukloniti mnoštvo stvari koje postoje u originalnim 32-bitnim paketi - one stvari za koje se očekuje da budu instalirane sa 64-bitnom verzijom paketa.
U skoro svim slučajevima prilikom kojih bi trebali preuzeti neoriginalni 32-bitni Slackware paket i instalirati ga na Slackware64, najbolje moguće rješenje je da pronađete izvorni kod i iskompajlirate 64-bitnu verziju paketa. Kao drugo rješenje, instalirajte 32-bitni paket bez konverzije, a potom ga pokrenite iz konzole kako bi ste imali uvida u 32-bitne biblioteke koje mu nedostaju, a za koje možda možete iskoristiti zvanične Slackware pakete.
Korištenje 32-bitnog softvera

Kada ste već ispoštavali sve prethodno navedene korake, dalje korištenje 32-bitnog softvera je jednostavno. Samo preuzmite, instalirajte i pokrenite.
U nekim slučajevima, možete naići na softver koji zahtjeva određenu 32-bitnu Slackware biblioteku, a nemate je instaliranu. U tom slučaju, saznajte koji 32-bitni Slackware paket sadrži nedostajuću biblioteku. Potom iskoristite skriptu convertpkg-compat32 da konvertujete originalni 32-bitni Slackware paket, a zatim insalirajte paket nastao konverzijom na svoj Slackware64.

Kompajliranje 32-bitnog softvera

U slučaju da trebate kompajlirati 32-bitni program (wine i grub su dva primjera open source softvera koji su dostupni samo za 32-bitnu arhitekturu), morate prvo izvršiti konfiguraciju vašeg shell okruženje sledećom komandom:

Code: Select all

. /etc/profile.d/32dev.sh
Obratite pažnju na "tačku" ispred naziva datoteke - ona je zapravo obavezni dio komande. Pokretanjem ove komande mjenjate ili stvarate nekoliko varijabli okruženja. Efekat ovoga je preferiranje 32-bitnih verzija binarnih datoteka prilikom kompajliranja, naspram 64-bitnih - tj. vršićete 32-bitno kompajliranje. Efekat će trajati sve dok ne napustite shell.

U ovom izmjenjenom okruženju, moći ćete koristiti standardne SlackBuild skripte kako bi pravili 32-bitne pakete za Slackware64. Međutim, morate imati dve stvari na umu:

1. Varijablu ARCH ćete i dalje definisati kao "x86_64", bez obzira što vršite kompajliranje 32-bitnog softvera. Razlog za ovo je prvestveno parametar "$ARCH-slackware-linux" koji se koristi prilikom izvršavanja komande "configure". U slučaju da pokušate definisati ARCH kao "i486", uvidjećete da će postojeća definicija CFLAGS-a rezultatirati greškama gcc-a poput "”compiler can not create executables”, odnosno "kompajler ne može kreirati izvršne datoteke". Ovo je vezano za dizajn SlackBuild skripti. Umjesto da izmjenjujete SlackBuild skriptu i definišete svoje CFLAGS, možete uštediti vrijeme i jednostavno podesiti ARCH kao "x86_64". Ostatak posla će završtiti 32dev.sh skripta.

2. Moraćete izmjeniti SlackBuild skriptu u slučaju da želi da koristi "lib64/" folder za "$ARCH=x86_64", odnosno morate je natjerati da koristi "lib/" folder. Obično se to postiže pronalaskom sledeće definicije u SlackBuild skripti:

Code: Select all

LIBDIRSUFFIX="64'
i njenom izmjenom u

Code: Select all

LIBDIRSUFFIX=""

Upozorenja

  • Po instalaciji "-compat32" paketa, možda ćete morati ponovo instalirati Nvidia i ATI grafičke drajvere. Ovi drajveri sadrže i 64-bitne i 32-bitne biblioteke kako bi mogli biti maksimalno korisni na 64-bitnom multilib operativnom sistemu. U slučaju da ste instalirali drajver za obje arhitekture, paket "mesa-compat32" će presnimiti neke od 32-bitnih biblioteka.

    U suprotnom, ako ste instalirali samo 64-bitnu verziju drajvera za Nvidia/ATI grafičku karticu, preporučivo je poslije instalacije multilib paketa, ponovo instalirati drajver. Ovaj put, izaberite i 32-bitnu verziju drajvera. Grafički 32-bitni programi koje ćete koristiti na svojoj multilib instalaciji zahtijevaju neke od ovih 32-bitnih biblioteka. Stoga ćete se susresti sa rušenjem tih programa, u slučaju da nemate instalirane ispravne datoteke.
  • Ako sami kompajlirate 64-bitni kernel, obratite pažnju da uključite u konfiguraciju 32-bitnu emulaciju, inače multilib postavka neće raditi. To je sledeća stavka u konf. datoteci kernela: CONFIG_IA32_EMULATION
Paketi koje konvertuje skripta massconvert32.sh

Ovo je lista paketa koji se konvertuju u "-compat32" verziju upotrebom skripte massconvert32.sh. Neki od navedenih paketa ne postoje na Slackware-u 13.0 i 13.1, jer su dodati na novijim verzijama Slackware-a. Stoga će vam biti prijavljena greška poput ”* FAIL: package 'package_name' was not found!” message when you run the script on an older release. The other way round is true as well - some packages have been removed in later versions of Slackware and they will also trigger the ”* FAIL: package 'package_name' was not found!” Nemojte brinuti o tome.

Code: Select all

# A/ serija:
 
aaa_elflibs
bzip2
cups
cxxlibs
dbus
e2fsprogs
openssl-solibs
util-linux
 
# AP/ serija:
 
mpg123
mysql
 
# D/ serija:
 
libtool
 
# L/ serija:
 
alsa-lib
alsa-oss
atk
audiofile
cairo
dbus-glib
esound
expat
freetype
gamin
gdk-pixbuf2
glib2
gtk+2
gst-plugins-base
gst-plugins-good
gstreamer
hal
jasper
lcms
libart_lgpl
libelf
libexif
libglade
libgphoto2
libidn
libieee1284
libjpeg
libmng
libmpc
libpcap
libpng
libsndfile
libtermcap
libtiff
libusb
libxml2
libxslt
ncurses
pango
popt
qt
readline
sdl
seamonkey-solibs
svgalib
v4l-utils
zlib
 
# N/ serija:
 
curl
cyrus-sasl
gnutls
libgcrypt
libgpg-error
openldap-client
openssl
 
# X/ serija:
 
fontconfig
glew
libFS
libICE
libSM
libX11
libXScrnSaver
libXTrap
libXau
libXaw
libXcomposite
libXcursor
libXdamage
libXdmcp
libXevie
libXext
libXfixes
libXfont
libXfontcache
libXft
libXi
libXinerama
libXmu
libXp
libXpm
libXprintUtil
libXrandr
libXrender
libXres
libXt
libXtst
libXv
libXvMC
libXxf86dga
libXxf86misc
libXxf86vm
libdmx
libdrm
libfontenc
libxcb
mesa
pixman
Alatke treće strane

Sėbastien Ballet je napisao alatku pod nazivom compat32pkg. Na njegovom sajtu možete preuzeti ovu alatku i pročitati obimnu dokumentaciju na temu njene upotrebe na Slackware64.

Citiram opis sa njegovog sajta:

“Compat32pkg is an automated tool that provides all the necessary for managing (converting, installing, upgrading, removing) the 32-bit part of AlienBob's multilib for slackware-64, and all 32-bit packages from Slackware-32 for which users could find a needs into a 64-bit environment, like firefox, seamonkey, jre,…”

"Compat32pkg je automatska alatka koja pruža sve neophonosti za upravljanje (konvertovanje, instaliranje, nadograđivanje, uklanjanje) 32-bitnog dijela AlienBob-ovog multiliba za Slackware64 i sve 32-bitne pakete sa 32-bitnog Slackware-a za koje korisnici mogu imati potrebe u 64-bitnom okruženju, poput firefox-a, seamonkey-a, jre,..."


Zahvalnost

  • Veliko hvala Fredu Emmottu, tvorcu Slamd64, nezvaničnog 64-bitnog Slackware derivata. Iako Slackware64 nije zasnovan na Fredovom radu, ipak sam većinu stvari koje znam o 32-bitnom dijelu mulitlib Linux-a naučio iz njegovih tekstova koji se mogu naći na Slamd64.
  • Cross Linux From Scratch - CLFS wiki http://trac.cross-lfs.org/wiki/read#Rea ... BookOnline je obavezno štivo ako želite da shvatite kako portovati Linux na novu arhitektruru. Preuzeo sam nekoliko ideja, koncepata i zakrpa od njih kako bih napravio Slackware64 od nule i opet kad sam pravio multilib gcc/glibc pakete od nule (moj README na temu "multilib-od-nule" se nalazi u ./source folderu).

Zadnje ažuriranje prevoda: 07. 01. 2012., 10. 01. 2012.
Last edited by qki on 10 Jan 2012, 11:20, edited 1 time in total.



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 699
Joined: 08 May 2007, 12:39
Location: Banja Luka

Post Napisano: 04 Jan 2012, 23:00


Sutra u toku večeri očekujte "konačnu" verziju, trebao bih još malo dotjerati prevod i formu. Slobodno kritikujte, predlažite itd. Vjerujem da ima prostora. :)

Inače, ako pogledate originalni članak, vidjećete sekciju koja se odnosi na prevod. Mislio sam da kad svedem ovo na pristojan nivo, kontaktiram Alien-a s ciljem da uvrsti i ovaj prevod na srpski.



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 04 Jan 2012, 23:26


Baciću pogled detaljnije sutra. Sad sam preumoran. ;)
qki wrote: Inače, ako pogledate originalni članak, vidjećete sekciju koja se odnosi na prevod. Mislio sam da kad svedem ovo na pristojan nivo, kontaktiram Alien-a s ciljem da uvrsti i ovaj prevod na srpski.
Odlična ideja. Podržavam. :)



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 699
Joined: 08 May 2007, 12:39
Location: Banja Luka

Post Napisano: 18 Jan 2012, 22:20


Jedan tip/savjet/nagoviještaj... :)

Može vam se desiti s vremena na vrijeme da neko parče softvera neće da vam se iskompajlira, pogotovo ako imate instaliranu i 32-bitnu i 64-bitnu biblioteku koju taj softver zahtjeva. Dva primjera poruke o grešci:

Code: Select all

/usr/lib/libX11.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status

Code: Select all

/usr/lib64/gcc/x86_64-slackware-linux/4.5.3/../../../../x86_64-slackware-linux/bin/ld: skipping incompatible /usr/X11R6/lib/libGLU.so when searching for -lGLU
/usr/lib/libXext.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
Linking of scanner failed: 
U tom slučaju, problem ćete riješiti na sledeći način:

1. SlackBuild skripta:
  • pronađite sledeće linije u SlackBuild skripti programa koji kompajlirate:

Code: Select all

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  • dodajte liniju LDFLAGS, tako da prethodno pomenute linije izgledaju ovako:

Code: Select all

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
LDFLAGS="-L/usr/lib${LIBDIRSUFFIX}" \ 
./configure \
2. "Ručno" kompajliranje. Ubacite LDFLAGS="-L/usr/lib64" ispred configure npr.

Code: Select all

LDFLAGS="-L/usr/lib64" ./configure
Izvor: SlackBuilds FAQ, tačka 18
Last edited by qki on 19 Jan 2012, 22:07, edited 1 time in total.



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 25 Jan 2012, 13:18


qki, da li si pokušao da pošalješ link za ovaj prevod AlienBOB-u?



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 699
Joined: 08 May 2007, 12:39
Location: Banja Luka

Post Napisano: 25 Jan 2012, 14:19


Nisam još uvijek. Naime, mislio sad da kad pustimo wiki u promet, onda pošaljem link do wiki stranice sa prevodom. Da ga kontaktiram?



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 25 Jan 2012, 14:25


Nemoj još uvek. Sačekaćemo da pustimo wiki u promet (pričaćemo malo o wikiju u narednih nekoliko dana).



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 2168
Joined: 08 Jun 2010, 13:28
Location: Centralna Srbija Kraljevo
Contact:

Post Napisano: 02 Jun 2012, 10:15


* Skype, ...
Ovo su vlasnički programi zatvorenog izvornog koda. Stoga, da li će 64-bitne verzije biti dostupne ili ne, prevashodno zavisi od njihovih programera. Navedeni programi još uvijek postoje samo u 32-bitnim verzijama.
Postoji sada Skype u 64bit verziji.
Ovo je cisto kao info. Verovatno u vreme nastanka clanka nije bilo tako.

Skype
http://repository.slacky.eu/slackware64 ... 64-2sl.txz" onclick="window.open(this.href);return false;

Jeste malo zapetljano ali mogu misliti sta bi tek bez ovako dobrog upustva. :beer:



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 699
Joined: 08 May 2007, 12:39
Location: Banja Luka

Post Napisano: 02 Jun 2012, 20:57


Broker wrote: Postoji sada Skype u 64bit verziji.
Postoji u 64-bitnoj verziji, ali za sada samo za .deb distribucije. ;) Nisam siguran da li je native ili je neka "šema" u pitanju.

Ta verzija sa Slacky-a je ništa drugo do 32-bitna static verzija + neophodne 32-bitne biblioteke. Drugom riječju - kupus. :cheesy: Tako da nažalost, kad je Slack u pitanju - Skype je još uvijek samo 32-bitni.



Administrator
Administrator
offline
User avatar

Posts: 3451
Joined: 01 Apr 2012, 13:50
Location: Mlečni put

Post Napisano: 02 Jun 2012, 22:28


Broker wrote: Postoji sada Skype u 64bit verziji.
A taman sam sredio multilib i skype mi sada radi...

:beer:
Use the source, Luke
SSZ irc kanal
Spread the Word, “CHOOSE SLACK! and Don’t look back.”


Post Reply

Who is online

Users browsing this forum: No registered users and 13 guests