Sastavljanje i instaliranje programa iz izvora. Očaravajuća magija konfiguracije, izrade i instalacije Instaliranje softvera na Fedora, Red Hat

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

Bok svima!

Ovo je mala napomena za početnike u Linuxu o tome što ove tri velike naredbe znače i čemu služe. Počnimo, kako se kaže, iz početka. Većina programa mora se kompajlirati prije upotrebe, to jest, pretvoriti iz teksta čitljivog čovjeku u skup jedinica i nula koje računalo može razumjeti. Proces je uvjetno podijeljen u tri faze: konfiguracija (configure), montaža (make) i instalacija (make install). 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 u datotečnom sustavu prema kojima je većina programa konfigurirana, naime:

  • / - korijenski direktorij operativnog sustava, takozvani ROOT
  • /usr - direktorij u kojem se nalaze aplikacije korisničkog okruženja
  • /usr/local - dodatni direktorij za prilagođeni programi ručno odabrano posebno za operacijski sustav nije pretvorio u smetliš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či ./konfigurirati bez ključeva, tada će biti zadani prefiks (direktorij u koji će biti instaliran kompilirani program). /usr/lokalno, zapamtite ovo ako ne možete pokrenuti svoj program, možda nemate ulaznu stazu 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 iz koje se pokreće procedura kompilacije aplikacije izvorni kod. Za svoj rad ovaj program koristi posebne datoteke Makefiles, koji detaljno opisuju proces izgradnje aplikacije sa svim parametrima koje smo zadali konfiguratoru. Rezultat uspješnog izvođenja naredbe make bit će kompilirani program u trenutnom direktoriju.

napraviti instalaciju

Ova naredba izvodi izravnu instalaciju aplikacije 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

&& 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 treba izvršiti samo ako je prethodna naredba bila uspješna, ovo je vrlo zgodno ako jedna od faza završi s greška.

Zapravo, make install također može graditi, jer instalacijski zadatak ovisi o all tasku (to jest, izravnoj izgradnji aplikacije), što znači da se korak make može preskočiti i samo dvije naredbe se mogu izvršiti ako su napisane u jednom retku:

./configure && make install

Sretno ti! I hvala na čitanju!

terminal i naredbe

Jeste li često otkrili da je prava verzija aplikacije za vašu arhitekturu u Ubuntu distribucija jednostavno ne, ali ovaj program je dostupan na web stranici programera u obliku izvornih kodova u .tar.gz arhivi. Mislim da je puno ljudi poznato ova situacija, ali nisu svi nastavili tražiti načine za rješavanje ovog problema i jednostavno su potražili drugi analog aplikacije ili nešto stariju verziju i nastavili raditi.

Htio bih odmah dodati nekoliko riječi za početnike u Linuxu, prije nego što napravite nešto iz ovog članka, temeljito proučite terminal i naredbe koje se koriste za rad s njim, pročitajte manu ili materijale na netu.

  • Za izrade aplikacija naravno, trebat će nam alati za razvojne programere, u našem slučaju ovo je kompajler i ostali prateći programi, glavni posao će, naravno, obaviti make utility, i naredbeni redak(terminal) će biti kao naša kuhinja u kojoj ćemo biti pripremiti / montirati / instalirati naša aplikacija iz izvora. U linux terminal dostupan prema zadanim postavkama, radi vaše udobnosti, naravno možete instalirati bilo koji drugi funkcionalniji na koji ste navikli, npr. ja koristim Guake, ima puno mogućnosti u usporedbi sa standardnim, gdje je lako postaviti i kopiranje i lijepljenje naredbi ili bilo kojeg teksta korištenjem CTRL +C,CTRL+V i još mnogo toga, što rad s konzolom čini ugodnijim.
  • 1. Odakle započeti kada gradite aplikacije iz izvora, to je naravno preuzimanje aplikacije u arhivi tar.gz ili tar.bz2, u mom slučaju, na primjer, aplikacija Gimp 2.9.2, iako je u našem slučaju arhiva nije u tar.gz formatu, a tar.bz2, nema razlike, skinite, nakon desnog klika na arhivu - Izdvojite ovdje.

Ovo je možda prva faza završena, što ćemo dalje? Zatim pokrećemo terminal i idemo u našu raspakiranu mapu s datotekama:

CD /home/linux/Downloads/gimp-2.9.2/ls

  • 2. Prije početka pripreme izvora za montažu, savjetovao bih vam da prvo otvorite i upoznate se s INSTALL datotekom, naći ćete puno korisna informacija, V dana datoteka opisuje kako instalirati aplikaciju, koje naredbe trebate izvršiti i još mnogo toga zanimljivog. Sada vam savjetujem da instalirate dodatni paket koji se zove - auto-apt, čini puno rutinski rad umjesto tebe.
sudo apt-get instaliraj auto-apt

Što za mene znači raditi puno rutinskih poslova, pitate se pokrenuti konfiguraciju izvora aplikacije s prefiksom ovog paketa, na primjer, u obliku:

Auto-apt -y run ./configure

Naravno, možete izvršiti konfiguraciju bez pomoći ovog paketa i jednostavno pokrenuti naredbu:

./konfigurirati

Ako izvršite konfiguraciju s prefiksom - auto-apt -y run, tada priprema izvora za montažu održat će se u automatski način rada, odnosno ova naredba može automatski preuzeti i instalirati sve umjesto vas potrebne datoteke i knjižnice i zadovoljit će sve ovisnosti koji će se zahtijevati.

  • 3. Kada pravi posao nije sve tako glatko, možda će u jednom slučaju sve proći dobro i faza pripreme izvora za montažuće proći bez grešaka, u drugim slučajevima, a to je vjerojatno većina, naići ćete na razne vrste grešaka, na primjer, nedostaje ovaj ili onaj paket za daljnju pripremu izvornog koda. U većini slučajeva napisan je naziv paketa koji nedostaje.

Paket koji nedostaje pokušavamo instalirati naredbom:

sudo apt-get instalacijski naziv_paketa

U slučaju da se paket ne pronađe prilikom izvršavanja gornje naredbe, vrlo često mi pomaže sljedeća kombinacija koja traži pakete koji nam nedostaju u cacheu:

apt-cache pretraživanje naziv_paketa

  • Nakon izvršavanja ove naredbe, možete i hoćete pronaći odgovarajući paket, često se događa da ne pronađete odgovarajući paket, ali postoji točna kopija paketa, ali s prefiks dev odnosno paket obrasca naziv_paketa-dev i možete ga koristiti za zadovoljenje ovisnosti.
  • 4. Nakon uspješnog završetka konfiguracije izvora za sklop, preporučljivo je instalirati paket checkinstallšto olakšava izradu aplikacijskog paketa za vašu distribuciju.
sudo apt-get install checkinstall

Instalirali ste paket, a zatim možete pokrenuti naredbu:

Provjerite instalaciju -D

  • Atribut -Dće stvoriti deb paket, atribut -Rće stvoriti rpm paket koji se koristi u distribucijama Fedora, RHEL, ASP Linux, ALT Linux, Mandriva, openSUSE, dodatno postoji i atribut -S koji će stvoriti paket koji koristi Slackware.

U mom slučaju, koristim Ubuntu i pokrenuo sam naredbu s -D atribut, tada će aplikacija biti sastavljena u gotov paket Deb formata, trebat će nam neki podaci za pojašnjenje, na primjer, kao što je dodavanje opisa paketu, budući da ga vi sastavljate i, sukladno tome, opis je potpuno čist i , takoreći, od vas se traži kratka referenca, za kakvu je ovo aplikaciju? U mom slučaju, kao što sam provjerio, sljedeća polja se također automatski popunjavaju:

1 - Sažetak: [ EOF ] 2 - Naziv: [ gimp ] 3 - Verzija: [ 2.9.2 ] 4 - Izdanje: [ 1 ] 5 - Licenca: [ GPL ] 6 - Grupa: [ checkinstall ] 7 - Arhitektura: [ i386 ] 8 - Lokacija izvora: [ gimp-2.9.2 ] 9 - Lokacija alternativnog izvora: 10 - Zahtjevi: 11 - Pruža: [ gimp ] 12 - Sukobi: 13 - Zamjenjuje:

  • Kao što možete vidjeti, prije izgradnje postoji provjera je li konfiguracija uspješno dovršena, postoje li nezadovoljne ovisnosti ili drugi sukobi, ako je sve u redu, tada će paket biti izgrađen bez problema.

Prethodno sam ga instalirao bez sklapanja paketa, izvršavajući naredbe:

Make make install

Ako želite ukloniti instalirana aplikacija, vrijedi izvršiti naredbu:

Napravi deinstalaciju

gornja naredba automatski će ukloniti one koje se odnose na aplikaciju koju ste instalirali i neće utjecati na ništa treće strane, preporučljivo je ne trčati kroz direktorije i izvršiti je iz istog direktorija aplikacije u kojem ste radili, odnosno pripremali konfiguracija, itd.

Iako je sve prošlo bez grešaka, ali cijeli proces je trajao jako dugo, nekih 20 minuta dok nisam instalirao gimp iz izvora, uspio sam otići skuhati kavu i još promatrati proces instalacije, sve traje dugo zbog činjenice da moram različite mape raspršuju izvorne datoteke aplikacije, svaka datoteka ima svoju svrhu i mora se nalaziti u određenom direktoriju, tako da nakon izvođenja make install tisuće izvornih datoteka instaliraju se u potrebne direktorije.

Ovako ide instalacija aplikacije iz izvora, da, nije sve tako jednostavno na prvi pogled, nisam rekao da će biti lako, ali ako probate, jako dobro razvija vaše razmišljanje i načine kako pronaći rješenja u određenoj situaciji, koja su čak i vrlo dobra.

To je vjerojatno sve, ako imate pitanja o gore navedenom materijalu ili ste pokušali instalirati i naišli ste na pogreške, pitajte u komentarima na materijal, zajedno ćemo potražiti rješenje.

Postojala je želja da se upoznate s razvojem za android. Preuzet Android Studio, raspakiran i izbrisan. Odlučio sam potražiti druge mogućnosti instalacije. U procesu traženja naišao sam na Ubuntu Make (u prošlosti poznat kao Ubuntu Developer Tools Center) iu ovoj kratkoj bilješci želim vam reći o tome.

Ubuntu Developer Tools Center bio je u vijestima s Ubuntu 14.10 (Utopic Unicorn), ali čini se da nije privukao veliku pažnju javnosti. Nedugo zatim projekt je preimenovan u Ubuntu Make, kako se do danas zove, narastao je do verzije 0.4. Razvio Didier Roche, softverski inženjer, Canonical. Također je vrijedna pažnje činjenica da je Ubuntu Make napisan u Pythonu 3.4.

Glavni cilj projekta je brzo i jednostavno instaliranje općih potreba programera u Ubuntu. I iako su "opće potrebe" još daleko (popis paketa dostupnih za instalaciju je još uvijek mali), sve je u redu s "brzo i jednostavno".

Na ovaj trenutak koristeći Ubuntu Make možete instalirati:

  • android studio
  • Zasjeniti
  • IntelliJ Idea Community Edition
  • Izdanje zajednice PyCharm
  • go-lang Google kompajler
  • Stencyl IDE za programere igara

Montaža

U ubuntu 15.04 ubuntu-make je dostupan odmah, korisnici verzija 14.04 i 14.10 se potiču da instaliraju iz ppa:

sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make sudo apt-get ažuriranje sudo apt-get instalacija ubuntu-make

Korištenje

Instalacija s ubuntu-makeom je vraški laka. Za Android instalacije Studio je dovoljno izvršiti u terminalu:

Umake android
Malo čekanja i evo rezultata:

Ikona u crtici i openjdk (ako Java nije bila u sustavu) uključeni. Nakon pokretanja, "studio" je izvukao sdk i ažurirao ga na verziju 1.0.2. Na telefonu je pokrenut "Hello world" i provjera zdravlja je završena.

Golang se instalira na sličan način:

Za PyCharm, Eclipse, Idea bit će dodan još jedan argument:

Umake ide pycharm

Da biste uklonili paket, samo dodajte argument "-r" u isti redak:

Umake ide pycharm -r

Mišljenje

Netko će reći: - “Ima li puno posla. Preuzmite arhivu, raspakirajte, ikona crtice i pogledajte. Je li potrebno ubuntu make? Slažem se, možda nema puno posla, ali meni je paket bio koristan za mene. Uštedio mi je vrijeme i oslobodio se rutine. Nadam se da će i vama biti od koristi.

Zaključak je da se ova naredba u obliku "make install" ili "sudo make install" ne može koristiti u modernim distribucijama.

Ali nakon svega, 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 i je li to uopće distribucija, možda ste se pridružili sekti i pušili čitajući LFS i sada odlučili sastaviti njihovu kreaciju pod svoj htonski sustav. A make install je univerzalan, iako često pogreš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 u većini *nix sustava tvrdo kodirana u kodu tijekom kompajliranja. Uz ovaj aspekt, glavna razlika između procesa instalacije u linux/freebsd/whatever i onog u Windowsima i MacOS-u je ta što program ne stavlja hrpu datoteka samo u zaseban direktorij u Program Files ili /Applications, već “ širi” po cijelom datotečnom sustavu. Knjižnice idu u lib, izvršne datoteke u bin, konfiguracije u itd., razni podaci u var i tako dalje. Ako ga iznenada trebate ažurirati, onda se sve ovo prvo mora nekako očistiti, jer. korištenjem nova verzija ostaci datoteka iz starog mogu dovesti do potpuno nepredvidivih posljedica, često loše. Vjerojatnost ovog događaja nije tako velika, ali trebate li ga na borbenom 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 vjerojatno hoće će prebrisati vaše promjene u konfiguracijama. make install radi točno ono što mu je rečeno - instalira datoteke na prava mjesta, zanemarujući činjenicu da je nešto već tamo. Nakon ovog procesa nemoguće je dobiti apsolutno nikakve informacije o tome što je i gdje stavljeno u 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 stabla izvora i pravila sklapanja za deinstalaciju je nekako čudno.

Kako se boriti?

Kako se paketi u distribucijama ponekad ažuriraju, kako bi riješili ovaj problem, osmislili su nešto poput upravitelja paketima. Kada ga koristite, instalacija ide otprilike ovako:
  1. uzima se posebno 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/uklanjanje/konfiguraciju itd.
  3. Izvođenje izravnih instalacijskih koraka
  4. Svi podaci o tome gdje je i što je dostavljeno dodaju se u bazu podataka upravitelja paketa.

U tom slučaju, prilikom ažuriranja, možete bezbolno ukloniti višak, 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 prebrisati datoteke jednog paketa kada instalira drugi. Općenito, puno korisni komadi on može učiniti.

Ako ste nesvjesno / lijeno kopirali make install iz uputa, onda u sustavu se pojavljuju datoteke za koje upravitelj paketa ne zna. Sa svim posljedicama, ako vam prethodno navedeno nije dovoljno.

Što uraditi?

Možete, naravno, konfigurirati stablo izvora tako da instalacija svega i svačega ide negdje u /opt/mycoolapp/, pa ga po potrebi ručno obrisati, ali tu može isplivati ​​puno neugodnih stvari, počevši od činjenice da 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 može očekivati ​​da, na primjer, ako stavi datoteku, recimo u $prefiks /share/xsessions/, tada će upravitelj prikaza to preuzeti. Da ne spominjem staze za pkgconfig i ostalo.

Dakle, morate preuzeti paket.

Nemam vremena baviti se time, bolje da ponovno napravim instalaciju, sve je jednostavno i jasno!

Smiri se, smiri se. On je vezan za naše noge. Sve nije tako strašno i teško 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 sam izgraditi i instalirati paket. Sve, 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 ako želite napraviti par promjena, ali je još uvijek lijeno baviti se normalnim procesom izgradnje paketa, onda možete ručno izgraditi paket. Dajem način da ga izgradim za sustave temeljene na Debianu, budući da sam s njima najviše upoznat. Nije ideološki ispravan, ali rezultat je potpuno ispravan paket bez uključivanja dodatnih entiteta. To se radi na sljedeći način.
Za početak, gradimo softver s --prefix=/usr i --exec-prefix=/usr parametrima koji su prethodno navedeni za configure ili autogen.sh.
Zatim instaliramo u privremeni direktorij. Pišemo:

Fakeroot make install DESTDIR=`pwd`/tempinstall
Nakon toga dobivamo cijeli skup datoteka u novostvorenom direktoriju. Usput, sada smo u fakeroot okruženju, tj. možete slobodno mijenjati vlasnika i prava pristupa datotekama, ali fizički ćete sami ostati vlasnik u sustavu. Softver unutar fakeroot sesije primit će promijenjene informacije, što će omogućiti pakiranje datoteka s ispravnim pravima u arhivu.
Zatim kreirajte DEBIAN direktorij u "korijenu paketa" i stavite u DEBIAN/conffiles popis svih datoteka koje bi trebale ući u /etc:

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 na izlazu dobivamo tempinstall.deb na koji možete postaviti dpkg -i i koji će biti ispravno instaliran, ažuriran ili obrisan.

"Ispravan" proces prethodnog pakiranja izvornog koda 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 uštedjet ćete veliki broj problema u budućnosti.

Nije neuobičajeno da se traženi paketi mogu pronaći samo u izvornom obliku, ovaj članak opisuje kako instalirati paket iz izvora.

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 (a možda i iz drugog razloga) koriste se pakeri - programi 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 datoteku prvo treba raspakirati. Na primjer, naredba

tar-xvf< some_app_name>.tar.gz

odmah raspakirati i raspakirati. Razlika između datoteka s ekstenzijama

.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 morate otići u rezultirajući direktorij, sve dolje opisane naredbe izvršavaju se u direktoriju s izvornim tekstovima paketa.

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

Izrada paketa

Za izradu programa u GNU/Linuxu koristi se (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 kompajlirali program, morate zasebno napisati staze za svaku distribuciju, gdje se nalaze biblioteke i datoteke zaglavlja. Programeri ne mogu proučavati svaku distribuciju i za svaku posebno kreirati Makefile. Stoga su osmislili konfiguratore koji “proučavaju” sustav, te u skladu sa stečenim znanjem kreiraju Makefile. Ali nisu stali na konfiguratoru i osmislili su konfiguratore konfiguratora ... tu su stali

Za izgradnju su nam potrebni prevoditelji: oni su zapisani 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 morate izgraditi konfigurator; kako izgraditi konfigurator je opisano u datoteci configure.in. Da biste sastavili konfigurator, morate pokrenuti

./bootstrap ./autogen.sh

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

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 trebate pokrenuti konfigurator kako biste provjerili dostupnost svih ovisnosti, kao i instalirati dodatne opcije izgradnje (ako je moguće) i pregledati rezultat instalacije (opcionalno - možda neće biti)

./ 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. Za Ubuntu obično

--prefix=/usr --prefix=/usr/local

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

napraviti

Dovoljno privilegija za sastavljanje redoviti korisnik. Kraj montaže može se smatrati trenutkom kada se naredbe u konzoli prestanu "kaotično" izvršavati i neće biti riječi greška. Sada je sve sastavljeno i spremno za instalaciju.

Montaža

Trud utrošen na Ispravna instalacija kasnije će se više nego isplatiti u slučaju uklanjanja ili ažuriranja instaliranog softvera.

Ispravna instalacija (Opcija br. 1)

Instalacija pomoću uslužnog programa checkinstall. Za instalaciju, pokrenite

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.

Da biste stvorili i instalirali deb paket, morate pokrenuti

sudo checkinstall

Ispravna instalacija (Opcija br. 2)

Brza izrada deb-paketa "ručno".

Glavna razlika od prethodna metoda je da u ovom slučaju paket kreirate ručno i pratite sve promjene koje napravite. Ova metoda je također prikladna za vas 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 stavimo u DEBIAN/conffiles popis svih datoteka koje bi trebale ući u /etc:

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

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

Paket: naziv_paketa Verzija: 1.2.3 Arhitektura: amd64/i386/armel/all Održavač: Možete unijeti svoje ime, možete isprazniti, ali ako ostane prazno, onda će dpkg psovati Ovisi: Ovdje možete unijeti popis paketa odvojenih s zarezima. Prioritet: izborno Opis: Također morate unijeti nešto kako se ne bi izbacilo upozorenje

    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

    Dobivamo izlaz tempinstall.deb, koji instaliramo

sudo dpkg -i tempinstall.deb

Instalacija (opcija br. 3)

Pogrešna 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 - instalira datoteke na prava mjesta, zanemarujući činjenicu da je nešto već tamo. Nakon ovog procesa nemoguće je dobiti apsolutno nikakve informacije o tome što je i gdje stavljeno u 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 zadržati neraspakirano stablo izvora i pravila izgradnje za deinstalaciju.

Za instalaciju morate se pokrenuti

sudo make install

Da biste uklonili paket instaliran na ovaj način, 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 nedostaje ova ili ona biblioteka. Naziv biblioteke koju prijavljuje ne odgovara uvijek nazivu paketa u Ubuntuu. Iz vlastitog iskustva mogu vam savjetovati da potražite željeni paket u Synapticu, isključujući prefiks lib, ako postoji nekoliko paketa koji se razlikuju po prefiksu -dev u nazivu, tada trebate instalirati paket -dev (obično to povlači paket koji nije programer). Također možete pretraživati ​​koristeći http://packages.ubuntu.com/ unosom naziva biblioteke u pretraživanje sadržaja paketa, slično, ako se pronađu dev i non-dev, oba su potrebna. Ili jednostavno potražite na Googleu.

Potreban softver

Paketi sa slovima mm na kraju opisa su paketi za C++ programe. Popis je za bmpx, ali će raditi za gotovo svaki GTK2/Gnome program. Dakle, ako ne možete kompajlirati, pogledajte ovaj popis i provjerite š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
Obavijest o pokretanjulibstartup-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