abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:22 | IT novinky

    VASA-1, výzkumný projekt Microsoftu. Na vstupu stačí jediná fotka a zvukový záznam. Na výstupu je dokonalá mluvící nebo zpívající hlava. Prý si technologii nechá jenom pro sebe. Žádné demo, API nebo placená služba. Zatím.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | Nová verze

    Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).

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

    ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.

    Ladislav Hagara | Komentářů: 0
    včera 22:11 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 20:55 | Nová verze

    Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.

    Ladislav Hagara | Komentářů: 2
    včera 17:22 | Nová verze

    Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 13
    včera 17:11 | Nová verze

    ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.

    Ladislav Hagara | Komentářů: 2
    včera 12:11 | IT novinky

    Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.

    Ladislav Hagara | Komentářů: 10
    včera 05:11 | Komunita

    #HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.

    Ladislav Hagara | Komentářů: 2
    17.4. 17:55 | IT novinky

    Společnost Volla Systeme stojící za telefony Volla spustila na Kickstarteru kampaň na podporu tabletu Volla Tablet s Volla OS nebo Ubuntu Touch.

    Ladislav Hagara | Komentářů: 3
    KDE Plasma 6
     (68%)
     (10%)
     (2%)
     (20%)
    Celkem 563 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    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: 3879×
    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: 72 | 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: 34 | 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: 72 | 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: 72 | 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: 72
    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: 72 | 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: 72 | 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: 72
    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: 72 | 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: 72
    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: 72 | 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: 72 | 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: 72 | 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.