Očaravajuća magija konfiguriranja, izrade i izrade instalacije. Instaliranje programa na Linux (.tar, .gz, .bz, RPM i DEB) Potreban softver
Č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
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 govoreći, ovo je kopija datotečnog sustava - direktorija i datoteka sa svojim atributima i pravima pristupa, smještenih 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.gzodmah će se raspakirati i raspakirati. Razlika između datoteka i ekstenzija
samo što su korišteni različiti pakeri, program katran automatski određuje način kompresije i dodatne opcije nije potrebno u ovom slučaju.
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.shAko u arhivi nema takvih skripti, možete redom pokrenuti sljedeće naredbe:
aclocal autoheader automake --gnu --add-missing --copy --foreign autoconf -f -WallSve 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)
./ konfiguriratiKonfigurator ć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/ lokalnoBEZ kosa crta na kraju! Sada možete započeti proces izgradnje samog programa pomoću naredbe
napravitiRedovne korisničke privilegije dovoljne su za izgradnju. 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 checkinstallMinus 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 checkinstallIspravna instalacija (Opcija br. 2)
Brzo ručno izradite deb paket.
Glavna razlika u odnosu na prethodni način 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:
Kreirajmo DEBIAN direktorij u "korijenu paketa" i dodamo popis svih datoteka koje trebaju ići u /etc u DEBIAN/conffiles:
Zatim kreiramo datoteku DEBIAN/control sa sljedećim sadržajem:
Ako je potrebno, tamo također možete kreirati preinst, postinst, prerm i postrm skripte.
Kreiramo deb paket za koji izvršavamo:
Izlaz je tempinstall.deb, koji mi instaliramo
Instalacija (opcija br. 3)
Neispravna instalacija
Nedostatak ove metode je da ako instalirate izravno putem napraviti instalaciju, onda najvjerojatnije nećete moći normalno ukloniti ili ažurirati paket. Štoviše, instalacija nova verzija preko starog će najvjerojatnije 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 installDa biste uklonili paket instaliran pomoću ove metode, morate ga izvršiti u korijenskom direktoriju izvora programa (gdje ste pokrenuli make install).
sudo make uninstallGreš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.
Neophodno 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: | |
---|---|---|
x | libx11-dev | libx11-6 |
GlibMM | libglibmm-2.4-dev | libglibmm-2.4-1c2a |
GTK+ | libgtk2.0-dev,gtk-doc-alati | libgtk2.0-0 |
GTKMM | libgtkmm-2.4-dev | libgtkmm-2.4-1c2a |
Proplanak | libglade2-dev | libglade2-0 |
GladeMM | libglademm-2.4-dev | libglademm-2.4-1c2a |
XML | libxml2-dev | libxml2 |
XML++ | libxml++2.6-dev | libxml++2.6c2a |
DBus | libdbus-1-dev,libdbus-glib-1-dev | libdbus-1-2,libdbus-glib-1-2 |
Alsa | libasound2-dev | libasound2 |
HAL | libhal-dev,libhal-storage-dev | libhal1,libhal-skladištenje1 |
Gamin | libgamin-dev | libgamin0 |
Neon | libneon25-dev | libneon25 |
TagLib | libtagc0-dev | libtagc0 |
Pokretanje-Obavijesti | libstartup-notification0-dev | libstartup-obavijest0 |
pojačati | libboost-dev,libboost-datotečni sustav-dev | libboost-datotečni sustav1.33.1 |
MusicBrainz | libmusicbrainz4-dev | libmusicbrainz4c2a |
GStreamer | libgstreamer0.10-dev,libgstreamer-plugins-base0.10-dev | libgstreamer0.10-0,libgstreamer-plugins-base0.10-0 |
Postojala je želja da se upoznamo s razvojem za Android. Skinuo sam Android Studio, raspakirao ga i izbrisao. Odlučio sam potražiti druge mogućnosti instalacije. Dok sam tražio, 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 bljeskao je u vijestima zajedno s Ubuntu 14.10 (Utopic Unicorn), ali, čini mi se, nije privukao široku pozornost. Nedugo kasnije, projekt je preimenovan u Ubuntu Make, kako se do danas zove, narasvši do verzije 0.4. Razvoj provodi 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 uobičajenih potreba programera u Ubuntu. I iako je još daleko od "općih potreba" (popis paketa dostupnih za instalaciju je još uvijek mali), s "brzim i jednostavnim" sve je u redu.
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 moraju instalirati 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 nevjerojatno je jednostavna. Za Android instalacije Studio samo pokrenite 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 završen je test funkcionalnosti.
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 puno posla. Skinite arhivu, raspakirajte je, provjerite ikonu u crtici i provjerite u Javi. Trebate li 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.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.
- Bilješka
- Stavljanje flastera
- Konfiguracija kernela
- Kompajliranje kernela
- Instaliranje novog kernela
- Problemi
- Linkovi
Bilješka
Bit će opisane dvije metode sastavljanja kernela. Prva opcija bit će izgradnja .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žuriranjeInstalirajmo pakete koji su nam potrebni:
# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essentialPreuzmite 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.bz2Raspakirajmo 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/linuxStavljanje 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 -p1Prva 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 -p1Konfiguracija 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 menuconfignakon čega će se učitati grafički konfiguracijski izbornik 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_headersNakon --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 0Instaliranje novog kernela
Kada se izgradnja kernela uspješno dovrši, dva .deb paketa bit će kreirana u /usr/src direktoriju:
# cd /usr/src # ls -llinux-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 sustavaDruga metoda. "tradicionalan" način
Provodimo sve gore opisane točke PRIJE točke “Kernel kompilacija”.
# make all # make modules_install # make installKao 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-pkgDvije .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.debKernel se instalira naredbom
# dpkg -i linux-2.6.27.10_2.6.27.10-1_amd64.debStare jezgre mogu se ukloniti, na primjer, iz synaptic"a
Sljedeći koraci
Kernel je kompajliran i instaliran, ali sada morate stvoriti RAM disk (bez kojeg se kernel jednostavno neće pokrenuti) i trebate ažurirati GRUB boot loader. Da biste to učinili, učinite sljedeće:
# depmod 2.6.23.1 # apt-get install yairdInstalirajte RAM disk:
# mkinitrd.yaird -o /boot/initrd.img-2.6.23.1 2.6.23.1Ažurirajte bootloader jednostavno i bezbolno:
# update-grubTo je to, bootloader i novi kernel su spremni, preostaje samo ponovno podizanje sustava:
# ponovno podizanje sustavaProblemi
Ako se nakon ponovnog pokretanja nova jezgra koju ste odabrali ne učita, ponovno pokrenite sustav i odaberite prethodnu jezgru te možete ponovno pokušati napraviti cijeli proces za izgradnju jezgre koja radi. U tom slučaju ne zaboravite izbrisati retke neradnog kernela u /boot/grub/menu.lst.
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. Distribucije Fedora, Mandriva, Red Hat i Suse koriste standardnu Linux RPM instalaciju koju je razvio Red Hat. 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
Zaključak je da se ova naredba u obliku "make install" ili "sudo make install" ne može koristiti u 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. 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” sama po sebi 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... kada koristite novu verziju, zaostale datoteke iz stare 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, kako bi riješili ovaj problem, smislili su nešto poput upravitelj paketa. Kada ga koristite, instalacija ide otprilike ovako:- uzima se na određeni način formirana arhiva
- 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.
- Izravni koraci instalacije u tijeku
- 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, može učiniti mnogo korisnih stvari.
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. Dajem način za izgradnju za sustave Debian baza podataka, jer ih najbolje poznajem. 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 datoteku DEBIAN/control 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” proces preliminarne izrade paketa 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 spasit ćete se od velikog broja problema u budućnosti.