Vraag & Antwoord

OS Linux

[compilen] --prefix v.s. DESTDIR

4 antwoorden
  • /me is bezig een aantal dingen up te daten c.q. bij te installeren aan een server (slackware) en wil daarbij gebruik maken van .tgz (slackware package manager) daartoe moet je de hele bups eerst in een 'neptree' installeren. dat kan op twee manieren: meegeven met ./configure [code:1:31ba42dde8] ./configure --prefix=/home/packages/openssl/usr [/code:1:31ba42dde8] en het schijnt ook te kunen met [code:1:31ba42dde8] ./configure --prefix=/usr make make DESTDIR=/home/packages/openssl/usr install [/code:1:31ba42dde8] (ja, ik weet dat je voor openssl nog wat andere opties moet toevoegen... ;)) mijn vraag is nu vooral: hoe gaan packages daarmee om en wat is aan te raden? ik heb gehoord dat niet alle packages de optie DESTDIR respecteren (en moet dat eigenlijk wel pas bij 'make install'?) waarom dan DESTDIR willen gebruiken? omdat ik ook gehoord heb van packages die de $PREFIX hardcoded vastleggen :roll: en dat zou dus echt nare problemen opleveren! ben ik duidelijk genoeg geweest? ;)
  • Het beste kun je ./configure gewoon naar --prefix=/usr doen, anders krijg je allerlei rare paden geconfigureerd in de software. Of je daarna [b:9fedc8b396]make DESTDIR=/pad/naar/blablafakeroot install[/b:9fedc8b396] ofwel [b:9fedc8b396]make prefix=/pad/naar/fakeroot/usr install[/b:9fedc8b396] moet doen hangt af van de makefile. Kijk gewoon even in de Makefile die gegenereerd wordt naar configure. Tip: kijk ook in de ebuild files op http://www.gentoo.org/index-packages.html want gentoo gebruikt precies zo'n systeem. Soms moet je misschien zelfs wat directories aanmaken. Ik heb wel eens een [i:9fedc8b396]file[/i:9fedc8b396] /var/tmp/blablafakeroot/usr/share/info gehad, omdat die directory niet al bestond werd het bestand er heen gekopieerd als file. Kijk ook goed of er niet packages buiten de boot vallen en toch stiekem in de gewone / rootdir worden geïnstalleerd. Gentoo gebruikt hiervoor een sandbox preload, die je waarschuwt als er buiten de fake rootdir wordt geschreven.
  • [quote:b5258c1f03="wbsoft"]Het beste kun je ./configure gewoon naar --prefix=/usr doen, anders krijg je allerlei rare paden geconfigureerd in de software. Of je daarna [b:b5258c1f03]make DESTDIR=/pad/naar/blablafakeroot install[/b:b5258c1f03] ofwel [b:b5258c1f03]make prefix=/pad/naar/fakeroot/usr install[/b:b5258c1f03] moet doen hangt af van de makefile. Kijk gewoon even in de Makefile die gegenereerd wordt naar configure. [/quote:b5258c1f03] make prefix=blaat... dat zal 'm dan wel wezen... /me gaat ff een makefile lezen :9 [quote:b5258c1f03="wbsoft"] Soms moet je misschien zelfs wat directories aanmaken. Ik heb wel eens een [i:b5258c1f03]file[/i:b5258c1f03] /var/tmp/blablafakeroot/usr/share/info gehad, omdat die directory niet al bestond werd het bestand er heen gekopieerd als file. [/quote:b5258c1f03] ik heb dan ook heel complete directorystructuur aangemaakt ;) [quote:b5258c1f03="wbsoft"] Kijk ook goed of er niet packages buiten de boot vallen en toch stiekem in de gewone / rootdir worden geïnstalleerd. Gentoo gebruikt hiervoor een sandbox preload, die je waarschuwt als er buiten de fake rootdir wordt geschreven.[/quote:b5258c1f03] da's een goeie... maar hoe check ik dat? ik zou maar een optie weten, namelijk installeren als een non-privileged user en als dat goed gaat installeren met userid 0 of iets als chown -R 0.0 *, maar dan krijg je problemen met sommige permissies (suid-bits bijvoorbeeld)
  • met openssl is het nu iig gelukt, dus dan zal de rest ook wel lukken (nee... ik ga geen oo installeren :P)

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.