Вопрос Если я создам пакет из источника, как я могу полностью удалить или удалить?


Я использовал исходный код для создания одного пакета, такого как:

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib --with-package-name="Myplugin" --with-package-origin="http://www.ubuntu.org/" --enable-gtk-doc --disable-static
make
make install

Но, к сожалению, я обнаружил, что его последняя версия и множество ошибок, поэтому мне нужно удалить ее / удалить. Но как я могу это сделать? Я пытался make clean; make uninstall но все же я вижу, что он существует:

# pkg-config --list-all | grep Myplugin
myplugin-....
$ ls /usr/lib/myplugin/libXYZ.so
exist....

Как удалить это сейчас?


120
2017-12-12 11:42


происхождения




ответы:


Обычно вы можете просто использовать:

make uninstall

или

sudo make uninstall

если приложение было установлено как root.

Но это будет работать только в том случае, если разработчик пакета позаботился о правильном правиле удаления.

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

make -n install

А затем попробуйте вручную отменить эти шаги.

В будущем, чтобы избежать таких проблем, попробуйте использовать checkinstall вместо make install когда это возможно (AFAIK всегда, если вы не хотите одновременно сохранить скомпилированную и упакованную версию). Он создаст и установит файл deb, который вы сможете удалить с помощью своего любимого менеджера пакетов.

make clean обычно очищает каталоги зданий, он не удаляет пакет. Он используется, когда вы хотите быть уверенным, что все это скомпилировано, а не только измененные файлы.


150
2017-12-12 11:49



Я тоже это сделал. Но все же оно существует, как показано pkg-config и ls /usr/lib/myplugin/libXYZ.so - YumYumYum
+1 для использования checkinstall - это заставляет всю эту проблему испариться. - Oli♦
@Google: если make uninstall не работает, вам нужно будет отслеживать, что делает установка, и отменить ее вручную. - Javier Rivera
Другое дело иметь в виду, что если make install был выполнен как корень (например, sudo make install), который, как правило, имеет место, он всегда необходим для запуска sudo make uninstall для удаления программного обеспечения. - Eliah Kagan
Если вы уже запустили make install, вы все равно можете использовать checkinstall, Как обычно checkinstall будет перезаписывать все, что make install создано. После этого просто используйте dpkg -r <package.deb>, и все должно быть удалено. - user502144


Я не думаю, что это ошибка, было бы неплохо прочитать и научиться использовать checkinstall при установке из исходного кода.

вы можете установить checkinstall из репозиториев, краткое описание пакета;

CheckInstall отслеживает все созданные файлы или измененный вашим сценарием установки ("make install" «make install_modules», «setup» и т. д.), создает стандартный бинарный пакет и устанавливает его в вашем система, предоставляющая вам возможность удалить ее с помощью стандартные утилиты управления пакетами.

Эти ссылки ниже могут быть полезны для лучшего понимания. http://en.wikipedia.org/wiki/CheckInstall

http://checkinstall.izto.org/


26
2018-01-20 22:36





Это не ошибка. Компиляция из источника - неподдерживаемый метод установки программного обеспечения, полностью обходя систему управления пакетами (которая используется Центром программного обеспечения).

Нет стандартного способа, чтобы программное обеспечение, скомпилированное из источника, было установлено или удалено, поэтому Ubuntu не знает, что делать. Программное обеспечение даже не указано как установленная программа.

Вы должны следовать инструкциям дистрибьютора для установки и удаления такого программного обеспечения. Вы также можете связаться с разработчиком, чтобы попросить их создать пакет Debian, чтобы можно было использовать систему управления пакетами.


15
2018-01-20 22:38





Это не ошибка, это то, что происходит, когда разработчики прибегают к распространению через источник, а не через собственные методы упаковки.

Вы можете заставить исходные файлы стать debian-пакетами с помощью checkinstall или dhbuild. Честно говоря, по-моему, новым пользователям следует избегать установки из исходного кода, и разработчикам следует избегать распространения только по источнику.


3
2018-01-20 22:36



Я знаю, но иногда это неизбежно ... В этом случае это была небольшая игра, которая на самом деле не нужна, но когда-то мне пришлось установить MATLAB в вычислительный инструмент, используемый в моем университете, и мне пришлось установить его источником, так как они не имеет файла deb для ubuntu ... Но я обязательно пройду через методы checkinstall и dhbuild ... спасибо - nik90


Нам необходимо обсудить тот факт, что удалить бы не всегда работают, поэтому ниже является более активным решением.

 Это связано с использованием программы paco который доступен в программном центре Ubuntu. Как только мы установили paco, мы можем использовать его в режиме журнала, когда мы «устанавливаем» программу. Paco действует как обертка для вашей «make install» и создает журнал в каталоге / var / log / paco со списком файлов, скопированных в различные каталоги. Кроме того, вы можете видеть файлы в лицевой части Paco.

 Например, когда я скомпилировал php из исходного кода, я сделал следующее:

paco -lp php5 "make install"

Параметр l запускает paco в режиме журнала. Это создало файл журнала в / var / log / paco с именем php5 (имя, которое я дал в команде). Он содержал все файлы, которые копируются в различные стандартные местоположения во время установки. Вы можете использовать редактор командной строки или paco gui для просмотра файлов.

Ниже приведен пример получения список файлов с помощью редактора командной строки sed
(Замените php5 на ваше имя файла).

cat /var/log/paco/php5 | sed -n 's/|\(.*\)//;/^#\(.*\)/d;p'

Когда вы получите список файлов, вы знаете, как их удалить, не так ли? В самом деле, вы могли бы передать результаты вышеуказанной команды комната используя обратные элементы, как показано ниже:

sudo rm `cat /var/log/paco/php5 | sed -n 's/|\(.*\)//;/^#\(.*\)/d;p'`

Работа выполнена!

Примечание. Из-за ограничений LD_PRELOAD, paco не может следовать следам suid-программ. См. Справочную страницу.


0
2018-03-09 12:56





Я собрал PHP-5.6.30 из источника, не настраивая его с помощью openssl, поэтому мне пришлось вернуться и установить его с нуля. Использование make uninstall не работа как Makefile для php не поддерживает его.

Тем не менее, этот шаг работал для меня, - я перечислил все файлы, связанные с php, и удалил их вручную, мне потребовалось около 5 минут, не разбив пота. Вы также можете использовать эти шаги для удаления скомпилированного программного обеспечения.

замещать PHP с программным обеспечением, которое необходимо удалить

whereis php

В приведенной выше команде перечислены каталоги, в которых установлены двоичные файлы ex: / usr / local / bin / php, / usr / bin / php .. удалить каждый файл / каталог, указанный в вашем выводе.

sudo rm -f /usr/local/bin/php 

Сделайте это со всеми файлами, перечисленными в вышеприведенном выводе, и вы все настроены на установку новой версии с нуля.


0
2018-04-03 19:25