Я пытаюсь полностью удалить Boost 1.71
. Мне нужно перейти на предыдущую рабочую библиотеку, начиная с версии Boost 1.71
Я получаю 'boost :: placeholder' не был объявлен
, поэтому я хочу перейти на Boost 1,66
.
После ввода на терминале ldconfig
у меня остался только один экземпляр:
emanuele@emanuele-pc:~$ ldconfig -p | grep libboost
libboost_thread.so.1.71.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libboost_thread.so.1.71.0
Я попытался удалить его, используя:
sudo rm -f /lib/x86_64-linux-gnu/libboost_*
sudo rm -rf /lib/x86_64-linux-gnu/libboost_*
Но все же libboost_thread
есть. .
Итак, я попытался получить доступ через sudo synaptic
и попытался удалить его оттуда, но получил следующее предупреждение неработающий пакет
:
Поэтому я подумал, что что-то сломалось. :
sudo apt-get update --fix-missing
udo apt-get install -f
но ничего ... libboost_thread
все еще там.
Как убедиться, что все удалено полностью?
Выполнение команд типа
sudo rm -f /lib/x86_64-linux-gnu/libboost_* sudo rm -rf /lib/x86_64-linux-gnu/libboost_*
абсолютно неправильно. НЕ ДЕЛАЙТЕ ЭТОГО!
Такие библиотечные файлы контролируются APT, вы должны попросить APT сначала удалить такие файлы.
Если вы скомпилировали эти библиотеки вручную, значит, вы сделали это неправильно. Они должны быть помещены в префикс /usr/local/lib
. Он не контролируется APT.
'boost::p laceholders'
На самом деле это пространство имен используется как в Boost 1.67, так и в 1.71, которые поставляются с вашим Ubuntu 20.04 LTS из официальных репозиториев. Для успешной разработки на основе Boost необходимо установить следующие пакеты разработки:
Для уже установленной 1.71 -
sudo apt-get install libboost1.71-all-dev --reinstall
Для возможной альтернативы 1.67 -
sudo apt-get install libboost1.67-all-разработчик
Если вы действительно понимаете, что вы пытаетесь сделать, то прочитайте ниже.
Вы можете использовать следующую однострочник для удаления ВСЕХ вхождений Boost 1.71:
sudo apt autopurge $(dpkg -l | grep boost | grep 1.71 | awk '{print $2}')
Чтобы удалить только libboost_thread.so.1.71.0
, вы должны выполнить:
sudo apt purge libboost-thread1.71.0
, если вышеуказанная команда не удалась, затем перейдите на более низкий уровень и выполните как резервный
sudo dpkg --purge --force-all libboost-thread1.71.0
,а затем выполните
sudo apt-get install -f
sudo dpkg --configure -a