Instalacija make ubuntu. Ubuntu Make - za pomoć programerima. Preuzmite izvore kernela

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Zaključak je da ova naredba u obliku " napraviti instalaciju" ili "sudo make install" ne mogu se koristiti na modernim distribucijama.

Ali autori programa u uputama za instalaciju pišu da morate koristiti ovu naredbu, mogli biste reći. Da, pišu. Ali to samo znači da oni ne znaju koju distribuciju imate, niti je li to uopće distribucija, možda ste se učlanili u sektu i pušili čitajući LFS i sada odlučili sastaviti njihovu kreaciju za svoj htonski sustav. A make install je univerzalan, iako često netočan, način za to.

Lirska digresija

Kao što znate, za normalan rad, većina softvera mora biti ne samo kompilirana, već i ispravno instalirana na sustav. Programi očekuju da će pronaći datoteke koje su im potrebne na određenim mjestima, a ta su mjesta na većini *nix sustava tvrdo kodirana u kodu tijekom kompajliranja. Osim ovog aspekta, glavna razlika između procesa instalacije u linux/freebsd/whatever i onog u Windowsima i MacOS-u je u tome što program ne stavlja hrpu datoteka samo u zaseban direktorij u Program Files ili /Applications, već se "širi" kroz cijeli sustav datoteka. Knjižnice idu u lib, izvršne datoteke u bin, konfiguracije u itd., razne vrste podataka u var, i tako dalje. Ako ga iznenada trebate ažurirati, onda sve ovo prvo morate nekako očistiti, jer... korištenjem nova verzija Ostaci datoteka iz starog mogu dovesti do potpuno nepredvidivih posljedica, često nije dobro. Vjerojatnost ovog događaja nije tako velika, ali trebate li ga na proizvodnom poslužitelju?

Pa što?

Dakle, ako ste instalaciju izvršili izravno putem make install, onda je normalno ukloniti ili ažurirati softver, najvjerojatnije ne možeš. Štoviše, instaliranje nove verzije preko stare najvjerojatnije će će prebrisati vaše promjene u konfiguracijama. make install radi točno ono što mu je rečeno da radi - instalira datoteke na prava mjesta, zanemarujući činjenicu da je nešto već tamo. Nakon ovog procesa apsolutno je nemoguće dobiti bilo kakvu informaciju o tome što je gdje stavljeno iu probavljivom obliku. Ponekad, naravno, Makefile podržava akciju deinstalacije, ali to nije tako uobičajeno i nije činjenica da radi ispravno. Osim toga, pohranjivanje raspakiranog izvornog stabla i pravila izgradnje za deinstalaciju je nekako čudno.

Kako se boriti?

Budući da se paketi u distribucijama ponekad ažuriraju, da bi riješili ovaj problem smislili su nešto poput upravitelja paketima. Kada ga koristite, instalacija ide otprilike ovako:
  1. uzima se na određeni način formirana arhiva
  2. iz njega se izvlače informacije o tome što je, koja je verzija, o čemu ovisi, s čime je u sukobu, je li potrebno pokrenuti neke skripte za instalaciju/deinstalaciju/konfiguraciju itd.
  3. Izravni koraci instalacije u tijeku
  4. Svi podaci o tome gdje i što je isporučeno dodaju se u bazu podataka upravitelja paketa.

U tom slučaju, prilikom ažuriranja, možete bezbolno ukloniti nepotrebne stvari, a istovremeno vidjeti jesu li se datoteke označene kao konfiguracijske promijenile u sustavu i pitati što učiniti ako je njihov sadržaj drugačiji u novoj verziji. Osim toga, upravitelj paketa neće vam dopustiti da prebrišete datoteke jednog paketa kada instalirate drugi. Općenito, puno korisne stvari on može učiniti.

Ako ste iz neznanja/lijenosti kopirali i zalijepili make install iz uputa, onda u sustavu se pojavljuju datoteke za koje upravitelj paketa ne zna. Sa svime što to podrazumijeva, ako vam prethodno nabrojano nije dovoljno.

Što uraditi?

Možete, naravno, konfigurirati stablo izvora tako da sve bude instalirano negdje u /opt/mycoolapp/, a zatim, ako je potrebno, to ručno obrisati, ali tu može izaći puno neugodnih stvari, počevši od toga da program očekuje da može učitati vaše biblioteke, a učitavač ne zna ništa o direktoriju gdje se one nalaze, završavajući činjenicom da autor programa to može očekivati, na primjer, ako stavi datoteku, recimo, u $prefix/share /xsessions/, tada će upravitelj prikaza to preuzeti. Da ne spominjem staze za pkgconfig i tako dalje.

Dakle, morate preuzeti paket.

Nemam vremena zajebavati se s tim, bolje da instaliram ponovo, sve je jednostavno i jasno!

Smiri se, smiri se. Vezan je za naše noge. Sve nije tako strašno i komplicirano kao što se čini na prvi pogled.
checkinstall
Ovaj prekrasni uslužni program, kada se pokrene umjesto make install, postavit će nekoliko pitanja, nakon čega će izgraditi i instalirati paket. To je to, prilikom ažuriranja nećete imati problema s čišćenjem starog smeća.
Ručna izgradnja deb paketa
Ako niste skloni vjerovati takvoj automatizaciji (koja ponekad ipak zabrlja) ili želite napraviti par promjena, ali ste još uvijek previše lijeni da biste se bavili normalnim procesom izgradnje paketa, onda možete sastaviti paket ručno. Predstavljam način kako ga izgraditi za sustave temeljene na Debianu, budući da sam s njima najviše upoznat. Nije ideološki ispravan, ali izlaz je potpuno ispravan paket bez korištenja dodatnih entiteta. To se radi na sljedeći način.
Prvo sastavljamo softver s parametrima --prefix=/usr i --exec-prefix=/usr koji su unaprijed navedeni za configure ili autogen.sh.
Zatim ga instaliramo u privremeni direktorij. Pišemo:

Fakeroot make install DESTDIR=`pwd`/tempinstall
Nakon toga dobivamo cijeli skup datoteka u novostvorenom direktoriju. Inače, sada smo u fakeroot okruženju, tj. možete promijeniti vlasnika i prava pristupa datotekama bez ikakvih ograničenja, ali ćete fizički ostati vlasnik sustava. Softver unutar fakeroot sesije primit će promijenjene informacije, što će omogućiti arhiviranje datoteka s ispravnim pravima.
Zatim kreirajte DEBIAN direktorij u “korijenu paketa” i dodajte popis svih datoteka koje trebaju ići u /etc u DEBIAN/conffiles:

Cd tempinstall mkdir DEBIAN pronađi itd | sed "s/^/\//" > DEBIAN/conffiles
Zatim kreiramo DEBIAN/kontrolnu datoteku sa sljedećim sadržajem:

Ako je potrebno, tamo također možete kreirati preinst, postinst, prerm i postrm skripte.

To je to, radimo dpkg -b tempinstall i izlaz je tempinstall.deb, koji možete koristiti dpkg -i za ispravno instaliranje, ažuriranje ili uklanjanje.

"Ispravan" postupak s pretpakiranjem izvorni kod je izvan opsega ove bilješke i stoga neće biti opisan, ali za vaše potrebe obično nije potreban.

Zaključak

Kao što vidite, ovdje nema apsolutno ništa komplicirano, ali slijedeći ove korake spasit ćete se od velikog broja problema u budućnosti.

Bok svima!

Ovo je kratka bilješka za početnike u Linuxu o tome što ove tri divne naredbe znače i za što su potrebne. Počnimo, kako se kaže, iz početka. Većina programa mora se kompajlirati prije upotrebe, odnosno pretvoriti iz teksta koji osoba može razumjeti u skup jedinica i nula koje računalo može razumjeti. Proces je podijeljen u tri faze: konfiguracija, montaža i instalacija. Detalji ispod kroja :)

./konfigurirati

Ova naredba traži biblioteke i datoteke zaglavlja potrebne za kompilaciju (ovo je za programe djelomično ili potpuno napisane u C/C++ i sličnim jezicima), kao i postavljanje posebnih parametara ili povezivanje posebnih biblioteka, ako ./konfigurirati pronaći će sve što mu treba, on će stvoriti Makefiles- datoteka potrebna za izgradnju programa

Parametre konfiguratora možete konfigurirati pomoću ključeva i argumenata tih istih ključeva, na primjer:

./configure --prefix=/opt/my_program

S ključem --prefiks= Možete navesti direktorij koji će kasnije djelovati kao prefiks za vaš program (to jest, korijenski direktorij). To je zbog činjenice da u svijetu Linuxa i ne samo, postoji posebna hijerarhija datotečnog sustava (HFS) prema kojoj svaki program mora biti kompajliran i instaliran kako bi radio bez grešaka.

Postoje tri glavna prefiksa datotečnog sustava prema kojima je većina programa konfigurirana, naime:

  • / - korijenski direktorij operativnog sustava, tzv. ROOT
  • /usr - direktorij u kojem se nalaze aplikacije korisničkog okruženja
  • /usr/local - dodatni direktorij za korisničkih programa, prikupljeni ručno, posebno kako se operativni sustav ne bi pretvorio u odlagalište

Ako otvorite bilo koji od ovih direktorija, možete vidjeti vrlo sličnu strukturu, barem će biti mape: bin, itd., include, libs, sbin.

Ako trčite ./konfigurirati bez ključeva, tada će zadani prefiks (direktorij u koji će biti instaliran kompilirani program). /usr/lokalno, zapamtite ovo, ako ne možete pokrenuti svoj program, možda nemate put do STAZA.

Osim ključa --prefiks U konfiguratoru, u pravilu, postoji mnogo drugih ključeva, sve ih možete vidjeti ako pokrenete:

./configure --help

napraviti

Najvažnija i najjednostavnija naredba/program pokreće postupak kompilacije aplikacije iz izvornog koda. Za svoj rad ovaj program koristi posebne datoteke Makefiles, koji detaljno opisuju proces izgradnje aplikacije sa svim parametrima koje smo zadali konfiguratoru. Rezultat uspješne make naredbe bit će kompilirani program u trenutnom direktoriju.

napraviti instalaciju

Ova naredba izravno instalira aplikaciju u direktorij naveden u fazi konfiguracije; nakon izvršavanja naredbe make install, možete pokrenuti novoinstalirani program.

Pogovor

Kako ne biste pisali tri naredbe redom, možete ih napisati u jednom retku:

./configure && make && make install

&& - ovo je AND operator, koji je došao iz jezika C/C++, međutim, sa gledišta ljuske, to znači da se sljedeća naredba mora izvršiti samo ako je prethodna naredba uspješno završena, ovo je vrlo zgodno ako jedna faza završava pogreškom.

Zapravo, make install također može izvršiti izgradnju, jer instalacijski zadatak ovisi o all tasku (to jest, izravnoj izgradnji aplikacije), to znači da se korak make može preskočiti i mogu se izvršiti samo dvije naredbe ako ih napišete u jednoj liniji:

./configure && make install

Sretno ti! I hvala na čitanju!

Također se moraju instalirati i drugi sustavi dodatni programi. U operativni sustavi U sustavu Windows sve je vrlo jednostavno, u pravilu postoji instalacijski program pod nazivom setup.exe koji pomaže instalirati softver. Ali u Linuxu su stvari malo drugačije. Kako instalirati programe na Linux? Sada pogledajmo ovo pitanje.

Linux ima nekoliko vrsta instalacijskih paketa i svaka distribucija ima vlastiti format paketa. Korištenje distribucija Fedora, Mandriva, Red Hat i Suse standardna instalacija za Linux RPM, razvijen od strane Red Hata. Datoteka RPM paketa obično ima naziv naziv_programa-verzija.rpm.

Još jedan vrlo popularan format je DEB. Koristi se u Debianu, Ubuntuu, Knoppixu i Mepisu. Ima ime naziv_programa-verzija.deb.

I pristupili smo arhivi. Obično su to ekstenzije .tar , .tar.gz , .tgz. Treba ih raspakirati i zatim instalirati/kompilirati.

Morate izvršiti postupak instalacije programa kao superkorisnik.

Brza navigacija

Instaliranje programa na Debian, Ubuntu

Postoje mnogi alati za rad s DEB paketima, ali najčešće se koristi apt-get koji je uključen u standardni set alata. Za instalaciju aplikacije unesite naredbu:

apt-get instalacija naziv_paketa

Za uklanjanje:

apt-get ukloni naziv_paketa

APT pohranjuje lokalnu bazu podataka svih paketa koji su dostupni za instalaciju i poveznice gdje ih možete nabaviti. Ovu bazu podataka potrebno je ažurirati s vremena na vrijeme naredbom:

apt-get ažuriranje

Za ažuriranje zastarjelih paketa (programa) na računalu upišite sljedeće naredbe:

apt-get ažuriranje ; apt-get nadogradnja

Instaliranje programa na Fedora, Red Hat

Uslužni program sličan APT-u je yum. Za preuzimanje i instaliranje paketa iz konfiguriranog repozitorija napišite naredbu:

yum instaliraj naziv_paketa

yum ukloni naziv_paketa

Lokalna yum baza podataka nije spremljena, tako da nema potrebe za ažuriranjem. Da biste instalirali ažuriranja, koristite naredbu:

yum ažuriranje

Odaberite nešto specifično za ažuriranje:

yum ažuriraj naziv_paketa

Instaliranje programa u Mandrivi

Mandriva ima vlastiti skup alata za rad s paketima, nazvan urpmi. Za ugradnju:

urpmi naziv_paketa

Izbrisati:

urpme naziv_paketa

Ažurirajte lokalnu bazu podataka popisom paketa:

urpmi. ažuriranje -a

Za instaliranje ažuriranja:

urpmi --automatski odabir

Instaliranje programa iz arhiva (tarballs)

Za arhive komprimirane pomoću GZIP-a (gz, gz2, itd.) radimo ovo:

tar -xvz f naziv datoteke

Za arhive komprimirane pomoću BZIP-a (bz, bz2, itd.) to je malo drugačije:

tar -xvjf naziv datoteke

Tar naredbe:

  • x – izdvojiti datoteke iz arhive;
  • v – detaljan prikaz informacija na ekranu;
  • f – Obavezna opcija. Ako nije navedeno, Tar će pokušati koristiti traku umjesto datoteke;
  • z – obraditi arhivu komprimiranu pomoću gzipa;
  • j – obraditi arhivu komprimiranu pomoću bzipa.

Nakon izvršenja naredbe, kreirat će se mapa s nazivom sličnim nazivu paketa. Zatim morate otvoriti ovu stvorenu mapu naredbom:

cd folder_name

Zatim u neraspakiranoj arhivi pročitajte upute u datoteci README, ako postoje. U svakom slučaju, ako je program kompajliran kao izvršna datoteka, tada će paket sadržavati .sh datoteku, obično nazvanu install.sh

Materijal Bryansk Linux Users Group i www.rm.pp.ru

Svaka distribucija ima svoje specifičnosti za sastavljanje kernela, a ovaj je članak fokusiran posebno na to kako to učiniti u Debian Etchu. Također otkriva pitanje kako primijeniti određenu zakrpu na kernel kada je potrebna podrška za određene funkcije ili nova oprema u vašem sustavu. Članak je prvenstveno namijenjen obučenijim korisnicima i nema garancija da će ova metoda funkcionirati kako treba te sve opisane radnje i odgovornost padaju na vas.

  1. Bilješka
  2. Stavljanje flastera
  3. Konfiguracija kernela
  4. Kompajliranje kernela
  5. Instaliranje novog kernela
  6. Problemi
  7. Linkovi

Bilješka

Bit će opisane dvije metode sastavljanja kernela. Prva opcija bit će opisana za sastavljanje .deb paketa koji se mogu instalirati na vaš ili drugi sustav. Druga metoda je takozvani "tradicionalni" način.

Prva metoda. Ugradnja kernela u .deb pakete

Instaliranje potrebnih paketa za kompajliranje kernela

Najprije ažurirajmo popise paketa:

# apt-get ažuriranje

Instalirajmo pakete koji su nam potrebni:

# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential

Preuzmite izvore kernela

Idite u direktorij /usr/src, idite na www.kernel.org i odaberite željenu verziju kernela. U ovom slučaju u obzir će se uzeti verzija linux-2.6.23.1.tar.bz2. Preuzimanje datoteka:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.1.tar.bz2

Raspakirajmo izvore i stvorimo simboličku vezu:

# tar xjf linux-2.6.23.1.tar.bz2 # rm linux (ukloni prethodnu simboličku vezu) # ln -s linux-2.6.23.1 linux # cd /usr/src/linux

Stavljanje flastera

Nemojte to činiti neobavezno ili nepotrebno!

Ponekad su potrebni upravljački programi ili alati koji nisu podržani u postojećem kernelu, na primjer tehnologija virtualizacije ili druge druge specifičnosti koje nisu u trenutnom izdanju. U svakom slučaju, to se može ispraviti primjenom tzv. zakrpa (ako postoje).

Dakle, pretpostavimo da ste preuzeli traženu zakrpu (na primjer, nazovimo je patch.bz2) u /usr/src. Primijenimo preuzetu zakrpu na naše izvore (još uvijek morate biti u /usr/src/linux direktoriju):

# bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch.bz2 | zakrpa -p1

Prva naredba je samo test i nikakve promjene se neće primijeniti na izvore. Ako se nakon prve naredbe nije pojavila nikakva pogreška, možete pokrenuti drugu naredbu za primjenu zakrpe. Ni pod kojim okolnostima ne smijete izvršiti drugu naredbu ako su se greške generirale nakon prve!

Na ovaj način možete primijeniti zakrpe na izvore kernela. Na primjer, postoje neke značajke koje su dostupne samo u jezgri 2.6.23.8, a izvorni kod nije sadržavao potrebnu funkcionalnost, ali je izdana zakrpa-2.6.23.8.bz2. Ovu zakrpu možete primijeniti na izvore kernela 2.6.23, ali ne i 2.6.23.1 ili 2.6.23.3 itd. Više o tome možete pročitati na:

Prefiksi (prepatches) - ekvivalent alfa izdanjima; zakrpe se moraju primijeniti na izvore kompletnog prethodnog izdanja s 3-znamenkastom verzijom (na primjer, zakrpa 2.6.12-rc4 može se primijeniti na izvore verzije 2.6.11, ali ne i na verziju 2.6.11.10.)

To znači da, ako želimo izgraditi kernel 2.6.23.8, moramo preuzeti izvorne verzije verzije 2.6.23 (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23 .tar.gz) primijenjen u drugoj metodi "tradicionalan" način!

Primijenite patch-2.6.23.8.bz2 na kernel 2.6.23:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.22.8.bz2 # cd /usr/src/linux # bzip2 -dc /usr/ src/patch-2.6.23.8.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch-2.6.23.8.bz2 | zakrpa -p1

Konfiguracija kernela

Dobro je koristiti postojeći konfiguracijska datoteka radni kernel i za novi. Stoga kopiramo postojeću konfiguraciju u /usr/src/linux:

# make clean && make mrproper # cp /boot/config-`uname -r` ./.config # make menuconfig

nakon čega će se učitati grafički izbornik konfiguracije jezgre. Odaberite stavku "Učitaj alternativnu konfiguracijsku datoteku" u izborniku konfiguratora i kliknite "U redu". Zatim (ako je potrebno) izvršite potrebne promjene u konfiguraciji kernela kretanjem kroz izbornik (detalji konfiguracije kernela mogu se pronaći na www.google.com). Kada završite i kliknete na “Izlaz”, pojavit će se pitanje “Želite li spremiti novu konfiguraciju kernela?”, odgovorite potvrdno “Da”.

Kompajliranje kernela

Izgradnja kernela se vrši u samo dvije naredbe:

# make-kpkg clean # fakeroot make-kpkg --initrd --append-to-version=-cybermind kernel_image kernel_headers

Nakon --append-to-version=, možete napisati bilo koji naziv koji želite, ali mora započeti znakom minus (-) i bez razmaka.

Proces prevođenja i izgradnje .deb paketa može potrajati prilično dugo. Sve će ovisiti o konfiguraciji kernela i mogućnostima vašeg procesora.

Rješavanje problema s kreiranjem initrd.img

Nedavno se u Debianu pojavio bug u kojem se nakon instaliranja paketa s jezgrama sastavljenim ovdje opisanom metodom ne stvara odgovarajuća datoteka /boot/initrd.img. Da biste to popravili za već instalirani kernel, morat ćete ručno izraditi initrd.img:

ažuriranje-initramfs -c -k<полная-версия-ядра>

Kako biste riješili problem "za budućnost", komentirajte, kao što je prikazano, drugi redak citiran ispod u datoteci /etc/kernel/postinst.d/initramfs-tools:

# kernel-package prosljeđuje dodatni argument; hack da se ne pokreće pod kernel-paketom #[ -z "$2" ] || izlaz 0

Instaliranje novog kernela

Kada se izgradnja kernela uspješno dovrši, dva .deb paketa bit će kreirana u /usr/src direktoriju:

# cd /usr/src # ls -l

linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - sama jezgra i linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - zaglavlja jezgre potrebne za izgradnju drugih modula (na primjer, prilikom izgradnje modula nVidia drajveri). Instalirajte ih:

# dpkg -i linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb # dpkg -i linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb

(Ovi se paketi sada mogu instalirati na drugi sustav i neće ih biti potrebno ponovno graditi.)

To je to, instalacija je gotova, izbornik bootloadera, instalacija novog RAM diska i kernela će se izvršiti automatski. Sve što preostaje je ponovno podizanje sustava:

# ponovno podizanje sustava

Druga metoda. "tradicionalan" način

Provodimo sve gore opisane točke PRIJE točke “Kernel kompilacija”.

# make all # make modules_install # make install

Kao i obično, izgradnja može trajati dugo, ovisno o konfiguraciji jezgre i mogućnostima procesora.

Glavni nedostatak ove metode je da ako često ažurirate kernele, nakon nekog vremena nakupit će se veliki broj njih i poželjet ćete ukloniti neiskorištene. Kako biste ovo olakšali, možete sastaviti kernel i druge datoteke koje su instalirane u sustav pomoću naredbi “make modules_install” i “make install” u deb paket (ili bolje rečeno, dva počevši od kernela 2.6.27) sličan prva metoda, ali koristit ćemo se ovdje skriptama same jezgre:

# napravi sve # napravi deb-pkg

Dvije .deb datoteke pojavit će se u direktoriju jednu razinu iznad izvornog direktorija. Sastavio sam kernel u /usr/src/linux-2.6.27.10 direktoriju i datoteke su se pojavile u /usr/src/ direktoriju

# linux-2.6.27.10_2.6.27.10-1_amd64.deb # linux-firmware-image_2.6.27.10-1_all.deb

Kernel se instalira naredbom

# dpkg -i linux-2.6.27.10_2.6.27.10-1_amd64.deb

Stare jezgre mogu se ukloniti, na primjer, iz synaptic"a

Sljedeći koraci

Kernel je kompajliran i instaliran, ali sada morate napraviti RAM disk (bez kojeg se kernel jednostavno neće pokrenuti) i morate ažurirati GRUB bootloader. Da biste to učinili, učinite sljedeće:

# depmod 2.6.23.1 # apt-get install yaird

Instalirajte RAM disk:

# mkinitrd.yaird -o /boot/initrd.img-2.6.23.1 2.6.23.1

Ažurirajte bootloader jednostavno i bezbolno:

# update-grub

To je to, bootloader i novi kernel su spremni, preostaje samo ponovno podizanje sustava:

# ponovno podizanje sustava

Problemi

Ako se nakon ponovnog pokretanja nova jezgra koju ste odabrali ne učita, ponovno pokrenite sustav i odaberite prethodnu jezgru te možete pokušati ponoviti cijeli proces kako biste izgradili radnu jezgru. U tom slučaju ne zaboravite izbrisati retke neradnog kernela u /boot/grub/menu.lst.

Često se potrebni paketi mogu pronaći samo u izvornom obliku; ovaj članak opisuje metodu instaliranja paketa iz izvornog koda.

Raspakirati

Programi se obično distribuiraju u zapakiranim arhivama, to su datoteke s ekstenzijama

.tar.gz (ponekad .tgz) .tar.bz2

Morate razumjeti razliku između programa za arhiviranje i programa za pakiranje.

Program služi za arhiviranje direktorija i datoteka katran; rezultat njegovog rada je datoteka s ekstenzijom .katran. Grubo rečeno, ovo je kopija sustav datoteka- direktorije i datoteke sa svojim atributima i pravima pristupa, smještene u jednu datoteku.

Ova će datoteka biti nešto veća u veličini od ukupne veličine datoteka koje su arhivirane. Stoga (ili možda iz nekog drugog razloga) koriste pakere - programe koji vam omogućuju smanjenje veličine datoteke bez gubitka podataka.

Program katran može raspakirati, pa nema potrebe zvati pištolj, ili možete jednostavno reći programu katran da se datoteka prvo mora raspakirati. Na primjer, naredba

katran -xvf< some_app_name>.tar.gz

odmah će se raspakirati i raspakirati. Razlika između datoteka i ekstenzija

.tar.gz

.tar.bz2

samo što su korišteni različiti pakeri, program katran automatski određuje metodu kompresije i u ovom slučaju nisu potrebne nikakve dodatne opcije.

Nakon raspakiranja trebate otići u rezultirajući direktorij; sve dolje opisane naredbe izvršavaju se u direktoriju s izvornim kodom paketa.

CD< имя_пакета>*

Izgradnja paketa

Za izradu programa u GNU/Linuxu koristite (uglavnom) program napraviti, koji pokreće upute iz Makefile, ali budući da postoji mnogo distribucija GNU/Linuxa i sve su različite, da biste izgradili program, za svaku distribuciju morate zasebno navesti staze na kojima se nalaze biblioteke i datoteke zaglavlja. Programeri ne mogu proučavati svaku distribuciju i stvarati zasebno za svaku Makefile. Stoga su osmislili konfiguratore koji “proučavaju” sustav i u skladu sa stečenim znanjem kreiraju Makefile. Ali nisu stali na konfiguratoru i došli su do konfiguratora nad konfiguratorima...tu su stali

Za izgradnju su nam potrebni prevoditelji: oni su navedeni u ovisnostima paketa izgraditi-bitno, pa ga je dovoljno instalirati sa svim ovisnostima. Još uvijek potreban autokonf I automake.

Dakle, da biste izgradili nešto iz izvora, prvo trebate izgraditi konfigurator; kako izgraditi konfigurator je opisano u datoteci configure.in. Za izgradnju konfiguratora trebate pokrenuti

./ bootstrap ./ autogen.sh

Ako u arhivi nema takvih skripti, možete redom pokrenuti sljedeće naredbe:

aclocal autoheader automake --gnu --add-missing --copy --foreign autoconf -f -Wall

Sve ove naredbe koriste datoteku konfigurirati.in. Nakon izvršavanja ovih naredbi, kreirat će se datoteka konfigurirati. Nakon toga morate pokrenuti konfigurator da provjerite prisutnost svih ovisnosti, kao i instalirati dodatne opcije izgradnje (ako je moguće) i vidjeti rezultat instalacije (opcionalno - možda neće biti prisutan)

./ konfigurirati

Konfigurator će izgraditi Makefile na temelju stečenog znanja i datoteke makefile.am. Konfiguratoru možete proslijediti opcije navedene u izvorima programa, koje vam omogućuju da omogućite/onemogućite određene značajke programa; obično ih možete saznati pomoću naredbe

./ konfiguracija --pomoć

Tu je i skup standardnih opcija, poput

Prefiks=

Koji određuje koji direktorij koristiti za instalaciju. Obično za Ubuntu

--prefiks =/ usr --prefiks =/ usr/ lokalno

BEZ kosa crta na kraju! Sada možete započeti proces izgradnje samog programa pomoću naredbe

napraviti

Dovoljno privilegija za izgradnju redoviti korisnik. Kraj builda može se smatrati onim trenutkom kada se naredbe u konzoli prestanu izvršavati “nasumično” i nema riječi greška. Sada je sve sastavljeno i spremno za instalaciju.

Montaža

Napori utrošeni na Ispravna instalacija ubuduće će više nego isplatiti sami sebe u slučaju deinstalacije ili ažuriranja instaliranog softvera.

Ispravna instalacija (opcija br. 1)

Instalacija pomoću uslužnog programa checkinstall. Instalirati:

sudo apt-get install checkinstall

Minus ovu metodu: checkinstall ne razumije sve izvore, budući da autor programa može napisati posebne instalacijske skripte i checkinstall neće ih razumjeti.

Za izradu i instaliranje deb paketa morate pokrenuti

sudo checkinstall

Ispravna instalacija (Opcija br. 2)

Brzo ručno izradite deb paket.

Glavna razlika od prethodna metoda je da u ovom slučaju paket kreirate ručno i pratite sve promjene koje napravite. Ova metoda će vam također odgovarati ako izvori ne podržavaju izgradnju paketa s checkinstall.

    Instaliramo u privremeni direktorij, gdje dobivamo cijeli set instaliranih datoteka:

fakeroot make install DESTDIR=`pwd`/tempinstall

    Kreirajmo DEBIAN direktorij u "korijenu paketa" i dodamo popis svih datoteka koje trebaju ići u /etc u DEBIAN/conffiles:

cd tempinstall mkdir DEBIAN pronađi itd | sed "s/^/\//" > DEBIAN/ conffiles

    Zatim kreiramo DEBIAN/kontrolnu datoteku sa sljedećim sadržajem:

Paket: package_name Verzija: 1.2.3 Arhitektura: amd64/i386/armel/all Održavač: Možete unijeti svoje ime, možete smeće, ali ako ga ostavite praznim, onda će dpkg psovati Ovisi: Ovdje možete unijeti popis paketa odvojeno zarezima. Prioritet: izborno Opis: Također morate unijeti nešto kako ne bi bilo upozorenja

    Ako je potrebno, tamo također možete kreirati preinst, postinst, prerm i postrm skripte.

    Kreiramo deb paket za koji izvršavamo:

dpkg -b privremena instalacija

    Izlaz je tempinstall.deb, koji mi instaliramo

sudo dpkg -i tempinstall.deb

Instalacija (opcija br. 3)

Neispravna instalacija

Nedostatak ove metode je da ako instalirate izravno putem make install, tada najvjerojatnije nećete moći normalno ukloniti ili ažurirati paket. Štoviše, instaliranje nove verzije preko stare najvjerojatnije će prebrisati vaše promjene u konfiguracijama. make install radi točno ono što mu je rečeno da radi - instalira datoteke na prava mjesta, zanemarujući činjenicu da je nešto već tamo. Nakon ovog procesa apsolutno je nemoguće dobiti bilo kakvu informaciju o tome što je gdje stavljeno iu probavljivom obliku. Ponekad, naravno, Makefile podržava akciju deinstalacije, ali to nije tako uobičajeno i nije činjenica da radi ispravno. Osim toga, morat ćete pohraniti neraspakirano izvorno stablo i izgraditi pravila za deinstalaciju.

Za instalaciju morate učiniti

sudo make install

Da biste uklonili paket instaliran pomoću ove metode, morate ga izvršiti u korijenskom direktoriju izvora programa (gdje ste pokrenuli make install).

sudo make uninstall

Greške

Često u fazi konfiguracije, konfigurator javlja da određena biblioteka nedostaje. Naziv biblioteke koji prijavljuje ne odgovara uvijek nazivu paketa u Ubuntuu. Iz vlastitog iskustva mogu vam savjetovati da potražite traženi paket u Synapticu, isključujući prefiks lib. Ako pronađete nekoliko paketa koji se razlikuju prefiksom -dev u nazivu, tada morate instalirati paket -dev (obično također uključuje nedev paket). Također možete pretraživati ​​pomoću http://packages.ubuntu.com/ unosom naziva knjižnice u pretragu sadržaja paketa, slično tome, ako pronađete dev i non-dev, potrebna su vam oba. Pa, ili jednostavno pretražite na Googleu.

Potreban softver

Paketi s mm na kraju opisa su paketi za C++ programe. Popis za bmpx, ali prikladan za gotovo svaki GTK2/Gnome program. Dakle, ako ga ne možete sastaviti, pogledajte ovaj popis i usporedite ga s onim što ste instalirali.

Sastaviti:Vrijeme izvođenja:
xlibx11-devlibx11-6
GlibMMlibglibmm-2.4-devlibglibmm-2.4-1c2a
GTK+libgtk2.0-dev,gtk-doc-alatilibgtk2.0-0
GTKMMlibgtkmm-2.4-devlibgtkmm-2.4-1c2a
Proplanaklibglade2-devlibglade2-0
GladeMMlibglademm-2.4-devlibglademm-2.4-1c2a
XMLlibxml2-devlibxml2
XML++libxml++2.6-devlibxml++2.6c2a
DBuslibdbus-1-dev,libdbus-glib-1-devlibdbus-1-2,libdbus-glib-1-2
Alsalibasound2-devlibasound2
HALlibhal-dev,libhal-storage-devlibhal1,libhal-skladištenje1
Gaminlibgamin-devlibgamin0
Neonlibneon25-devlibneon25
TagLiblibtagc0-devlibtagc0
Pokretanje-Obavijestilibstartup-notification0-devlibstartup-obavijest0
pojačatilibboost-dev,libboost-datotečni sustav-devlibboost-datotečni sustav1.33.1
MusicBrainzlibmusicbrainz4-devlibmusicbrainz4c2a
GStreamerlibgstreamer0.10-dev,libgstreamer-plugins-base0.10-devlibgstreamer0.10-0,libgstreamer-plugins-base0.10-0


reci prijateljima