Как полностью удалить BOOST 1.71

Я пытаюсь полностью удалить 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 и попытался удалить его оттуда, но получил следующее предупреждение неработающий пакет :

enter image description here

Поэтому я подумал, что что-то сломалось. :

sudo apt-get update --fix-missing
udo apt-get install -f

но ничего ... libboost_thread все еще там.

Как убедиться, что все удалено полностью?

0
задан 17 July 2021 в 01:59

1 ответ

Примечание об использовании плохих методов

Выполнение команд типа

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
0
ответ дан 28 July 2021 в 11:17

Другие вопросы по тегам:

Похожие вопросы: