Поставил пакет, он потянул за собой кучу других... Как мне удалить этот пакет со всеми зависимостями, кроме тех, которые используются другими пакетами?
> Так что лучше тот пакетик не трогай раз у него столько зависимостей.
Почему это -- не трогай? Поставил я пакет foo, которому нужны пакеты bar, baz, .... Наигрался я с foo, хочу его удалить. А заодно -- те пакеты, которые были нужны только ему. Как так -- не трогай?
> АФАИК в rpm такого механизма нет. вива deb! (и tar.gz =))
Так а в чем сложность то? Надо найти все зависимости удаляемого пакета, и посмотреть от каждой зависимости ещё кто-нибудь зависит или нет, если нет удаляем пакет ко всем @#$%^&.
>Так а в чем сложность то? Надо найти все зависимости удаляемого пакета, и посмотреть от каждой зависимости ещё кто-нибудь зависит или нет, если нет удаляем пакет ко всем @#$%^&.
всёравно придётся вручную просматривать все пакеты которые пытается удалить вышеприведённый скрипт так как среди зависимостей foo может оказаться нужный пакет поставленный нами явно а не автоматом. В deb (или наверное надо говорить в dpkg) работает система auto installed пакетов и позволяет легко их удалить. Ещё в вашем методе не учитываются зависимости зависимостей (и т.д.) удаляемого пакета. ведь бывает что ставится целое дерево пакетов а не один уровень зависимостей.
>Поставил пакет, он потянул за собой кучу других... Как мне удалить этот пакет со всеми зависимостями, кроме тех, которые используются другими пакетами?
Пользуйся ястом и головой, когда он будет прелагать варианты решения зависимостей.
> всёравно придётся вручную просматривать все пакеты которые пытается удалить вышеприведённый скрипт так как среди зависимостей foo может оказаться нужный пакет поставленный нами явно а не автоматом. В deb (или наверное надо говорить в dpkg) работает система auto installed пакетов и позволяет легко их удалить.
Т.е., на сколько я понял, dpkg отслеживает какие пакеты были установлены руками, а какие как удовлетворение зависимостей? А что в rpm такого нет?
> Ещё в вашем методе не учитываются зависимости зависимостей (и т.д.) удаляемого пакета. ведь бывает что ставится целое дерево пакетов а не один уровень зависимостей.
Ну это не проблема... Можно отстреливать рекурсивно...
Вопрос: как получить список зависимостей? rpm -qR выдает кроме пакетов ещё и зависимости в виде файлов. Как узнать в каких пакетах они лежат? Пробовал -qf, но в этом случае нужно указывать полный путь к файлу... А как по одному имени файла определить пакет?
Ещё по deb есть вопрос: в каком-то менеджере есть опция удалить пакет с конфигами (да???), а как он узнает, что в ~/.foo они лежат? Или это то же в deb прописано? Такое есть в rpm?
>Ещё по deb есть вопрос: в каком-то менеджере есть опция удалить пакет с конфигами (да???), а как он узнает, что в ~/.foo они лежат? Или это то же в deb прописано? Такое есть в rpm?
конфиги в ~/ не будут затронуты, речь идёт о конфигах в /etc созданных/распакованных во время установки пакета. (хотя впринципе они могут быть не только в /etc/, просто некоторые файлы в пакете помечены как конфиги)
При обычном apt-get remove конфиги удалены не будут. Если же сделать apt-get --purge remove то пакет удалится с конфигами.