2016-06-18 2 views
1

Можете ли вы рассказать мне, как обновлять программы, установленные с помощью «sudo make install». Я спрашиваю, нужно ли мне удалить программу, а затем повторить «./autogen.sh» «make» «sudo make install». Некоторые говорят, что мне нужно удалить программу, а затем снова создать ее после git pull, другие скажем, что я могу просто переустановить его с помощью обновленного источника.Как обновить программы, созданные из исходного кода

ответ

1

Это зависит. Если это просто небольшое обновление, просто перекомпиляция и make install.

Если какие-либо изменения в поставляемых библиотеках и/или заголовочных файлах были выполнены (например, они были переименованы), вы должны сначала удалить программное обеспечение, чтобы избавиться от ненужных файлов в вашей файловой системе.

+0

OOk спасибо. Так что я должен каждый раз проверять изменения, чтобы решить? – Fabiuz99

+0

@ Fabiuz99 вы делаете это сложным; просто 'make install' более новая версия; если у вас есть какие-либо проблемы, «деинсталлируйте» и переустановите его. –

+0

Это потому, что я использую скрипт для обновления моих программ, установленных с помощью git, и теперь я не сделал этого, если включить просто сделать установку или удалить программы и установить их снова. Из вашего ответа я понял, что второй вариант лучше – Fabiuz99

0

Существует (обычно) нет make uninstall.

Именно поэтому я всегда устанавливаю такое программное обеспечение в отдельный каталог, названный в честь программного обеспечения и его номера версии. Например, при установке GNU Make 4.1 из исходного кода я установлю его в каталог make-4.1.

Затем я связываю все соответствующие файлы с общим деревом каталогов, которое я использую в своих $PATH, $MANPATH и т. Д. Я использую свой собственный скрипт для этого, но это только потому, что я не знал о stow, когда писал.

Это позволяет мне устанавливать несколько версий бок о бок и выбирать «текущий», удаляя и добавляя символические ссылки, о которых идет речь, с моим скриптом. Я могу удалить программное обеспечение, просто удалив его дерево каталогов.

Это также работает с программным обеспечением с зависимостями, которые также должны быть установлены таким образом. Самая сложная часть заключается в том, чтобы решить, нужно ли создавать зависимую версию или нет.

1

Это действительно сложно удалить программу, которую вы установили самостоятельно в местоположение по умолчанию. Если вам повезет, будет 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, и все остальное устанавливается в настраиваемый путь.

Смежные вопросы