Dokonać instalacji, ale nie do domyślnych katalogów?

Chcę uruchomić 'make install', więc mam wszystko, czego potrzebuję, ale chciałbym, aby zainstalować rzeczy we własnym folderze, a nie w systemie / usr / bin itp. czy to możliwe? nawet jeśli odwołuje się do narzędzi w /usr / bin itp.?

Author: jww, 2010-07-13

7 answers

To zależy od paczki. Jeśli plik Makefile jest generowany przez GNU autotools (./configure), zazwyczaj możesz ustawić docelową lokalizację w następujący sposób:

./configure --prefix=/somewhere/else/than/usr/local

Jeśli plik Makefile nie jest generowany przez autotools, ale dystrybuowany wraz z oprogramowaniem, po prostu otwórz go w edytorze i zmień. Katalog docelowy instalacji jest prawdopodobnie zdefiniowany gdzieś w zmiennej.

 145
Author: Thomas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-13 16:43:37

Ponieważ Nie wiem, w której wersji automake możesz użyć zmiennej środowiskowej DESTDIR .
Zobacz Makefile, aby się upewnić.

Na przykład:

 export DESTDIR="$HOME/Software/LocalInstall" && make -j4 install
 26
Author: Andor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-08 09:11:19

Może zależeć od tego, co jest obsługiwane przez moduł, który próbujesz skompilować. Jeśli plik makefile jest generowany za pomocą autotools, użyj:

--prefix=<myinstalldir>

Podczas uruchamiania ./ configure

Niektóre pakiety umożliwiają również nadpisanie podczas uruchamiania:

make prefix=<myinstalldir>

Jednak, jeśli nie używasz ./ configure, jedynym sposobem na upewnienie się jest otwarcie makefile i sprawdzenie. Powinna być jedną z pierwszych kilku zmiennych na górze.

 13
Author: Tree77,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-15 17:20:48
make DESTDIR=./new/customized/path install

To szybkie polecenie zadziałało dla mnie przy instalacji opencv w wersji 3.2.0 na Ubuntu 16. Ścieżka DESTDIR może być zarówno względna, jak i absolutna.

Takie przekierowanie może być również przydatne w przypadku, gdy użytkownik nie ma uprawnień administratora, o ile lokalizacja DESTDIR ma prawo dostępu dla użytkownika. np. / home / /

 8
Author: samasat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-14 10:22:52

Jeśli pakiet zawiera Makefile.PL - można użyć:

perl Makefile.PL PREFIX=/home/my/local/lib LIB=/home/my/local/lib
make
make test
make install

* dalsze wyjaśnienie: https://www.perlmonks.org/?node_id=564720

 1
Author: eli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-14 14:12:48

Wypróbowałem powyższe rozwiązania. Nic nie działało.

W końcu otworzyłem plik Makefile i ręcznie zmieniłem ścieżkę przedrostka na żądaną ścieżkę instalacji jak poniżej.

PREFIX ?= "installation path"

Kiedy próbowałem -- prefix," make " skarżył się, że nie ma takiego wejścia poleceń. Być może jednak niektóre pakiety akceptują -- prefix, który jest oczywiście czystszym rozwiązaniem.

 0
Author: Majid Azimi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-24 17:03:31

Spróbuj użyć INSTALL_ROOT.

make install INSTALL_ROOT=$INSTALL_DIRECTORY
 -5
Author: Christopher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-30 22:16:35