Я попытался удалить установленный мной PCL 1.7.2 вручную (без sudo apt-get), но когда я попытался удалить их с помощью команды apt-get remove , терминал показал мне, что эти файлы нельзя удалить, потому что они не были установлены в первое место.
- Как я могу проверить, правильно ли были установлены файлы, если я установил файлы с помощью cmake
- Как я могу удалить файл, который я установил вручную с помощью cmake ?
- Как файлы, установленные с использованием apt-get vs cmake разные?
Примечание — аналогичный вопрос, но с использованием apt-get remove: Как можно полностью удалить пакет?
задан Community 13 April 2017 в 15:23
4 ответа
Резюме / TL; DR
Выполненный make uninstall (или sudo make uninstall , если необходимо было работать sudo make install ) от каталога сборки, куда Вы работали make и make install . В сборках, настроенных с CMake, каталог сборки обычно является не исходным каталогом верхнего уровня. Но помимо этого, удаляя программу или библиотеку, сборка которой была настроена с CMake, не отличается от удаления других программ или библиотек, которые Вы создали из исходного кода.
Как удалить программу в Ubuntu
Некоторые поддержки программного обеспечения make install но нет make uninstall , в этом случае Вам, вероятно, придется исследовать, какие шаги сделаны когда make install выполняется, или консультируйтесь с документацией программного обеспечения, чтобы видеть, указывает ли она, какие файлы она помещает где. Однако PCL, действительно кажется, поддерживает удаление через make uninstall .
Установка и удаление с cmake и make
CMake является системой для конфигурирования сборки. После того, как настроенный, сборка должна обычно выполняться с помощью некоторой системы сборки. В подобных Unix операционных системах, таких как Ubuntu, сборки, настроенные с CMake почти всегда, используют Сделать систему сборки.
Программное обеспечение Most, которое использует CMake, требует, чтобы Вы создали отдельный каталог сборки, обычно называемый build , и выполненный cmake команда из того каталога. Каталог сборки заполняется с файлами, необходимыми для выполнения сборки. Затем Вы работаете make в том каталоге. Необходимо создать build каталог везде, где инструкции для программного обеспечения Вы создаете, советует для помещения его. Обычно это будет подкаталог каталога дерева источника верхнего уровня (каталог высшего уровня, созданный, когда Вы распаковали источник tarball или вызвали систему управления версиями как git или bzr загружать код).
Когда Вы работаете make , это находит и читает make-файл — обычно называемый Makefile — это содержит список целей, инструкции для создания целей, и как цели зависят друг от друга. Обычно цель по умолчанию, которую Вы не должны указывать, создает программное обеспечение, и install цель, которую действительно необходимо указать, устанавливает его.
Много make-файлов содержат дополнительные цели. Наиболее распространенные:
- A check или test цель, которая тестирует программное обеспечение, которое было создано. make check или make test может быть выполнен прежде make install , и обычно желательно сделать так.
- uninstall цель, которая удаляет программное обеспечение путем удаления файлов, созданных путем выполнения make install . (Иногда make uninstall имеет другое поведение также, для отмены действий make install кроме копирования файлов, но обычно это — просто вопрос удаления файлов.) Не все программное обеспечение имеет uninstall цель, но в эти дни большинство делает.
- A clean будьте нацелены удалять файлы из источника или каталога сборки, которые были созданы во время сборки. Почти все make-файлы имеют это.
Существует несколько других относительно общих целей как distclean и realclean это менее относится к CMake. Однако полезно знать это, если Вы настроены сборка путем запущения настраивать скрипта ( ./configure ) вместо CMake, затем конфигурация может обычно стираться путем выполнения make distclean .
Как полностью удалить пакет с зависимостями в Linux, использующим пакетный менеджер apt.
Разработчик, использующий CMake, должен написать код для генерации uninstall цель — CMake не делает этого автоматически. Однако как многие разработчики, разработчики PCL сделали это и make uninstall должен работать. Посмотрите следующий раздел («Пошаговый Пример») для деталей.
Удалять программное обеспечение, make-файл которого поддерживает uninstall цель:
- Каталог, из которого Вы работали make install (или sudo make install ) каталог, к которому необходимо возвратиться, для выполнения make uninstall (или sudo make uninstall ). Для программного обеспечения, которое не использует CMake, это обычно — каталог верхнего уровня исходного дерева. Но для программного обеспечения, которое использует CMake, это обычно не — вместо этого, это обычно — отдельный каталог сборки.
- При установке программного обеспечения вручную из источника, лучше сохранять исходный код и все файлы созданными во время сборки, таким образом, можно удалить программное обеспечение легко. Поэтому, после того как Вы работали make install , лучше не работать make clean (ни вручную удалить любые файлы).
- Однако, если Вы действительно работали make clean или удалите исходный код программного обеспечения или каталог сборки, все еще обычно возможно удалить успешно. Просто выполните те же шаги сборки, с той же самой версией программного обеспечения, настроенного и созданного с теми же опциями (или ни один, если Вы не настроили его), чтобы перейти к сути дела, куда можно работать make uninstall (или sudo make uninstall ). Для некоторого программного обеспечения Вам, вероятно, на самом деле даже придется работать make install снова сначала, который будет обычно перезаписывать файлы от предыдущей сборки. Затем выполненный make uninstall (или sudo make uninstall ) как обычно.
Когда существует нет uninstall цель и Вы должны удалить программное обеспечение, необходимо будет исследовать, какие файлы это создает. Можно работать make -n install показать Вам, чем приняты меры make install . Вы не должны работать make -n install с sudo (принятие начальной буквы make не потребовал sudo ). Когда make передается -n флаг, это выполняет пробный прогон, который обычно ничего не должен изменять, и поэтому не должен должен быть делать что-либо требующее, поднял полномочия.
Пошаговый пример: PCL 1.7.2
Полезно дать пример, и я мог бы также использовать программное обеспечение, которое Вы на самом деле пытаетесь удалить как тот пример. PCL 1.7.2, действительно кажется, использует cmake генерировать uninstall цель в ее make-файле, и поэтому должна поддерживать make uninstall .
В дополнение к исследованию uninstall_target.cmake.in , Я проверил что сгенерированный Makefile содержит uninstall цель в 64-разрядной системе тестирования Ubuntu 16.04. Однако я не закончил создавать PCL, таким образом, я могу установить его и затем протестировать sudo make uninstall . (Моя тестовая машина является очень медленной, и PCL является большим.) Я планирую обновить это с дополнительной информацией, когда я получаю шанс сделать так, когда-то после того, как сборка закончилась.
При установке PCL 1.7.2 Вы, вероятно, сделали что-то вроде этого:
cd /usr/local/src wget https://github.com/PointCloudLibrary/pcl/archive/pcl-1.7.2.tar.gz tar xf pcl-1.7.2.tar.gz cd pcl-pcl-1.7.2 mkdir build cd build cmake .. make -j2 sudo make -j2 install
Это базируется (свободно) на официальных инструкциях, но конечно не может быть точно, что Вы сделали. В частности, я загрузил и распаковал pcl-1.7.2.tar.gz в /usr/local/src . При помещении его где-то в другом месте затем, необходимо будет заменить /usr/local/src с тем везде, где Вы действительно помещали его.
Изменение /usr/local/src при необходимости необходимо смочь удалить программное обеспечение путем выполнения:
cd /usr/local/src/pcl-pcl-1.7.2/build sudo make uninstall
Даже если Вы работали make -j2 install чтобы позволить нескольким операциям происходить одновременно, не должно быть никакой потребности в Вас передать -j2 отметьте, когда Вы будете работать make uninstall .
Источник: askubuntu.ru
Как удалить пакет Ubuntu
Установка и удаление программ одна из самых важных вещей для пользователя компьютера. Поскольку нам нужно как нибудь получать новые, нужные программы, а также удалять лишние. Но удаление пакетов в Ubuntu имеет некоторые тонкости. После удаления могут остаться зависимости, пакеты установленные, как рекомендованные, а также конфигурационные файлы.
В этой статье мы разберем как удалить deb пакет Ubuntu, при чем удалить чисто, так, чтобы после него не осталось следов в системе. Также поговорим о полном удалении PPA, поскольку много пакетов, которых нет в официальных репозиториях мы устанавливаем из PPA.
Как удалить пакет Ubuntu
Самый простой способ удалить пакет Ubuntu, это воспользоватся одной из графических утилит, поставляемых специально для этого, например Synaptic или Центр приложений Ubuntu. По сути это делается в пару кликов. Сначала рассмотрим порядок действий в Центре приложений Ubuntu.
Запустить центр приложений вы можете из панели значков Unity:
Список всех установленных пакетов находится на вкладке Установлено, здесь приложения рассортированы по категориям:
Чтобы удалить пакет Ubuntu, достаточно кликнуть по нему левой кнопкой мыши, и когда появляться доступные действия нажать кнопку Удалить:
Для завершения нужно будет подтвердить удаление и ввести пароль.
Пакет удален, но не совсем так, как нам хотелось бы. Но об этом позже.
Дальше рассмотрим пакетный менеджер Synaptic. Это как ни как стороннее программное обеспечение, но многие его используют из-за большого функционала и удобного интерфейса. Если программа еще не установлена, ее нужно установить с помощью центра приложений или выполнив в терминале:
sudo apt install synaptic
Запустить программу можно через терминал, выполнив команду:
Посмотреть установленные пакеты вы можете выбрав вкладку состояние, а затем выбрав Установленные:
Удалить deb ubuntu вы можете просто нажав правой кнопкой мыши и в контекстном меню на нужном пакете и выбрав отметить для удаления или отметить для полного удаления:
Программа покажет, какие еще пакеты будут удалены, это те пакеты, которые зависят от нашего пакета:
Теперь, чтобы завершить удаление, осталось нажать кнопку Применить:
Теперь программа покажет какие пакеты будут удалены. И пойдет процесс удаления:
Просто удаление и полное удаление отличается только тем, что при полном удалении удаляются конфигурационные файлы. Но проблема этих инструментов в том, что пакеты установленные как зависимости и рекомендованные к программе не удаляются и остаются в системе. Такое поведение наблюдается как в Synaptic, так и в Центре приложений Ubuntu. Поэтому мы переходим к описанию самого гибкого способа — удаление пакетов Ubuntu в терминале.
Как удалить пакет Ubuntu в терминале
В новых версиях Ubuntu для управления пакетами, а в том числе и удаления можно использовать новый менеджер пакетов — apt. Команда удаления выглядит таким образом:
sudo apt remove имя_пакета
Будет выполнено полное удаление пакета, включая конфигурационные файлы и зависимости, только рекомендованные программы останутся. Если вы хотите использовать apt-get чтобы удалить deb ubuntu, то порядок действий немного другой. Для обычного удаления пакета выполните:
sudo apt-get remove имя_пакета
Для удаления пакета вместе с его конфигурационными файлами, выполните:
sudo apt-get purge имя_пакета
А чтобы, также удалить зависимости, установленные вместе с пакетом, нужно после одной из предыдущих команд выполнить:
sudo apt autoremove
Будут удаленны не только явно указанные зависимости, но и программы установленные как рекомендованные.
Ну с основами разобрались, теперь перейдем к более сложным ситуациям. Что если вы устанавливали программу из deb файла и теперь не знаете точно, как называется ее пакет, чтобы удалить?
Это очень просто узнать, например по исполняемому файлу, допустим исполняемый файл программы TimeShift находится по адресу /usr/bin/timeshift, теперь узнаем ее пакет:
sudo dpkg -S /usr/bin/timeshift
Как видите, пакет так и называется — timeshift. Теперь можно удалить программу Ubuntu, одним из выше описанных способов.
Очень часто мы устанавливаем недостающее нам программное обеспечение из PPA, но не все эти пакеты нужны нам на протяжении долгого времени, а при обновлении системы, могут даже вызвать ошибки. Так как же удалить все пакеты установленные из PPA? Для этого есть специальная утилита: ppa-purge.
Если она еще не установлена, устанавливаем командой:
sudo apt install ppa-purge
Теперь, чтобы удалить все пакеты установленные из определенного ppa используйте:
sudo ppa-purge -i ppa:владелец_ppa/имя_ppa
Обратите внимание на ppa:владелец_ppa/имя_ppa — обычно в таком формате записываются все PPA: протокол:владелец/имя.
Узнать список репозиториев можно в программе источники приложений:
Такой командой можно одним махом удалить пакеты ubuntu, установленные из ppa:
find /etc/apt/sources.list.d -type f -name «*.list» -print0 |
while read -d $’