next previous contents naprej nazaj vsebina prenos prevajanje in dobivanje programov kako prevedem programe vecina programja za linux je napisana v c ju in prevedena s prevajalnikom gnu c gcc gcc je del vsake distribucije linuxa najnovejsa razlicica prevajalnika dokumentacija in popravki so dostopni na mestu ftp ftp gnu org pub gnu programi napisani v c se morajo prevesti s prevajalnikom gnu g ki je tudi vkljucen v distribucije linuxa in dostopen na istem mestu kot gcc za gradnjo jeder razlicice x boste potrebovali gcc razlicice x poskus prevajanja jedra linuxa z drugim prevajalnikom kot so gcc x egcs ali pgcc lahko povzroci tezave dokler se ne popravijo podatki o odvisnosti kode prevajalnikov x podatki o prevajalniku egcs so na naslovu http egcs cygnus com vedite tudi da v danasnjem casu razvijalci jedra ne odgovarjajo na obvestila o hroscih jeder x pac pa se osredotocajo na razvoj jeder x kako prenesem xxx na linux unixaski programi se v splosnem zelo lepo prenasajo med razlicnimi unixi preprosto upostevajte namestitvena navodila ce ne veste odgovorov na nekatera vprasanja med namestitvenim postopkom in tudi ne veste kako bi izvedeli lahko ugibate toda to pogosto privede do hroscatih programov v tem primeru raje prosite koga drugega da vam naredi prenos ce imate bsd jevski program lahko poskusite z i usr include bsd in lbsd na primernem mestu v prevajalskih vrsticah kaj je ld so in kje ga dobim ld so je dinamicni nalagalnik knjiznic vcasih je imela vsaka binarna datoteka ki je uporabljala deljene knjiznice na zacetku kb zacetne kode ki je poiskala in nalozila deljene knjiznice dandanes je ta koda vsebovana v posebni deljeni knjiznici lib ld so kjer jo lahko binarne datoteke najdejo tako porablja manj diskovnega prostora in jo lahko preprosteje nadgradimo knjiznico ld so lahko dobite z mesta ftp tsx mit edu pub linux packages gcc in njegovih zrcalnih mest v casu nastanka teh pzv je zadnja razlicica ld so tar gz lib ld linux so je ista stvar za format elf glejte razdelek kaj je pravzaprav s tem elf om `` in pride v istem paketu kot nalagalnik za format a out kako nadgradim knjiznice ne da bi sesul svoj sistem pozor preden zacnete izvajati ta postopek morate imeti za vsak slucaj pripravljeno resilno disketo lahko gre kaj narobe ta postopek je se posebej tezak ce nadgrajujete zelo stare knjiznice kot so libc v tem primeru morate obdrzati libc na iste sistemu skupaj s knjiznicami libc saj jih lahko programi se vedno potrebujejo isto velja za nadgradnjo knjiznic libc na se novejse knjiznice glibc problem pri nadgradnji dinamicnih knjiznic je da v trenutku ko odstranite stare knjiznice pripomocki ki jih potrebujete pri nadgradnji na novo razlicico knjiznic ne delujejo vec obstajajo nacini da se temu izognemo eden od nacinov je da zacasno postavimo dodaten izvod pogonskih knjiznic ki so v imeniku lib v usr lib ali usr local lib ali drug imenik naveden v datoteki etc ld so conf primer pri nadgradnji knjiznic libc lahko imena datotek v imeniku lib izgledajo takole libc so libc so libm so libm so to so knjiznice za c in matematicne knjiznice prepisite jih v drug imenik naveden v etc ld so conf kot je denimo usr lib cp df lib libc so usr lib cp df lib libm so usr lib ldconfig prepricajte se da boste pognali ldconfig in s tem osvezili nastavitev knjiznic datoteki libc so in libm so sta simbolicni povezavi na resnicni knjiznicni datoteki ko nadgrajujete se nove povezave ne bodo ustvarile ce imate se vedno stare razen ce uporabite zastavico f ukaza cp zastavica d ukaza cp bo prepisala simbolicno povezavo samo in ne datoteke na katero kaze ce morate neposredno prepisati povezavo na knjiznico uporabite zastavico f ukaza ln na primer za prepis novih knjiznic cez stare poskusite tole najprej naredite simbolicno povezavo na nove knjiznice potem prepisite knjiznice in povezave na njih v imenik lib z naslednjimi ukazi ln sf libm so libm so ln sf libc so libc so cp df libm so lib cp df libc so lib spet po prepisu knjiznic ne pozabite pognati programa ldconfig ce ste zadovoljni s pravilnim delovanjem novega sistema lahko odstranite zacasne izvode starih knjiznic z imenika usr lib ali kamorkoli ste jih ze skopirali je ze kdo prenesel prevedel napisal xxx za linux najprej poglejte na zemljevid linuxovega programja`` linux software map na mestu ftp sunsite unc edu pub linux docs linux software map in na druge arhive za ftp na spletnem naslovu http www boutell com lsm je iskalnik glejte mesta za ftp iz razdelka kako lahko dobim stvari za linux po ftp ju `` najprej poiscite kljucne besede v datotekah ls lr ali index poglejte tudi v zemljevid linuxovih projektov`` linux projects map ftp ftp ix de pub ix linux docs projects map gz na spletnem naslovu http lfw linuxhq com je tudi iskalnik stvari za linux po arhivih ftp poglejte tudi spletno stran freshmeat na kateri so vsak dan objavljene novosti za linux najdete jo na http www freshmeat org zares je kul glejte razdelek kaksna periodika na zvezi ali zastonj obstaja za linux ce ne najdete nicesar lahko prenesete izvorno kodo programa in ga sami prevedete glejte razdelek kako prenesem xxx na linux `` ce gre za velik programski paket ki potrebuje nekaj prilagoditev posljite sporocilo v news comp os linux development apps ko prevedete vecji program ga prosim uvrstite v enega ali vec ftp arhivov in obvestite javnost s sporocilom v news comp os linux announce posljite vase sporocilo na linux announce news ornl gov mozno je da je ze kdo napisal prosto verzijo uporabnega programa ki ga potrebujete navodila za iskanje izvorne kode najdete v pzv novicarske skupine news comp sources wanted ali lahko uporabljam kodo ali prevajalnik preveden za na moji da ce to ni jedro gcc jeva izbira m ki se uporablja za prevajanje izvrsilnih datotek za procesorje x zgolj spremeni dolocene optimizacije rezultat so nekoliko vecje binarne datoteke ki tecejo nekoliko hitreje na se vedno delujejo na ceprav res malo pocasneje linuxovo jedro od razlicice naprej uporablja posebne ukaze procesorja ali pentium ce je prevedeno posebej za ali pentium tako prevedenega jedra torej ne morete uporabiti na procesorju gcc lahko nastavite za delo s ali edina razlika je v tem da nastavitev za privzame izbiro m nastavitev za pa m v obeh primerih lahko to preklicete ob posameznem prevajanju ali s spremembo datoteke usr lib gcc lib i linux n n n specs obstaja alfa verzija prevajalnika gcc ki zna napraviti optimizacije za vendar je precej nezanesljiva posebej pri nastavitvah za velike optimizacije pentiumov gcc najdete na ftp tsx mit edu pub linux alpha pentium gcc priporocam raje uporabo navadnega gcc za govori se da uporaba izbire m izdela kodo ki je boljsa za pentium ali je vsaj malo krajsa kaj naredi gcc o trenutno isto kot o gcc ali o gcc katerokoli stevilo vecje od tega naredi trenutno isto stvar datoteke makefile novejsih jeder uporabljajo izbiro o in verjetno bi jo morali uporabljati tudi vi kje so datoteke linux h in asm h te datoteke so v imenikih usr include linux in usr include asm vendar morata biti to pravzaprav simbolicna linka do izvorne kode jedra v imeniku usr src linux ne prava imenika navadno so glave jedra v imeniku usr src kernel ce nimate izvorne kode jedra jo nekje dobite glejte razdelek kako nadgradim prevedem svoje jedro `` potem uporabite ukaz rm da odstranite vse smeti in ukaz ln za ustvarjanje povezav rm rf usr include linux usr include asm ln sf usr src linux include linux usr include linux ln sf usr src linux include asm usr include asm usr src linux include asm je simbolicna povezava na imenik asm arch ta je odvisen od strojne zasnove racunalnika ce ste pravkar odpakirali vase drevo izvorne kode jedra morate uporabiti make symlinks opazili boste tudi da morate morda pri novem jedru napisati make config s tem naredite datoteko linux autoconf h pri prevajanju jedra dobivam sporocila o napakah glejte prejsnje vprasanje glede datotek z zaglavji spomnite se da morate pri uporabi popravkov vedno uporabiti izbiro p ali p sicer se lahko popravki uporabijo povsem napacno za podrobnosti glejte prirocnik za program patch man patch sporocilo povezovalnika o neprepoznani izbiri qmagic ld unrecognized option ` qmagic' pomeni da morate dobiti novejsi povezovalnik z mesta ftp tsx mit edu pub linux packages gcc v datoteki binutils bin tar gz kako naredim deljeno knjiznico za format elf takole gcc fpic c c gcc shared wl soname libfoo so o libfoo so o za format a out vzemite arhiv tools n nn tar gz z naslova ftp tsx mit edu pub linux packages gcc src v arhivu je dokumentacija ki vam pove kaj storite upostevajte da so deljene knjiznice za format a out zelo kocljiva zadeva razmislite o nadgradnji vasih knjiznic na elf ov format deljenih knjiznic glejte elf howto na mestu ftp sunsite unc edu pub linux docs howto moje izvrsilne datoteke so zelo velike pogost vzrok velikih izvrsilnih datotek s prevajalnikom za elf glejte razdelek kaj je pravzaprav s tem elf om `` je neobstoj ustreznih povezav so na knjiznice ki jih imate za vsako knjiznico kot npr libc so ki jo imate mora obstajati ustrezna povezava kot npr libc so ustvarite jo nekako takole ln sf libc so libc so s prevajalnikom za a out je pogost vzrok prevelikih izvrsilnih datotek povezovalnikova prevajalnikova zastavica g ta naredi poleg razhroscevalne informacije v izhodni datoteki tudi program ki je povezan staticno torej program ki vsebuje kopijo c jevske knjiznice namesto reference na njo ostale stvari vredne preiskave sta optimizacijske izbiri o in o glejte dokumentacijo prevajalnika gcc in izbira s ali ukaz strip ki pobrise podatke o simbolih iz izvrsilne datoteke in s tem onemogoci razhroscevanje morda si boste zazeleli uporabiti povezovalnikovo izbiro n pri zelo majhnih izvrsilnih datotekah skupaj z n manjsih od kb a tega raje ne pocnite ce ne razumete posledicne spremembe v delovanju in definitivno nikoli pri prevajanju demonov ali linux podpira niti ali procese lightweight podobno kot unixov vecopravilni model s procesi heavyweight ki je seveda del standardnega linuxovega jedra obstaja tudi vec izvedb procesov tipa lightweight ali niti novejsa jedra udejanjajo model niti imenovan kthreads poleg tega so za linux dostopni se naslednji paketi knjiznica gnu glibc za linux ima moznost podpore niti arhiv je dostopen z istega mesta kot glibc ftp ftp gnu org pub gnu na mestu ftp sipb mit edu pub pthread ali ftp ftp ibp fr pub unix threads pthreads dokumentacije ni v paketu a je dostopna na svetovnem spletu na strani http www mit edu people proven home page html novejse linuxove knjiznice libc vsebujejo izvorno kodo pthreads gnu jev prevajalnik za programski jezik ada na ftp sunsite unc edu pub linux devel lang ada gnat linux elf tar gz vsebuje binarne datoteke narejene iz te izvorne kode quickthreads paket objavljen na ftp ftp cs washington edu pub qt tar z vec podatkov najdete v tehnicnem porocilu dostopnim na istem mestu kot ftp ftp cs washington edu tr uw cse ps z zelo minimalna izvedba je lwp dostopen na ftp gummo doc ic ac uk rex izvedba ade na ftp ftp cs fsu edu pub part ta je zanimiva predvsem zato ker vsebuje veliko postscriptnih clankov ki so uporabni ce zelite izvedeti vec o nitih ni neposredno uporabna v linuxu za podrobnosti prosim stopite v stik z avtorji posameznih paketov kje lahko dobim lint za linux v gnu jevski prevajalnik za c gcc ki se uporablja na sistemih tipa linux je vgrajena bolj ali manj enaka funkcionalnost izpis vecine uporabnih opozoril dobite z uporabo izbire wall za vec informacij berite prirocnik za gcc v emacsu napisite control h in potem i in izberite poglavje o gcc obstaja prosto dostopen program imenovan lclint ki dela isto stvar kot standardni lint najave in izvorna koda so dostopni na ftp larch lcs mit edu pub larch lclint na svetovnem spletu glejte stran http larch www lcs mit edu larch lclint html kje lahko najdem kermit za linux kermit se razsirja s pravicami razsirjanja ki se razlikujejo od gpl izvorna koda in nekatere izvrsilne datoteke so dostopne na ftp kermit columbia edu spletna stran projekta kermit na columbia university je na naslovu http www columbia edu kermit naprej nazaj vsebina