TransWikia.com

Как удалить пакет, установленный из deb файла?

Stack Overflow на русском Asked by muturgan on August 30, 2021

Скачал с официального сайта deb пакет для VirtualBox 6 версии.
Поставил.
В консоли появилась команда virtualbox.
Оказалось, что для работы мне нужна 5 версия.
Пытаюсь удалить установленную утилиту:

sudo apt remove --purge virtualbox

А мне говорят:

Package 'virtualbox' is not installed, so not removed

Как мне удалить данную утилиту?

2 Answers

Смотрим откуда запускается команда:

whereis virtualbox

Узнаем имя пакета

dpkg -S fullpath где fullpath полный путь к исполняемому файлу (взять из результата предыдущей команды)

Удаляем используя имя пакета

dpkg --remove packagename где packagename имя пакета (взять из результата предыдущей команды)

Correct answer by Alexey R. on August 30, 2021

дополнительные пути определения имени (помимо предложенного в соседнем ответе):

  1. уже по имени файла (если оно формировалось по принятым правилам и не изменялось впоследствии) можно определить имя пакета: это все символы до первого символа _. например, если имя файла — virtualbox-6.1_6.1.12-139181~Debian~buster_amd64.deb, то имя пакета, содержащегося внутри — virtualbox-6.1.

  2. если файл подвергался переименованию, но пока не удалён, можно узнать имя содержащегося в нём пакета, например, с помощью программы dpkg-deb:

    $ dpkg-deb -f virtualbox-6.1_6.1.12-139181~Debian~buster_amd64.deb Package
    virtualbox-6.1
    
  3. если файл не сохранился, но известно, что имя установленного пакета содержит определённую строку (например, "box"), то можно поискать в базе dpkg частичное совпадение:

    $ dpkg -l '*box*'
    Desired=Unknown/Install/Remove/Purge/Hold
    | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
    |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
    ||/ Name                        Version                 Architecture Description
    +++-===========================-=======================-============-===========
    ii  busybox                     1:1.30.1-4              amd64        Tiny utilit
    ii  virtualbox-6.1              6.1.12-139181~Debian~bu amd64        blablablabl
    ...
    

впрочем, и программам apt/apt-get можно передавать не только точное имя пакета, но и маску, под которую подпадает имя:

$ sudo apt-get remove 'virtualbox*'

Answered by aleksandr barakin on August 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP