Можете ли вы рассказать мне, как обновлять программы, установленные с помощью «sudo make install». Я спрашиваю, нужно ли мне удалить программу, а затем повторить «./autogen.sh» «make» «sudo make install». Некоторые говорят, что мне нужно удалить программу, а затем снова создать ее после git pull, другие скажем, что я могу просто переустановить его с помощью обновленного источника.Как обновить программы, созданные из исходного кода
ответ
Это зависит. Если это просто небольшое обновление, просто перекомпиляция и make install
.
Если какие-либо изменения в поставляемых библиотеках и/или заголовочных файлах были выполнены (например, они были переименованы), вы должны сначала удалить программное обеспечение, чтобы избавиться от ненужных файлов в вашей файловой системе.
Существует (обычно) нет make uninstall
.
Именно поэтому я всегда устанавливаю такое программное обеспечение в отдельный каталог, названный в честь программного обеспечения и его номера версии. Например, при установке GNU Make 4.1 из исходного кода я установлю его в каталог make-4.1
.
Затем я связываю все соответствующие файлы с общим деревом каталогов, которое я использую в своих $PATH
, $MANPATH
и т. Д. Я использую свой собственный скрипт для этого, но это только потому, что я не знал о stow
, когда писал.
Это позволяет мне устанавливать несколько версий бок о бок и выбирать «текущий», удаляя и добавляя символические ссылки, о которых идет речь, с моим скриптом. Я могу удалить программное обеспечение, просто удалив его дерево каталогов.
Это также работает с программным обеспечением с зависимостями, которые также должны быть установлены таким образом. Самая сложная часть заключается в том, чтобы решить, нужно ли создавать зависимую версию или нет.
Это действительно сложно удалить программу, которую вы установили самостоятельно в местоположение по умолчанию. Если вам повезет, будет uninstall
или deinstall
цель для make
, но в большинстве случаев его нет. Вероятно, это вопрос ручной работы с файлами и их удаления, если вы не переустановите ту же самую версию кода и не заметите, где на самом деле заканчивается (что лишь немного облегчило бы «охоту вниз»)
в будущем, вы можете сделать что-то по-другому: Наибольшего распространения источника, который использует configure
сценария GNU позволяет указать префикс для установки с помощью --prefix=path
. Это позволяет сделать установку в отдельный подкаталог, который тогда будет просто удалить.
Например, предположим, что я устанавливаю вымышленный кусок программного обеспечения под названием Thepackage, версия 14.4:
$ ./configure --prefix=/usr/local/stow/thepackage-14.4
$ make && sudo make install
(я обычно использую путь под $HOME/local/stow
)
Обратите внимание на stow
там? Не случайно, что есть аккуратная утилита, называемая именно этим, available from the GNU people.
После установки программного обеспечения, как указано выше, под .../stow/thepackage-14.4
, это просто вопрос
$ cd /usr/local/stow
$ sudo stow -v thepackage-14.4
Это заполнит /usr/local
с символическими ссылками, так что, например, любой исполняемый в /usr/local/stow/thepackage-14.4/bin
доступна в /usr/local/bin
(и т.д.)
Для удаления:
$ cd /usr/local/stow
$ sudo stow -D -v thepackage-14.4
$ sudo rm -rf thepackage-14.4
Это даже позволяет иметь несколько версий некоторого программного обеспечения, установленного под /usr/local/stow
. Чтобы «активировать» одну конкретную версию, просто stow -D
любую версию, которую вы использовали, и stow
тот, который вы хотели бы протестировать. Если новая версия не соответствует вашим требованиям, отмените действия.
Другие системы сборки также могут быть установлены для установки под отдельным префиксом. Например, чтобы сделать CMake установить, как указано выше, используйте
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/stow/thepackage-14.4
$ make && sudo make install
Вы также можете использовать stow
с пакетами Perl, и все остальное устанавливается в настраиваемый путь.
- 1. Как установить/обновить пакет из исходного кода в cygwin
- 2. Отладка программы без исходного кода (Unix/GDB)
- 3. Как сделать DLL из исходного кода devcon.exe?
- 4. POEdit: не удается обновить переводы из исходного кода
- 5. Как обновить динамически созданные виды?
- 6. Как скомпилировать P4 из исходного кода?
- 7. Как изменить порт связывания сокетов программы? без исходного кода
- 8. Как обновить текст до исходного исходного места?
- 9. Изменение исходного кода вашего исходного кода
- 10. Скрыть пароли из исходного кода
- 11. Удаление PIL из исходного кода
- 12. Сделать из исходного кода страницы
- 13. Спрятать mp3 из исходного кода
- 14. Получение исходного кода из двоичного кода
- 15. buliding wix из исходного кода
- 16. Установка OpenSSL из исходного кода
- 17. Извлечение исходного кода из CCL?
- 18. Извлечение исходного кода из Heroku
- 19. Использование Spring Framework из исходного кода
- 20. Защита исходного кода
- 21. Как сгенерировать файл .cpp из исходного кода?
- 22. Как скомпилировать Pascal S из исходного кода?
- 23. Как установить пакет R из исходного кода?
- 24. Как сохранить все изображения из исходного кода?
- 25. Как построить midas.obj из исходного кода midas
- 26. Как определить версию Node.js из исходного кода
- 27. как заменить слово «opencart» из исходного кода
- 28. Как создать libpthread.so из исходного кода?
- 29. Как построить tSQLt из исходного кода?
- 30. Как установить плагин Grails из исходного кода?
OOk спасибо. Так что я должен каждый раз проверять изменения, чтобы решить? – Fabiuz99
@ Fabiuz99 вы делаете это сложным; просто 'make install' более новая версия; если у вас есть какие-либо проблемы, «деинсталлируйте» и переустановите его. –
Это потому, что я использую скрипт для обновления моих программ, установленных с помощью git, и теперь я не сделал этого, если включить просто сделать установку или удалить программы и установить их снова. Из вашего ответа я понял, что второй вариант лучше – Fabiuz99