Как удалить библиотеку linux

Обновлено: 04.07.2024

Это меня беспокоило. Что противоположно "make install", то есть как библиотека удалена в Linux? Будет ли "сделать чистым" делать работу, или есть другие шаги?

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

Если вам повезет, работает make uninstall . Однако, это зависит от авторов библиотеки; некоторые авторы предоставляют цель uninstall , другие нет.

Если вам не повезло, вам придется удалить его вручную. Запуск make -n install может быть полезен, так как он покажет шаги, которые программа предпримет для установки, но на самом деле ничего не сделает. Затем вы можете вручную отменить эти шаги.

Если Sudo make uninstall недоступен:

В системе на основе Debian вместо (или после *) выполнения make install вы можете запустить Sudo checkinstall , чтобы создать файл .deb , который будет автоматически установлен. Затем вы можете удалить его с помощью диспетчера системных пакетов (например, apt / synaptic / aptitude / dpkg ). Checkinstall также поддерживает создание других типов пакетов, например, RPM.

*: Если вы читаете это после установки с помощью make install , вы все равно можете следовать приведенным выше инструкциям и впоследствии сделать dpkg -r $PACKAGE_NAME_YOU_CHOSEN .

Если у вас есть файл manifest , в котором перечислены все файлы, которые были установлены с make install , вы можете запустить эту команду, которую я получил из другого ответа:

Если у вас есть Sudo make install , вам нужно добавить Sudo для удаления:

В зависимости от того, насколько хорошо магия makefile/configure script/autofoo рассматриваемой программы может решить вашу проблему:

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

Как удалить после "сделать установку"

Способ № 1 (сделать удаление)

Шаг 1: Вам нужно только выполнить этот шаг если вы удалили/изменили каталог сборки любым способом: Загрузите и выполните/сделайте установку, используя точную ту же процедуру, что и ты делал раньше.

Шаг 2: попробуйте сделать деинсталляцию.

Если это успешно, вы сделали. Если вы параноик, вы можете также попробовать выполнить "Метод № 3" , чтобы убедиться, что make uninstall не пропустил ни одного файла.

Метод № 2 (checkinstall - только для систем на основе Debian)

Обзор процесса

В системах на основе Debian (например, Ubuntu) вы можете очень легко создать пакет .deb , используя инструмент с именем checkinstall . Затем вы устанавливаете пакет .deb (это заставит вашу систему Debian понять, что все части вашего пакета действительно установлены) и, наконец, удалите его, чтобы менеджер пакетов правильно очистил вашу систему.

шаг за шагом

На этом этапе checkinstall будет запрашивать имя пакета. Введите что-то немного описательное и запишите, потому что вы будете использовать это через минуту. Он также запросит еще несколько данных, которые вы можете игнорировать. Если он жалуется на неприемлемую версию, просто введите что-то разумное, например 1.0 . По завершении вы можете установить и, наконец, удалить:

Способ № 3 (install_manifest.txt)

Если в исходном каталоге существует файл install_manifest.txt , он должен содержать имена файлов каждого отдельного файла, созданного установкой.

Итак, сначала проверьте список файлов и их время мод:

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

Однако у пользователя Merlyn Morgan-Graham есть серьезное замечание относительно этого метода, о котором вам следует помнить (дословно скопировано здесь): "Следите за файлами, которые также могли быть установлены другими пакетами. Просто удаление этих файлов [. ] может сломать другие пакеты. ". По этой причине мы создали каталог deleted-by-uninstall и переместили туда файлы, а не удалили их.

99% этого поста существовали в других ответах. Я просто собрал все полезное в (надеюсь) простом практическом руководстве и попытался уделить дополнительное внимание важным деталям (таким как цитирование аргументов xarg и хранение резервных копий удаленных файлов).

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

Как правило, файлы Makefile не содержат цели для удаления - вам обычно приходится делать это самостоятельно, удаляя файлы из каталога, в который они были установлены. Например, если вы создали программу и установили ее (используя make install ) в /usr/local , вам нужно просмотреть /usr/local/bin , /usr/local/libexec , /usr/local/share/man и т.д. И удалить ненужные файлы. Иногда Makefile включает в себя цель uninstall , но не всегда.

Конечно, обычно в системе Linux вы устанавливаете программное обеспечение, используя менеджер пакетов, который способен удалять программное обеспечение "автоматически".

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

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

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

Make может рассказать вам, что он знает и что он будет делать. Предположим, у вас есть цель "install", которая выполняет такие команды:

В ваши общие правила добавьте:

Подобный трюк может сделать общий make clean .

Я знаю несколько пакетов, которые поддерживают "make uninstall", но многие другие поддерживают make install DESTDIR = xxx "для поэтапной установки.

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

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

Например, я использовал это недавно, чтобы иметь дело с protobuf-3.3.0. На RHEL7:

Это меня беспокоило. Что противоположно «make install», то есть как библиотека удалена в Linux? Будет ли «сделать чистым» делать работу, или есть другие шаги?

Смотрите аналогичные ответы на сайте askubuntu.com/questions/87111/…. Основное решение в настоящее время, по-видимому, заключается в sudo make uninstall том, что файлы конфигурации установки все еще доступны, но нет других очевидных решений, если нет, кроме удаления с помощью утилиты управления пакетами системы, если установлено с помощью «checkinstall». " утилита. После запуска make install мне никогда не нужно make uninstall было их удалять. Я всегда использовал xargs rm < install_manifest.txt

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

Если вам повезет, бег make uninstall будет работать. Однако, это зависит от авторов библиотеки; некоторые авторы предоставляют uninstall цель, другие нет.

Если вам не повезло, вам придется удалить его вручную. Запуск make -n install может быть полезен, поскольку он покажет шаги, которые программа предпримет для установки, но на самом деле ничего не сделает. Затем вы можете вручную отменить эти шаги.

+1; Следите за файлами, которые также могут быть установлены другими пакетами. Простое удаление этих файлов (одна интерпретация «ручного изменения этих шагов») может сломать другие пакеты. Это (одна из многих причин), почему были изобретены менеджеры пакетов. это возможно только в том случае, если вы сохраняете тот же настроенный и скомпилированный каталог сборки правильно? таким образом, не очень полезно, так как большинство людей будет удалять его после установки. Он хочет удалить вещи независимо от того, сохранил ли он папку сборки, и независимо от того, был ли пакет правильно настроен для опции make uninstall. Пояснение: что он хочет сделать, так это включить какое-то управление для пакетов, которые работают для вещей, которые он сам скомпилировал.

Если sudo make uninstall недоступно:

В системе на основе Debian, вместо (или после *) делать make install можно запустить , sudo checkinstall чтобы сделать .deb файл , который автоматически установлен. Затем вы можете удалить его, используя системный менеджер пакетов (например, apt / synaptic / aptitude / dpkg ). Checkinstall также поддерживает создание других типов пакетов, например RPM.

*: Если вы читаете это после установки с make install вами, вы все равно можете следовать приведенным выше инструкциям и сделать dpkg -r $PACKAGE_NAME_YOU_CHOSEN потом.

Этот ответ является доказательством того, что лучшие ответы часто не получают большого количества положительных голосов. Спасибо! Я давно хотел знать, как это сделать. Я всегда стесняюсь делать «make install», потому что знаю, что удалить ее будет почти наверняка. также в книге LFS есть некоторая информация о системах управления пакетами, так как вы должны настроить ее самостоятельно. Полученная там информация должна быть полезной для того, чтобы заставить подобные вещи работать лучше (чище, более общие). Существуют сценарии, которые просто прослушивают то, что устанавливается, а затем создают сценарий, который при запуске удаляет все эти файлы или что-то в этом роде. Это прекрасно работает для меня, хотя я уже пробежал make install перед использованием checkinstall вместо этого. Установите пакет checkinstall для этого превосходного ответа на работу. Аналогично тому, что прокомментировал пользователь «LukeGT», если файлы конфигурации установки недоступны, но есть файлы установщика, их можно скомпилировать и установить, checkinstall и если новая компиляция выполняется с теми же настройками, что и у старого, удаление установленного пакета с checkinstall должен удалить ранее установленные файлы.

Если у вас есть manifest файл, в котором перечислены все файлы, которые были установлены вместе, make install вы можете запустить эту команду, которую я получил из другого ответа:

Если у вас есть, sudo make install вам нужно добавить sudo для удаления:

Я удивлен видеть, что это не получило никаких голосов. Это работало для удаления файлов из системы, когда не работали другие параметры. В моем случае checkinstall не смог создать deb, потому что версия программы не начиналась с цифры и поэтому не собиралась. Это сработало хорошо. @DWils Я думаю, что он не получил больше голосов, потому что это довольно опасно. Дополнительно xargs echo rm | sh ? Совершенно очевидно, что тот, кто предложил это, не особенно опытен или не знает, как использовать оболочку. (для справки, он будет раздражать любые символы в именах файлов, которые интерпретируются оболочкой (и тогда вы выполняете мошенническое выполнение!), кроме того, он будет выполнять все виды расширения оболочки. Просто представьте, что произойдет, если в нем install_manifest.txt содержится звездочка . rm * будет передан в оболочку.) @ fstd совершенно верно. Как обычно, такой ответ следует использовать осторожно. Проверьте файл манифеста перед запуском этой команды. Но если вы используете оболочку, я предполагаю, что вы знаете, что делаете. Можете ли вы описать обстоятельства, при которых install_manifest.txt можно ожидать существование?

В зависимости от того, насколько хорошо магия makefile / configure script / autofoo рассматриваемой программы может решить вашу проблему:

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

Как удалить после "сделать установку"

Способ № 1 (сделать удаление)

Шаг 2: попробуйте сделать деинсталляцию.

Если это удастся, вы сделали. Если вы параноик, вы также можете попробовать выполнить «Метод № 3», чтобы убедиться, что make uninstall не пропустили ни одного файла.

Метод № 2 (checkinstall - только для систем на основе Debian)

Обзор процесса

В системах на основе Debian (например, Ubuntu) вы можете .deb очень легко создать пакет, используя инструмент с именем checkinstall . Затем вы устанавливаете пакет .deb (это заставит вашу систему Debian понять, что все части вашего пакета действительно установлены) и, наконец, удалите его, чтобы менеджер пакетов правильно очистил вашу систему.

Шаг за шагом

На этом этапе checkinstall запросит имя пакета. Введите что-то немного описательное и запишите, потому что вы будете использовать это через минуту. Он также запросит еще несколько данных, которые вы можете игнорировать. Если он жалуется на неприемлемую версию, просто введите что-то разумное, например 1.0 . По завершении вы можете установить и, наконец, удалить:

Способ № 3 (install_manifest.txt)

Если файл install_manifest.txt существует в вашем исходном каталоге, он должен содержать имена файлов каждого отдельного файла, созданного установкой.

Итак, сначала проверьте список файлов и их время мод:

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

Однако у пользователя Merlyn Morgan-Graham есть серьезное замечание относительно этого метода, о котором вы должны помнить (дословно скопировано здесь): «Следите за файлами, которые также могли быть установлены другими пакетами. Простое удаление этих файлов [. ] может сломать другие пакеты. " , По этой причине мы создали deleted-by-uninstall каталог и переместили туда файлы вместо того, чтобы удалить их.

99% этого поста существовали в других ответах. Я просто собрал все полезное в (надеюсь) простом практическом руководстве и попытался уделить дополнительное внимание важным деталям (таким как цитирование аргументов xarg и хранение резервных копий удаленных файлов).

Процесс установки программного обеспечения в Linux отличается от аналогичного процесса в Windows, что может сбить с толку даже опытного администратора, если ранее он не имел опыта работы с Linux.

apt-get.jpg

Что такое пакеты?

Программное обеспечение в Linux распространяется в виде пакетов, содержащих практически все необходимое для работы устанавливаемого ПО — исполнимые файлы, файлы конфигурации, документацию, различные вспомогательные файлы

Программное обеспечение в Linux распространяется в виде пакетов, содержащих практически все необходимое для работы устанавливаемого ПО – исполнимые файлы, файлы конфигурации, документацию, различные вспомогательные файлы и т.д. Понятно, что пакет не может содержать абсолютно все, иначе бы его размер был бы просто огромен. Иногда для работы одного пакета (А) требуется установить другой (Б) (например, какую-то библиотеку, необходимую для работы ПО) – это называется пакетной зависимостью. При установке пакета А пакетный менеджер автоматически предложит установить все необходимые компоненты программного обеспечения, поэтому администратору (в отличие от той же Windows) не придется делать это вручную.

Существует и другое явление – когда пакеты не совместимы друг с другом (например, вы не можете установить два почтовых клиента) – это называется пакетным конфликтом. Представим, что пакеты А и Б конфликтуют друг с другом, при этом файловый блок А уже установлен. При попытке установки пакета Б пакетный менеджер сообщит о конфликте и предложит удалить пакет А для разрешения конфликта. Администратор сможет выбрать – либо продолжить использовать пакетный набор компонентов А, или же удалить его и установить Б.

Как правило, пакеты содержатся в сетевых хранилищах – репозитариях. Репозитарий может быть и локальным, но поскольку мы говорим о виртуальных серверах Xelent, вам придется работать только с Интернет-репозитариями. В настройках пакетного менеджера хранится информация, откуда получать пакетные компоненты программного обеспечения (для Ubuntu репозитарии описаны в файле /etc/apt/sources.list).

Существуют различные пакетные менеджеры – у каждого дистрибутива свой менеджер. Например, в Fedora используется dnf, в openSUSE – zypper, в Debian и Ubuntu – apt. Далее мы рассмотрим команды пакетного менеджера apt, используемого в Debian/Ubuntu.

Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям Конфигурация VPS и бесплатный тест уже через 2 минуты Организация вашей IT-инфраструктуры на основе мультиклауд-решения

Менеджер пакетов apt

Формат вызова менеджера следующий:

sudo apt [опции] команды [пакет]

Команды менеджера apt приведены в таблице:

Команда Описание
list Выводит список пакетов
update Синхронизирует файлы описаний пакетов (внутреннюю базу данных) с источниками, которые указаны в файле /etc/apt/sources.list
upgrade Обновляет указанный пакет. Может использоваться для обновления всех установленных программных компонентов. При этом установка новых программных компонентов не производится, а загружаются и устанавливаются только новые версии уже установленных пакетов
dist-upgrade Обновляет дистрибутив. Для обновления всех пакетов рекомендуется использовать именно эту команду
install Устанавливает один или несколько пакетов
remove Удаляет один или несколько пакетов
check Служит для поиска нарушенных зависимостей
clean Используется для очистки локального хранилища полученных пакетов

Узнать имя необходимого вам пакета можно в руководстве по тому программному обеспечению, которое вы хотите установить. Если вы не знаете точного названия пакетного компонента (например, понимаете, что вам нужно установить mysql, но не знаете, как точно он называется), то можно использовать команду list:

sudo apt list | grep mysql

Команда list выводит список всех доступных пакетов, ее вывод перенаправляется на команду grep, которая отфильтровывает все строки, содержащие mysql.

Вывести список только установленных программных компонентов можно с помощью опции --installed:

sudo apt list -installed

sudo apt install mc

Команда устанавливает пакет mc, содержащий файловый менеджер Midnight Commander. Для удаления используется команда remove:

sudo apt remove mc

В процессе установки его файл (с расширением .apk) сначала загружается на локальный компьютер, а потом уже производится его локальная установка. Проблема в том, что .apk-файл не удаляется с компьютера после установки пакетного компонента, а продолжает занимать дисковое пространство. Очистить пакетный кэш можно командой clean:

Собственно, на этом все. Дополнительную информацию о пакетном менеджере и его командах можно найти в справочной системе (команда man apt).

Удаление программ в Ubuntu

Программы, игры, утилиты и другие программные компоненты в операционной системе Ubuntu представлены в виде пакетов. Когда вы устанавливаете какую-нибудь программу (приложение), вы устанавливаете один или несколько пакетов.

Рассмотрим, как удалять приложения (пакеты) в Ubuntu.

Существует два основных способа удаления пакетов в Ubuntu: использование Менеджера приложений Ubuntu (Ubuntu Software Center) и использование командной строки.

Удаление программ, используя Менеджер приложений

Рассмотрим самый простой способ удаления пакетов в Ubuntu — использование Менеджера приложений.

Запустите Менеджер приложений Ubuntu. Для этого откройте лаунчер, нажав сочетание клавиш Super+A (клавиша Super на клавиатурах Windows соответствует клавише Win ). В лаунчере запустите программу Менеджер приложений.

Запуск Менеджера приложений в Ubuntu

Запуск Менеджера приложений

Перейдите на вкладку Установлено . В этой вкладке представлены программы, установленные в системе.

Установленные приложения

Список установленных приложений

Напротив каждой программы есть кнопка Удалить . Нажмите на нее, чтобы удалить соответствующее приложение. После нажатия на кнопку, появится предупреждение, а также нужно будет ввести пароль.

Удаление приложения

Предупреждение

Ввод пароля для удаления приложения

Ввод пароля

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

Второй распространенный способ удаления программ — это использование командной строки.

Для управления пакетами в Ubuntu используются утилиты командной строки apt и apt-get. Они имеют схожий синтаксис. Для новичков рекомендуем использовать утилиту apt. Смотрите также наше руководство: «Использование APT. Команды apt и apt-get».

Запустите Терминал, нажав сочетание клавиш Ctrl+Alt+T .

Чтобы удалить пакет, выполните следующую команду (вместо имяпакета необходимо указать настоящее название пакета):

Например, чтобы удалить программу GIMP необходимо выполнить команду:

Команда apt remove выполняет удаление пакета, но не удаляет конфигурационные файлы этого пакета. Если вы установили программу, выполнили в ней какие-нибудь настройки, то, выполнив команду apt remove , вы удалите саму программу, но конфигурационные файлы удалены не будут. И, повторно установив данную программу, она будет использовать те настройки, которые вы ранее изменили.

Для полного удаления пакета, включая его конфигурационные файлы, используется команда apt purge .

Чтобы полностью удалить пакет и его конфигурационные файлы используется команда:

Чтобы удалить сразу несколько пакетов можно указать их названия через пробел:

Чтобы вывести список всех установленных пакетов используется команда:

Удаление Snap пакетов

В Ubuntu есть пакеты, которые отличаются от обычных — это Snap пакеты. Подробнее про Snap пакеты вы можете прочитать в нашей статье «Snap-пакеты в Linux. Что это и как с ними работать»

Вы можете удалить Snap пакеты точно также как и любые другие через Центр приложений Ubuntu. В Менеджере приложений Ubuntu для snap-пакетов указан источник «Snap Store». Обращаем ваше внимание на то, что в списке приложений могут присутствовать программы, которые могут быть установлены через обычные репозитории Ubuntu, так и через Snap. Обычно такие приложения имеют разные версии. Приложения, распространяемые через Snap, как правило, всегда новее.

Snap пакет в Менеджере приложений

Рассмотрим, как удалять приложения, установленные через Snap, используя командную строку.

Чтобы вывести список установленных Snap пакетов выполните команду:

Для удаления Snap пакета выполните команду:

Удаление неиспользуемых пакетов

Когда вы устанавливаете какую либо программу, то обычно помимо основного пакета программы устанавливаются еще другие пакеты, которые требуются для работы данной программы. Они называются зависимостями.

После удаления программы, зависимости не удаляются. Они могут вообще не использоваться в системе или использоваться другими программами. Если пакеты-зависимости не используются другими программами, то такие пакеты можно удалить, чтобы они не занимали место в системе.

Для удаления неиспользуемых пакетов используется команда:

Данная команда автоматически удалит неиспользуемые пакеты.

Заключение

Мы рассмотрели различные способы удаления программ в Ubuntu. В большинстве случаев для удаления программ можно пользоваться Менеджером приложений Ubuntu. Использование командной строки дает дополнительные возможности и зачастую работать через нее быстрее.

Читайте также: