abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 0
dnes 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 0
včera 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 24
včera 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 2
5.12. 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 6
5.12. 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 50
5.12. 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 10
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 17
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 26
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (23%)
 (29%)
 (8%)
 (5%)
 (3%)
Celkem 783 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: make install - instalace na určené místo

7.4.2007 19:32 Jarda
make install - instalace na určené místo
Přečteno: 3746×
Ahoj, potreboval bych poradit s make install. Potrebuji zkompilovat program a nainstalovat ho do umisteni, ktere zadam. Kdys napisu make install tak by program make mel hledat cil install v souboru makefile a zkopirovat soubory do cilovych adresaru. Ale, kdyz otevru makefile a hledam cil install tak tam proste neni. Je tam pouze
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :

Diky za rady.

Odpovědi

7.4.2007 20:01 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: make install
Tohle se tak obecně říct nedá. Doporučuji dokumentaci k tomu programu, tam by mělo být popsáno, jak se má přeložit a nainstalovat.
7.4.2007 20:20 Jack Hokus | skóre: 31 | blog: LostHeaven
Rozbalit Rozbalit vše Re: make install
Dobrý večer,

je to už nějaký čas co jsem se pokoušel něco kompilovat, ale mám pocit, že existuje proměnná prefix, která dělá právě to, co potřebujete.

Mělo by se to zadávat ve tvaru ./configure --prefix=cílový adresář

S pozdravem

Jack Hokus
http://www.jackhokus.cz/
7.4.2007 21:28 pakanek | skóre: 28 | Vyškov
Rozbalit Rozbalit vše Re: make install
Pokud program nepouziva skript configure a neni mozno pouzit --prefix= tak muzes zkusit neco jako:

make install DESTDIR=/work/builds
make install ROOT=/work/builds
make install prefix=/work/builds/usr

Tusim ze treba cpufrequtils nema configure.
Všechno dobré je pro něco zlé.
7.4.2007 21:51 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: make install
Ale tohle jsou všechno jen konvence. Podstatné je, co je napsáno v tom Makefile.
7.4.2007 22:30 Jarda
Rozbalit Rozbalit vše Re: make install - instalace na určené místo
Diky za rady, fungovaly tyto prikazy ./configure --prefix=cilovy adresar make install DESTDIR=cilovy adresar make install prefix=cilovy adresar

Jestli tomu dobre rozumim:

make DESTDIR=cilovy adresar to znamena ze program make najde v makefile promenou DESTDIR a zmeni ji?

kdyz otevru makefile a hledam promenou DESTDIR tak ji najdu nekde uprostred makefile, nemela by tato promenna mit deklaraci?

Ale vubec netusim co znamena prefix.

Dik. Jarda.
7.4.2007 22:34 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: make install - instalace na určené místo
'make var=value' provede totéž, co make, pouze make proměnné var přiřadí hodnotu value. A znovu: zda bude fungovat DESTDIR, prefix, něco jiného nebo vůbec nic, to záleží jen a jen na tom, co je napsáno v tom konkrétním Makefile.
7.4.2007 23:15 trekker.dk | skóre: 71
Rozbalit Rozbalit vše Re: make install - instalace na určené místo
Ale vubec netusim co znamena prefix.
make install instaluje soubory adresářů, které jsou podadresáři prefixu.

Když nebudeš prefix nijak zadávat, výchozí hodnota je většinou /usr nebo /usr/local. Takže make install bude instalovat do /usr/bin, /usr/share atd.

Když prefix změníš třeba na /home/jarda, tak se soubory toho stejného programu umístí do /home/jarda/bin a /home/jarda/share

Pokud jsi tedy použil ty příkazy tak, jak jsi je vypsal, tj.
$ ./configure --prefix=cil
$ make install DESTDIR=cil
$ make install prefix=cil
tak zadávání parametrů pro make install bylo s největší pravděpodobností zbytečné. Poté, co ti configure vygeneruje Makefile, můžeš se přesvědčit, že DESTDIR (nebo jinak pojmenovaná proměnná, která dělá totéž) je nastavena podle toho "cil" v --prefix=cil a nemusíš ji tedy nastavovat znovu na to samé.
Quando omni flunkus moritati
7.4.2007 23:43 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: make install - instalace na určené místo
make install instaluje soubory adresářů, které jsou podadresáři prefixu.

Ne. 'make install' provede příkazy, které jsou v makefile uvedeny na řádcích následujících za tím, který začíná 'install:'.

8.4.2007 00:32 Jarda
Rozbalit Rozbalit vše Re: make install - instalace na určené místo
Jenomze ja v makefile nemam install: Dik Jarda.
8.4.2007 02:04 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: make install - instalace na určené místo
Pokud ho tam nemáte, pak vám make skončí s chybou "No rule to make target `install'. Stop." Pokud se tak nezachová, pak ho tam máte - i když o něm možná nevíte.
8.4.2007 00:40 trekker.dk | skóre: 71
Rozbalit Rozbalit vše Re: make install - instalace na určené místo
Ukaž mi Makefile, který na make install nenainstaluje přeložený program a já ti za každý ukážu (z lenosti jenom) dva, které to dělají.

Že si vždycky, když někdo vymýšlí jednoduchý příklad, najdeš čas na tu práci, abys ukázal, že ten příklad je úplně špatně (viz nedávno diskuze o load avg), načež přidáš ještě něco, co je sice naprosto pravdivé, ale taky často úplně k ničemu. Nejsi náhodou matematik?

Ano, je pravda, že 'make install' provede příkazy, které jsou v makefile uvedeny na řádcích následujících za tím, který začíná 'install:' a možná tě to překvapí, ale vím to taky. Jenom bych řekl, že TAHLE informace je pro člověka, který se ptá na to, jak nainstalovat program do specifického adresáře, úplně nahouby.
Quando omni flunkus moritati
8.4.2007 02:02 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: make install - instalace na určené místo

Sice je pravda, že 'make install' většinou nainstaluje přeložený program (a viděl jsem i dost projektů, kde to tak není), ale rozhodně není pravda, že každý makefile respektuje DESTDIR (a určitě bych si nevsadil na to, že ho respektuje většina) nebo že každý respektuje proměnnou prefix (nehledě na to, že i u těch, u kterých ano, tato proměnná znamená něco poněkud jiného).

Že si vždycky, když někdo vymýšlí jednoduchý příklad, najdeš čas na tu práci, abys ukázal, že ten příklad je úplně špatně (viz nedávno diskuze o load avg)

Pokud bude kdokoli tazatelům tlačit do hlavy věci, které nejsou pravda, a já si toho všimnu, budu se snažit jeho zavádějící tvrzení uvést na pravou míru. Může se vám to nelíbit, můžete proti tomu protestovat, ale to je asi tak všechno, co s tím můžete dělat.

Ano, je pravda, že 'make install' provede příkazy, které jsou v makefile uvedeny na řádcích následujících za tím, který začíná 'install:' a možná tě to překvapí, ale vím to taky. Jenom bych řekl, že TAHLE informace je pro člověka, který se ptá na to, jak nainstalovat program do specifického adresáře, úplně nahouby.

A právě v tom se naše názory diametrálně liší. Protože vím, že zdaleka ne každý projekt respektuje DESTDIR nebo prefix (nemluvě o tom, že každá z těch proměnných znamená něco úplně jiného - i tam, kde fungují), považuji za podstatně užitečnější tazateli sdělit, jak se věci skutečně mají, ne jak to možná funguje. Tedy že je potřeba se podívat do dokumentace a není-li tam odpověď, pak do makefile. Musím-li si vybrat mezi jednoduchou a správnou odpovědí, volím tu správnou.

8.4.2007 02:28 trekker.dk | skóre: 71
Rozbalit Rozbalit vše Re: make install - instalace na určené místo
...ale rozhodně není pravda, že každý makefile respektuje DESTDIR (a určitě bych si nevsadil na to, že ho respektuje většina)...
Ukaž mi, prosím, něco, co jsem napsal a ty sis to takto vyložil.
...nebo že každý respektuje proměnnou prefix...
Předpokládám, že pokud configure umožňuje zadat --prefix, pak předpokldáám, že vytvořený Makefile bude tuto hodnotu nějakým způsobem respektovat. Jinak by tam ta volba byla poněkud zbytečná. Abych pravdu řekl, pokud by to tak nebylo a make install instaloval někam úplně jinam, než bylo prefixem zadáno, považoval bych to za chybu.

K tomu zbytku... Já považuji za podstatné, jestli je otázka dobře zodpovězena. Tazatel se ptal, jak nainstalovat program do zadaného adresáře a bylo mu to zodpovězeno: "většinou funguje ./configure --prefix=cil" Ano, pokud by to nezabralo, bylo by potřeba další řešení, ale ono to zabralo. Vědět, jak se věci skutečně mají je v tomto případě vcelku zbytečné a tazatel si to může zjistit, až to bude opravdu potřebovat. Nelze začít vstřebáním všech informací.
Tedy že je potřeba se podívat do dokumentace a není-li tam odpověď, pak do makefile.
Pokud program používá configure, většinou je vygenerovaný Makefile příliš složitý na to, aby se v něm začátečník na první pohled vyznal. Takže stráví spoustu času bádáním nad Makefile, aby nakonec zjistil, že měl bádat nad configure.

Ano, kdybych na dotaz "make install - instalace na určené místo" odpovídal první, řeknu tazateli, ať hledá. Když už ale odpovídám na otázku, co dělá --prefix=cil u configure, tak tvrdím, že odpověď "způsobí, že make install nainstaluje program do adresáře cil" bude v 99% případech správná.
Quando omni flunkus moritati
8.4.2007 03:13 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: make install - instalace na určené místo
Předpokládám, že pokud configure umožňuje zadat --prefix, pak předpokldáám, že vytvořený Makefile bude tuto hodnotu nějakým způsobem respektovat.

To je velmi optimistický předpoklad. Je-li configure vygenerován autoconfem, nabízí volbu --prefix automaticky, a nejspíš by nebylo úplně triviální mu to rozmluvit. To, zda se zadaný prefix nějakým způsobem odrazí v chování výsledného Makefile, už ale závisí čistě na dobré vůli autora Makefile.in

Pokud program používá configure, většinou je vygenerovaný Makefile příliš složitý na to, aby se v něm začátečník na první pohled vyznal.

Zdaleka ne každý projekt, kde se vyskytuje configure, používá automake. Používá-li pouze autoconf (a z toho, co jsem viděl, bych si troufal odhadovat, že to je častější), spočívá generování Makefile pouze v substitucích hodnot za zvolené symboly. Takže s tou přehledností to není zase tak hrozné.

Když už ale odpovídám na otázku, co dělá --prefix=cil u configure, tak tvrdím, že odpověď "způsobí, že make install nainstaluje program do adresáře cil" bude v 99% případech správná.

O tom by se dalo polemizovat. Ale museli bychom začít tím, že bychom si upřesnili, co vlastně znamená výraz "nainstaluje program do adresáře cil". Protože zatím tazatel nedal najevo, zda tím myslí to, co má obvykle na svědomí --prefix, nebo to, co má často na svědomí DESTDIR - a nebo také něco úplně jiného. Mimochodem, on tazatel vlastně dosud ani nepotvrdil, že ten projekt (dosud nebylo odtajněno jeho jméno) vůbec používá nějaký configure skript, natož že byl generován autoconfem.

8.4.2007 12:13 Ash
Rozbalit Rozbalit vše Re: make install - instalace na určené místo
Troufnul bych si z logiky věci a kontextu odhadnout, že tam jenom chybělo "do". make install instaluje soubory adresářů, které jsou podadresáři prefixu. -> make install instaluje soubory do adresářů, které jsou podadresáři prefixu.

Ono nakonec ani to tvrzení že "make install provede příkazy které..." není pravdivé, pokud je pominuta omezující podmínka, že to platí jen pro řádky začínající tableátorem ;)
8.4.2007 12:24 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: make install - instalace na určené místo
Neupřesňoval jsem, kolik následujících řádků to bude a jak se poznají. Kdybyste chtěl hledat nepřesnosti, spíš byste se mohl zabývat možností, že target install bude mít nějaké prerequisities.
8.4.2007 00:15 Jarda
Rozbalit Rozbalit vše Re: make install - instalace na určené místo
Diky za reakci,

prikazy
$ ./configure --prefix=cil
$ make install DESTDIR=cil
$ make install prefix=cil

jsem nezadaval po sobe, spatne jsem se vyjadril. Zkousel jsem je jednotlive.

Diky za vysvetleni prefix.

Jenom mi porad neni jasne, kdyz otevru makefile a podivam se na zacatek tak vidim deklaraci promennynch napr:

build_triplet = i686-pc-linux-gnu

ocekaval bych ze tam bude uvedeno neco jako

DESTDIR = cil ale nic takoveho tam neni, az nekde uprostred je $(DESTDIR) a nejake prikazy pokud jsem to pochopil tak to znamena ze promenna $(DESTDIR) je uz nekde deklarovana, ale kde?

no treba toto, jsem na zacatku makefile:

pkgdatadir = $(datadir)/irssi

do promenne pkgdatadir se ulozi obsah promenne $(datadir)/irrssi, ale odkud se vezme promena $(datadir) kdyz jeste nebyla deklarovana v makefile.

DIK. Jarda.
8.4.2007 03:20 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: make install - instalace na určené místo
Pokud proměnné nepřiřadíte hodnotu, make se chová, jako by to byl prázdný řetězec. Proměnná DESTDIR - je-li v makefilech použita obvyklým způsobem - se nejčastěji používá při vytváření balíčků. Specifikuje základní adresář, který se přidá před všechny cesty, kam se instalují jednotlivé soubory, ale celý projekt je pořád přeložen a nakonfigurován tak, jako by tam žádný DESTDIR nebyl. Prostě takový "falešný kořenový adresář". Takže prázdný řetězec je obvyklá a pro normální 'make install' (instalace pro přímé použití) také správná hodnota.
8.4.2007 11:45 Jarda
Rozbalit Rozbalit vše Re: make install - instalace na určené místo
Uz to chapu. Diky Jarda.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.