Debian.pro

Блог для пользователей и администраторов Debian


Удаление, переустановка, откат версии отдельного пакета в debian/ubuntu.

Согласитесь, у вас были ситуации, когда хотелось удалить отдельный пакет с целью его переустановки или ещё зачем-то.
Пакетная система в debian устроена так, что удалить пакет зачастую сложно, частенько он может унести за собой полсистемы. А откатить его хочется. Или переустановить.
В общем, сегодня paulus мне напомнил (а точнее рассказал новый способ) сделать это быстро и зачастую безболезненно, да. Как обычно, чтобы не забыть — записываю.
Само собой, «мопед не мой, что-нибудь поломаете — сами виноваты» и всё такое. В общем думать всё же надо при подобных операциях. Например, не стоит сносить что-то вроде glibc =)

Снесем пакет:
root@debian:~# dpkg -P --force-all nginx

Поставим его определенную версию:
root@debian:~# apt-get install nginx=0.6.76

Просмотреть список доступных вам к установке версий пакета можно командой:
root@debian:~# apt-cache policy nginx
Где nginx следует заменить на имя нужного вам пакета.

Ну и не забываем про магический каталог /var/cache/apt, в котором лежат все пакеты, которые apt/aptitude когда либо качали с сети. Если вы его не чистите — то старую версию пакета сможете найти там.


Комментарии (10):

  1. cru5ade :

    А у меня другой вопрос, вот допустим я прогнал aptitude update и среди списка рекомендуемого программного обеспечения я хочу обновить только apache/ как это сделть, не устанавливая кучу других программ?

  2. aptitude install package1 package2 packageN apache*
    Обновить пакет, если он требует новые версии зависимостей без обновления зависимостей — не получится

  3. Paul :

    Установка пакета с определенной ветки:
    # aptitude install nginx/experimental

  4. Умху, можно использовать опцию -t ещё, чтобы установить из определенного репозитория.

  5. cru5ade :

    класс, спасибо!

  6. Ubuntu:
    sudo apt-get install ppa-purge
    sudo ppa-purge xorg-edgers #for example
    Сбивает пакеты до версии дистрибутива.

  7. dnua :

    apt-get remove — - purge имя_пакета

    Куда уж проще?

  8. Vlad :

    Зависимости сносятся тоже.

  9. Kixiro :

    Вот что меня спасло: dpkg -P —force-all
    Один негодяй пытался поставить пакет не из того релиза, было видимо куча зависимостей на удаление, ну естественно всё было отменено в процессе установки и при очередном apt-get upgrade выходило следующее сообщение: apt-get -f install, а там на удаление список пакетов на весь экран :)

  10. =)
    ага, полезняшка. Тоже долго без неё в своё время страдал.

Написать комментарий