Okouzlující kouzlo konfigurace, vytvoření a provedení instalace. Instalace programů v systému Linux (.tar, .gz, .bz, RPM a DEB) Požadovaný software

Potřebné balíčky lze často nalézt pouze ve zdrojové podobě; tento článek popisuje způsob instalace balíčku ze zdrojového kódu.

Rozbalení

Programy jsou obvykle distribuovány v zabalených archivech, jedná se o soubory s příponami

.tar.gz (někdy .tgz) .tar.bz2

Musíte pochopit rozdíl mezi archivátorem a baličem.

Program slouží k archivaci adresářů a souborů dehet; výsledkem jeho práce je soubor s příponou .dehet. Zhruba řečeno se jedná o kopii souborového systému - adresáře a soubory s jejich atributy a přístupovými právy, umístěné v jednom souboru.

Tento soubor bude o něco větší než celková velikost souborů, které byly archivovány. Proto (nebo možná z jiného důvodu) používají packery - programy, které umožňují zmenšit velikost souboru bez ztráty dat.

Program dehet lze rozbalit, takže není třeba volat gunzip, nebo můžete jednoduše říci programu dehetže soubor musí být nejprve rozbalen. Například příkaz

tar -xvf< some_app_name>.tar.gz

okamžitě rozbalí a rozbalí. Rozdíl mezi soubory a příponami

.tar.gz

.tar.bz2

pouze to, že byly použity různé packery, program dehet určuje metodu komprese automaticky a další možnosti není v tomto případě vyžadováno.

Po rozbalení je potřeba přejít do výsledného adresáře, všechny níže popsané příkazy se provádějí v adresáři se zdrojovým kódem balíčku.

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

Sestavení balíčku

K vytváření programů v GNU/Linuxu používáte (většinou) program udělat, ze kterého se spouští instrukce Makefile, ale protože existuje mnoho distribucí GNU/Linux a všechny jsou různé, abyste mohli program sestavit, musíte pro každou distribuci samostatně zadat cesty, kde jsou umístěny knihovny a hlavičkové soubory. Programátoři nemohou studovat každou distribuci a vytvářet pro každou zvlášť Makefile. Proto přišli s konfigurátory, které systém „studují“ a v souladu se získanými znalostmi tvoří Makefile. Ale nezůstali u konfigurátoru a přišli s konfigurátory konfigurátorů...tam skončili

K sestavení potřebujeme kompilátory: jsou specifikovány v závislostech balíčku stavět-nezbytné, takže ho stačí nainstalovat se všemi závislostmi. Stále potřeba autokonf A automobilka.

Chcete-li tedy vytvořit něco ze zdroje, musíte nejprve vytvořit konfigurátor; jak sestavit konfigurátor je popsáno v souboru configure.in. Chcete-li sestavit konfigurátor, musíte jej spustit

./ bootstrap ./ autogen.sh

Pokud v archivu žádné takové skripty nejsou, můžete postupně spustit následující příkazy:

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

Všechny tyto příkazy používají soubor konfigurovat.v. Po provedení těchto příkazů se vytvoří soubor konfigurovat. Poté musíte spustit konfigurátor a zkontrolovat přítomnost všech závislostí a také nainstalovat další možnosti sestavení (pokud je to možné) a zobrazit výsledek instalace (volitelné - nemusí být přítomno)

./ konfigurovat

Konfigurátor sestaví Makefile na základě získaných znalostí a souboru makefile.am. Konfigurátoru můžete předat možnosti uvedené ve zdrojích programu, které umožňují povolit/zakázat určité funkce programu; obvykle se o nich dozvíte příkazem

./configure --help

K dispozici je také sada standardních možností, jako

Předpona=

Což určuje, který adresář se má použít pro instalaci. Obvykle pro Ubuntu

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

BEZ lomítko na konci! Nyní můžete příkazem zahájit proces vytváření samotného programu

udělat

K sestavení stačí běžná uživatelská oprávnění. Za konec sestavení lze považovat okamžik, kdy se příkazy v konzole přestanou provádět „náhodně“ a nepadne žádné slovo chyba. Nyní je vše zkompilováno a připraveno k instalaci.

Instalace

Úsilí vynaložené na Správná instalace v budoucnu budou více než platit za sebe v případě odinstalace nebo aktualizace nainstalovaného softwaru.

Správná instalace (Možnost č. 1)

Instalace pomocí utility checkinstall. Instalovat:

sudo apt-get install checkinstall

Mínus tato metoda: checkinstall nerozumí všem zdrojům, protože autor programu může psát speciální instalační skripty a checkinstall nebude jim rozumět.

Chcete-li vytvořit a nainstalovat balíček deb, musíte jej spustit

sudo checkinstall

Správná instalace (Možnost č. 2)

Rychle ručně vytvořte balíček deb.

Hlavní rozdíl oproti předchozí metodě je v tom, že v tomto případě vytvoříte balíček ručně a budete sledovat všechny provedené změny. Tato metoda vám bude také vyhovovat, pokud zdroje nepodporují sestavení balíčku checkinstall.

    Instalujeme do dočasného adresáře, kde získáme celou sadu nainstalovaných souborů:

fakeroot make install DESTDIR=`pwd`/tempinstall

    Vytvoříme adresář DEBIAN v „kořenu balíčku“ a přidáme seznam všech souborů, které by měly jít do /etc do DEBIAN/conffiles:

cd tempinstall mkdir DEBIAN find atd | sed "s/^/\//" > DEBIAN/ conffiles

    Poté vytvoříme soubor DEBIAN/control s následujícím obsahem:

Balíček: package_name Verze: 1.2.3 Architektura: amd64/i386/armel/all Správce: Můžete zadat své jméno, můžete odpadky, ale pokud pole necháte prázdné, dpkg bude přísahat Závisí: Zde můžete zadat seznam balíčků oddělené čárkami. Priorita: volitelné Popis: Musíte také něco zadat, aby se nezobrazovala žádná varování

    V případě potřeby tam můžete vytvořit i skripty preinst, postinst, prerm a postrm.

    Vytvoříme deb balíček, pro který provedeme:

dpkg -b tempinstall

    Výstupem je tempinstall.deb, který nainstalujeme

sudo dpkg -i tempinstall.deb

Instalace (možnost č. 3)

Nesprávná instalace

Nevýhodou této metody je, že pokud instalujete přímo přes provést instalaci, pak s největší pravděpodobností nebudete moci balíček normálně odebrat nebo aktualizovat. Navíc instalace nová verze přes starou s největší pravděpodobností přepíše vaše změny v konfiguracích. make install dělá přesně to, co má dělat – instaluje soubory na správná místa a ignoruje fakt, že tam něco už je. Po tomto procesu je absolutně nemožné získat jakékoliv informace o tom, co bylo kde umístěno a ve stravitelné podobě. Někdy samozřejmě Makefile podporuje akci odinstalace, ale to není tak běžné a není pravda, že funguje správně. Kromě toho budete muset uložit rozbalený zdrojový strom a vytvořit pravidla pro odinstalaci.

Chcete-li nainstalovat, musíte udělat

sudo make install

Chcete-li odebrat balíček nainstalovaný touto metodou, musíte jej spustit v kořenovém adresáři zdrojů programu (kde jste spustili make install).

sudo make odinstalovat

Chyby

Často ve fázi konfigurace konfigurátor hlásí, že konkrétní knihovna chybí. Název knihovny, který hlásí, se nemusí vždy shodovat s názvem balíčku v Ubuntu. Z vlastní zkušenosti vám mohu doporučit vyhledat požadovaný balíček v Synapticu s výjimkou předpony lib. Pokud najdete několik balíčků, které se v názvu liší předponou -dev, musíte nainstalovat balíček -dev (obvykle je to zahrnuje také balíček, který není pro vývojáře). Můžete také hledat pomocí http://packages.ubuntu.com/ zadáním názvu knihovny do vyhledávání obsahu balíčku, podobně, pokud najdete dev a non-dev, potřebujete obojí. Nebo stačí hledat na Googlu.

Nezbytné software

Balíčky s mm na konci popisu jsou balíčky pro programy C++. Seznam pro bmpx, ale vhodný pro téměř jakýkoli program GTK2/Gnome. Pokud jej tedy nemůžete sestavit, podívejte se na tento seznam a porovnejte jej s tím, co jste nainstalovali.

Kompilovat:Doba běhu:
Xlibx11-devlibx11-6
GlibMMlibglibmm-2.4-devlibglibmm-2.4-1c2a
GTK+libgtk2.0-dev,gtk-doc-toolslibgtk2.0-0
GTKMMlibgtkmm-2.4-devlibgtkmm-2.4-1c2a
Gladelibglade2-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-storage1
Gaminlibgamin-devlibgamin0
Neonlibneon25-devlibneon25
TagLiblibtagc0-devlibtagc0
Start-Notifylibstartup-notification0-devlibstartup-notification0
Posílitlibboost-dev,libboost-filesystem-devlibboost-filesystem1.33.1
MusicBrainzlibmusicbrainz4-devlibmusicbrainz4c2a
GSstreamerlibgstreamer0.10-dev,libgstreamer-plugins-base0.10-devlibgstreamer0.10-0, libgstreamer-plugins-base0.10-0

Objevila se touha seznámit se s vývojem pro Android. Stáhl jsem si Android Studio, rozbalil a smazal. Rozhodl jsem se hledat jiné možnosti instalace. Při hledání jsem narazil na Ubuntu Make (v minulosti aka Ubuntu Developer Tools Center) a v této krátké poznámce vám o něm chci říct.

Centrum nástrojů pro vývojáře Ubuntu se objevilo ve zprávách spolu s Ubuntu 14.10 (Utopic Unicorn), ale zdá se mi, že nevzbudilo širokou pozornost. Nedlouho poté byl projekt přejmenován na Ubuntu Make, jak se mu říká dodnes, když se rozrostl na verzi 0.4. Vývoj provádí Didier Roche, softwarový inženýr, Canonical. Pozoruhodný je také fakt, že Ubuntu Make je napsán v Pythonu 3.4.

Hlavním cílem projektu je rychlá a snadná instalace běžných vývojářských potřeb v Ubuntu. A ačkoli je to stále daleko od „obecných potřeb“ (seznam balíčků dostupných k instalaci je stále malý), s „rychlým a jednoduchým“ je vše v pořádku.

Na tento moment Pomocí Ubuntu Make můžete nainstalovat:

  • Android Studio
  • Zatmění
  • IntelliJ Idea Community Edition
  • PyCharm Community Edition
  • go-lang překladač Google
  • Stencyl game developer IDE

Instalace

V ubuntu 15.04 je ubuntu-make k dispozici ihned po vybalení, uživatelé verzí 14.04 a 14.10 jsou požádáni o instalaci z ppa:

Sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make sudo apt-get update sudo apt-get install ubuntu-make

Používání

Instalace pomocí ubuntu-make je neuvěřitelně jednoduchá. Pro Instalace systému Android Studio stačí spustit v terminálu:

Umake android
Ještě chvíli počkejte a tady je výsledek:

Ikona v pomlčce a openjdk (pokud Java v systému nebyla). Po spuštění „studio“ stáhlo sdk a aktualizovalo se na verzi 1.0.2. Na telefonu bylo spuštěno „Ahoj světe“ a test funkčnosti byl dokončen.

Golang se instaluje podobně:

Pro PyCharm, Eclipse, Idea bude přidán ještě jeden argument:

Umake ide pycharm

Chcete-li balíček odstranit, stačí přidat argument "-r" do stejného řádku:

Umake ide pycharm -r

Názor

Někdo řekne: „Je toho hodně, co dělat. Stáhněte si archiv, rozbalte jej, zkontrolujte ikonu v pomlčce a zkontrolujte ji v Javě. Potřebujete vytvořit ubuntu? Souhlasím, možná toho není moc co dělat, ale balíček jsem pro sebe považoval za užitečný. Ušetřil mi čas a zbavil se rutiny. Doufám, že to bude užitečné i pro vás.

Materiál od Bryansk Linux Users Group a www.rm.pp.ru

Každá distribuce má svá specifika pro sestavení jádra a tento článek je zaměřen konkrétně na to, jak to udělat v Debian Etch. Odhaluje také otázku, jak aplikovat konkrétní záplatu na jádro, když je potřeba podpora pro určitou funkcionalitu nebo nové vybavení ve vašem systému. Článek je určen především pro trénovanější uživatele a není zaručeno, že tento způsob bude fungovat jak má a veškeré popsané úkony a zodpovědnost leží na vás.

  1. Poznámka
  2. Nanášení záplat
  3. Konfigurace jádra
  4. Kompilace jádra
  5. Instalace nového jádra
  6. Problémy
  7. Odkazy

Poznámka

Budou popsány dva způsoby sestavení jádra. První možností bude sestavení .deb balíčků, které lze nainstalovat na váš nebo jiný systém. Druhý způsob je tzv. „tradiční“ způsob.

Metoda jedna. Zabudování jádra do balíčků .deb

Instalace potřebných balíčků pro kompilaci jádra

Nejprve aktualizujme seznamy balíčků:

# aktualizace apt-get

Nainstalujme balíčky, které potřebujeme:

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

Stáhněte si zdrojové kódy jádra

Přejděte do adresáře /usr/src, přejděte na www.kernel.org a vyberte požadovanou verzi jádra. V tomto případě bude zvažována verze linux-2.6.23.1.tar.bz2. Stažení:

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

Rozbalíme zdroje a vytvoříme symbolický odkaz:

# tar xjf linux-2.6.23.1.tar.bz2 # rm linux (odstranit předchozí symbolický odkaz) # ln -s linux-2.6.23.1 linux # cd /usr/src/linux

Nanášení záplat

Nedělejte to volitelně nebo zbytečně!

Někdy jsou vyžadovány ovladače nebo nástroje, které stávající jádro nepodporuje, například virtualizační technologie nebo jiná specifika, která nejsou v aktuální verzi. V každém případě to lze napravit aplikací takzvaných záplat (pokud existují).

Předpokládejme tedy, že jste si stáhli požadovaný patch (například jej nazvěme patch.bz2) do /usr/src. Aplikujme stažený patch na naše zdroje (musíte být stále v adresáři /usr/src/linux):

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

První příkaz je pouze testovací a na zdroje nebudou aplikovány žádné změny. Pokud po prvním příkazu nebyly vyvolány žádné chyby, můžete spustit druhý příkaz a použít opravu. Za žádných okolností neprovádějte druhý příkaz, pokud se po prvním vygenerovaly chyby!

Tímto způsobem můžete aplikovat záplaty na zdroje jádra. Například existují některé funkce, které jsou dostupné pouze v jádře 2.6.23.8 a zdrojový kód neobsahoval potřebnou funkcionalitu, ale byl vydán patch-2.6.23.8.bz2. Tuto opravu můžete použít na zdroje jádra 2.6.23, ale ne na 2.6.23.1 nebo 2.6.23.3 atd. Více si o tom můžete přečíst na:

Předpony (prepatche) – ekvivalentní k vydáním alfa; opravy musí být aplikovány na zdroje úplné předchozí verze s 3místnou verzí (například opravu 2.6.12-rc4 lze aplikovat na zdroje verze 2.6.11, ale ne na verzi 2.6.11.10.)

To znamená, že pokud chceme sestavit jádro 2.6.23.8, musíme si stáhnout zdrojové kódy verze 2.6.23 (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23 .tar.gz) aplikovaný druhým způsobem „tradičním“ způsobem!

Použijte patch-2.6.23.8.bz2 na jádro 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 | patch -p1

Konfigurace jádra

Je dobré použít existující konfigurační soubor pracovní jádro a pro nové. Proto zkopírujeme stávající konfiguraci do /usr/src/linux:

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

poté se načte grafické menu konfigurace jádra. Vyberte položku „Načíst alternativní konfigurační soubor“ v nabídce konfigurátoru a klikněte na „OK“. Poté (pokud je to nutné) proveďte potřebné změny v konfiguraci jádra procházením nabídky (podrobnosti o konfiguraci jádra naleznete na www.google.com). Když skončíte a kliknete na „Konec“, zobrazí se otázka „Přejete si uložit novou konfiguraci jádra?“, odpovězte kladně „Ano“.

Kompilace jádra

Sestavení jádra se provádí pouze dvěma příkazy:

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

Za --append-to-version= můžete napsat libovolné jméno, ale musí začínat znaménkem mínus (-) a nesmí obsahovat mezery.

Proces kompilace a sestavování balíčků .deb může trvat poměrně dlouho. Vše bude záviset na konfiguraci jádra a možnostech vašeho procesoru.

Řešení problému s vytvořením initrd.img

Nedávno se v Debianu objevila chyba, při které se po instalaci balíčků s jádry sestavenými zde popsaným způsobem nevytvoří odpovídající soubor /boot/initrd.img. Chcete-li to opravit pro již nainstalované jádro, budete muset vytvořit initrd.img ručně:

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

Chcete-li vyřešit problém „pro budoucnost“, zakomentujte, jak je znázorněno, druhý z řádků citovaných níže v souboru /etc/kernel/postinst.d/initramfs-tools:

# kernel-package předává další argument; hack, aby se nespustil pod kernel-package #[ -z "$2" ] || výstup 0

Instalace nového jádra

Po úspěšném dokončení sestavení jádra se v adresáři /usr/src vytvoří dva balíčky .deb:

# cd /usr/src # ls -l

linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb – samotné jádro a linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind.380.Custom_0ib header jádra potřebná k sestavení dalších modulů (například při sestavování modulů Ovladače nVidia). Nainstalujte je:

# 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.03.06.

(Tyto balíčky lze nyní nainstalovat na jiný systém a nebude nutné je znovu sestavovat.)

To je vše, instalace je dokončena, automaticky se provede nabídka bootloaderu, instalace nového RAM disku a jádra. Zbývá pouze restartovat:

# restart

Metoda dva. „tradičním“ způsobem

Všechny výše popsané body provedeme PŘED bodem „Kompilace jádra“.

# make all # make modules_install # make install

Jako obvykle může sestavení trvat dlouho v závislosti na konfiguraci jádra a možnostech procesoru.

Hlavní nevýhodou této metody je, že pokud často aktualizujete jádra, tak se jich po nějaké době nahromadí velké množství a ty nepoužívané budete chtít odstranit. Abyste to usnadnili, můžete jádro a další soubory, které se instalují do systému, sestavit pomocí příkazů „make modules_install“ a „make install“ do deb balíčku (nebo spíše dvou od jádra 2.6.27) podobného první metoda, ale my použijeme Zde jsou skripty samotného jádra:

# make all # make deb-pkg

V adresáři o úroveň výše nad zdrojovým adresářem se objeví dva soubory .deb. Sestavil jsem jádro v adresáři /usr/src/linux-2.6.27.10 a soubory se objevily v adresáři /usr/src/

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

Jádro se nainstaluje pomocí příkazu

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

Stará jádra lze odstranit například ze synaptického"a

Další kroky

Jádro bylo zkompilováno a nainstalováno, ale nyní je potřeba vytvořit RAM disk (bez kterého jádro prostě nenabootuje) a je potřeba aktualizovat zavaděč GRUB. Chcete-li to provést, postupujte takto:

# depmod 2.6.23.1 # apt-get install yaird

Nainstalujte RAM disk:

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

Pojďme snadno a bezbolestně aktualizovat bootloader:

# update-grub

To je vše, bootloader a nové jádro jsou připraveny, zbývá pouze restartovat:

# restart

Problémy

Pokud se po restartu nenačte nové jádro, které jste vybrali, restartujte a vyberte své předchozí jádro a můžete zkusit celý proces zopakovat a vytvořit funkční jádro. V tomto případě nezapomeňte smazat řádky nefunkčního jádra v /boot/grub/menu.lst.

A také je třeba nainstalovat další systémy doplňkové programy. V operační systémy Ve Windows je vše velmi jednoduché, zpravidla existuje instalační program s názvem setup.exe, který pomáhá nainstalovat software. Ale v Linuxu jsou věci trochu jiné. Jak nainstalovat programy na Linux? Nyní se podívejme na tuto otázku.

Linux má několik typů instalačních balíčků a každá distribuce má svůj vlastní formát balíčku. Distribuce Fedora, Mandriva, Red Hat a Suse používají standardní instalaci Linux RPM vyvinutou společností Red Hat. Soubor balíčku RPM je obvykle pojmenován název_programu-verze.rpm.

Dalším velmi oblíbeným formátem je DEB. Používá se v Debianu, Ubuntu, Knoppix a Mepis. Má jméno název_programu-verze.deb.

A přistoupili jsme k archivu. Obvykle se jedná o přípony .tar , .tar.gz , .tgz. Měly by být rozbaleny a poté nainstalovány/zkompilovány.

Instalaci programu musíte provést jako superuživatel.

Rychlá navigace

Instalace programů na Debian, Ubuntu

Existuje mnoho nástrojů pro práci s balíčky DEB, ale nejčastěji používaný je apt-get, který je součástí standardní sady nástrojů. Chcete-li nainstalovat aplikaci, zadejte příkaz:

apt-get instalační název_balíčku

Pro odstranění:

apt-get remove package_name

APT ukládá lokální databázi všech balíčků dostupných k instalaci a odkazy na místa, kde je lze získat. Tuto databázi je třeba čas od času aktualizovat pomocí příkazu:

aktualizace apt-get

Chcete-li aktualizovat zastaralé balíčky (programy) v počítači, zadejte následující příkazy:

aktualizace apt-get; apt-get upgrade

Instalace programů na Fedora, Red Hat

Nástroj podobný APT je yum. Chcete-li stáhnout a nainstalovat balíček z nakonfigurovaného úložiště, napište příkaz:

yum instalační název_balíčku

yum odstranit název_balíčku

Místní databáze yum se neukládá, takže není třeba ji aktualizovat. Chcete-li nainstalovat aktualizace, použijte příkaz:

mňam aktualizace

Vyberte něco konkrétního k aktualizaci:

yum update package_name

Instalace programů v Mandrivě

Mandriva má vlastní sadu nástrojů pro práci s balíčky, nazvanou urpmi. Pro instalaci:

urpmi název_balíčku

Vymazat:

urpme název_balíčku

Aktualizujte místní databázi seznamem balíčků:

urpmi. aktualizace -a

Instalace aktualizací:

urpmi --automatický výběr

Instalace programů z archivů (tarballů)

Pro archivy komprimované pomocí GZIP (gz, gz2 atd.) uděláme toto:

tar -xvz f název souboru

U archivů komprimovaných pomocí BZIP (bz, bz2 atd.) je to trochu jiné:

tar -xvjf název souboru

Příkazy Tar:

  • x – extrahovat soubory z archivu;
  • v – podrobné zobrazení informací na obrazovce;
  • f – Požadovaná možnost. Pokud není specifikováno, Tar se pokusí použít pásku místo souboru;
  • z – archiv procesu komprimovaný pomocí gzip;
  • j – zpracovat archiv komprimovaný pomocí bzip.

Po provedení příkazu se vytvoří složka s názvem podobným názvu balíčku. Poté musíte tuto vytvořenou složku otevřít příkazem:

cd název_složky

Dále si v rozbaleném archivu přečtěte pokyny v souboru README, pokud existuje. V každém případě, pokud je program zkompilován jako spustitelný soubor, pak bude balíček obsahovat soubor .sh, obvykle nazvaný install.sh

Pointa je, že tento příkaz ve formě „make install“ nebo „sudo make install“ nelze použít v moderních distribucích.

Ale autoři programů v instalačních manuálech píší, že je potřeba tento příkaz použít, řeknete si. Ano, píšou. Ale to znamená pouze to, že nevědí, jakou distribuci máte, nebo zda je to vůbec distribuce, možná jste se připojili k sektě a kouřili čtení LFS a nyní se rozhodli zkompilovat jejich výtvor pro váš chtonický systém. A make install je univerzální, i když často nesprávný způsob, jak toho dosáhnout.

Lyrická odbočka

Jak víte, pro normální provoz musí být většina softwaru nejen zkompilována, ale také správně nainstalována do systému. Programy očekávají, že najdou soubory, které potřebují, na určitých místech a tato místa na většině systémů *nix jsou pevně zakódována do kódu v době kompilace. Kromě tohoto aspektu je hlavním rozdílem mezi instalačním procesem v linux/freebsd/whatever a ve Windows a MacOS to, že program pouze neuloží spoustu souborů do samostatného adresáře v Program Files nebo /Applications, ale „ se šíří“ v celém textu souborový systém. Knihovny jdou do lib, spustitelné soubory v bin, configs v atd., různé druhy dat ve var a tak dále. Pokud to najednou potřebujete aktualizovat, tak se to všechno musí nejdřív nějak vyčistit, protože... při použití nové verze mohou zbylé soubory ze staré vést ke zcela nepředvídatelným následkům, často není dobré. Pravděpodobnost této události není tak vysoká, ale potřebujete ji na produkčním serveru?

No a co?

Takže pokud jste provedli instalaci přímo pomocí make install, pak je normální odebrat nebo aktualizovat software, s největší pravděpodobností nemůžeš. Navíc instalace nové verze přes starou s největší pravděpodobností bude přepíše vaše změny v konfiguracích. make install dělá přesně to, co má dělat – instaluje soubory na správná místa a ignoruje fakt, že tam něco už je. Po tomto procesu je absolutně nemožné získat jakékoliv informace o tom, co bylo kde umístěno a ve stravitelné podobě. Někdy samozřejmě Makefile podporuje akci odinstalace, ale to není tak běžné a není pravda, že funguje správně. Navíc ukládat rozbalený zdrojový strom a pravidla sestavení pro odinstalaci je nějak zvláštní.

jak bojovat?

Protože balíčky v distribucích mají tendenci být někdy aktualizovány, k vyřešení tohoto problému přišli s takovou věcí jako správce balíčků. Při jeho použití probíhá instalace asi takto:
  1. je pořízen archiv vytvořený určitým způsobem
  2. vytahují se z něj informace o tom, co to je, jaká je to verze, na čem závisí, s čím je v konfliktu, zda je nutné spouštět nějaké skripty k instalaci/odinstalaci/konfiguraci atd.
  3. Probíhají kroky přímé instalace
  4. Všechna data o tom, kam a co bylo doručeno, se přidávají do databáze správce balíčků.

V tomto případě můžete při aktualizaci bezbolestně odstranit nepotřebné věci a zároveň se podívat, zda se v systému nezměnily soubory označené jako konfigurace a zeptat se, co dělat, pokud se jejich obsah v nové verzi liší. Správce balíčků vám navíc nedovolí přepsat soubory jednoho balíčku při instalaci jiného. Obecně může dělat spoustu užitečných věcí.

Pokud jsi z neznalosti/lenosti zkopíroval a vložil make install z návodu, tak v systému se objevují soubory, o kterých správce balíčků neví. Se vším, co z toho vyplývá, pokud vám nestačí to, co bylo uvedeno dříve.

Co dělat?

Zdrojový strom můžete samozřejmě nakonfigurovat tak, aby se vše nainstalovalo někde v /opt/mycoolapp/, a pak případně ručně smazat, ale může se zde objevit spousta nepříjemných věcí, počínaje tím, že program očekává, že může načíst vaše knihovny a zavaděč neví nic o adresáři, kde se nacházejí, končí to tím, že autor programu může očekávat, že pokud například vloží soubor, řekněme, do $prefix/share /xsessions/, pak to správce zobrazení vyzvedne. Nemluvě o cestách pro pkgconfig a tak dále.

Musíte si tedy balíček vyzvednout.

Nemám čas se s tím šukat, radši udělám instalaci znovu, vše je jednoduché a jasné!

Uklidni se, uklidni se. Je přivázaný k našim nohám. Vše není tak děsivé a složité, jak se na první pohled zdá.
checkinstall
Tento úžasný nástroj, když je spuštěn místo make install, položí několik otázek, načež sestaví a nainstaluje balíček. To je vše, při aktualizaci nebudete mít žádné problémy s čištěním starého odpadu.
Ruční vytvoření balíčku deb
Pokud nechcete takové automatizaci důvěřovat (která se někdy stále zvrtne) nebo chcete provést pár změn, ale stále jste příliš líní na to, abyste se vypořádali s normálním procesem sestavování balíčků, můžete balíček sestavit ručně. Dávám způsob, jak to postavit pro systémy databáze Debian, protože je znám nejlépe. Není to ideologicky správné, ale výstupem je zcela korektní balíček bez použití dalších entit. To se provádí následovně.
Nejprve sestavíme software s parametry --prefix=/usr a --exec-prefix=/usr předem specifikovanými pro configure nebo autogen.sh.
Dále jej nainstalujeme do dočasného adresáře. Píšeme:

Fakeroot make install DESTDIR=`pwd`/tempinstall
Poté získáme celou sadu souborů v nově vytvořeném adresáři. Mimochodem, nyní jsme v prostředí fakeroot, tedy vlastníka a přístupová práva k souborům můžete bez omezení měnit, ale fyzicky zůstanete vlastníkem systému. Software uvnitř fakeroot session obdrží změněné informace, které umožní archivaci souborů se správnými právy.
Dále vytvořte adresář DEBIAN v „kořenovém adresáři balíčku“ a přidejte seznam všech souborů, které by měly jít do /etc, do DEBIAN/conffiles:

Cd tempinstall mkdir DEBIAN find atd | sed "s/^/\//" > DEBIAN/conffiles
Poté vytvoříme soubor DEBIAN/control s následujícím obsahem:

V případě potřeby tam můžete vytvořit i skripty preinst, postinst, prerm a postrm.

To je vše, provedeme dpkg -b tempinstall a výstupem je tempinstall.deb, který můžete použít dpkg -i ke správné instalaci, aktualizaci nebo odstranění.

„Správný“ proces předběžného vytvoření balíčku zdrojového kódu je nad rámec této poznámky, a proto nebude popisován, ale pro vaše účely to obvykle není nutné.

Závěr

Jak vidíte, není zde absolutně nic složitého, ale dodržování těchto kroků vám v budoucnu ušetří velké množství problémů.