LINUX.ORG.RU

[Debian] Вопрос об aptitude

 


1

4

Ставлю я метапакет xfce4. Ну, дело понятное, он тянет, допустим, 20 пакетов. Aptitude разруливает зависимости и все такое.

Но вот я решаю удалить метапакет xfce4 со всем, что он за собой потянул. Но удаляется уже не 20 пакетов, как ставилось, а только 15.

У меня сейчас, после «aptitude purge xfce4 xfce-goodies», установленными (притом автоматически установленными, iA) остались thunar, thunar-data, thunar-volman, hal.

Какого черта?

Deleted
Ответ на: комментарий от snoopcat

Да, ТСу нужно, чтобы было так: устанавливаешь пакет - устанавливается пакет и 5 пакетов по зависимостям, удаляешь пакет - удаляется пакет и 5 пакетов по зависимостям.

А по описанным причинам выходит ад и содомия: часть зависимостей после удаления пакета не удаляется, а aptitude рассуждает примерно так: «Ололо! Да это же оконный менеджер! Ну зачем его удалять? Пригодится! Ну и что, что тут уже 100500 оконных менеджеров установлено!» Я считаю такую политику пакетного менеджера крайне ублюдочной.

Deleted
()

Часть поставленного могла быть метапакетами.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от Deleted

Какие ты знаешь типы зависимостей в Debian? Это тебе не RPM-based с их жесткими зависимостями by design. Цитата: «Понятие зависимостей в Debian и его производных отличается от принятого в большинстве других дистрибутивов (и вообще ОС Unix-семейства). Обычно различаются только
обязательные (или “жесткие”) зависимости, без удовлетворения которых установка и работа программы невозможна (например, зависимость от системных библиотек), и зависимости необязательные (”мягкие”), без разрешения которых программа сохраняет работоспособность, но удовлетворение их добавляет ей функциональности (например, зависимость links или mc от сервиса консольной мыши gpm).
В Debian зависимости имеют несколько градаций: обязательные (depends), настоятельно рекомендуемые (recommends), рекомендуемые умеренно настойчиво (suggests), конфликтующие (conflicts). Первая градация - это обычные “жесткие” зависимости. С последними тоже понятно - это, так сказать, анти-зависимости. Ну а настоятельно рекомендуемые и рекомендуемые просто - это две разновидности “мягких” зависимостей. То есть первая категория как бы более нужная, нежели вторая. Впрочем, таково субъективное мнение майнтайнера данного пакета - вполне возможно, что у пользователя будут иные потребности.»
Пруф: http://alv.me/?p=240

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от melkor217

Лол, ну это они как бичи сделали. Два эмулятора терминала тоже будут конфликтовать?

Два эмулятора терминала, предоставляющие разные версии одного и того же бинарника, несовместимые между собой - да.

Axon ★★★★★
()

Читаю тред и всё меньше понимаю, за что apt называют самым вменяемым пакетным менеджером. И всё больше люблю свой pacman. :-)

Axon ★★★★★
()
aptitude purge ~'c'
Deleted
()
Ответ на: комментарий от melkor217

Плохие новости, дружок. Aptitude делает это автоматически :(

ЕМНИП не всегда. Лучше руками, команду я написал чуть выше.

Deleted
()
Ответ на: комментарий от Deleted

Всегда. Написанное тобой делает немножко другое. Оно вычищает конфиги всех удалённых пакетов. Кстати, apt так не умеет. Если наудаляешь без чистки конфигов, потом хрен найдёшь :3

melkor217 ★★★★★
()
Ответ на: комментарий от Axon

А теперь обобщим - могут ли два пакета, предоставляющих один и тот же виртуальный пакет, быть установленными вместе?

melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

могут ли два пакета, предоставляющих один и тот же виртуальный пакет, быть установленными вместе?

В Арче виртуальные пакеты организованы нормально, а не через жопу, поэтому обычно такой проблемы не возникает, так что не знаю.

Axon ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Ничего такого не подумай, но тут уже человек десять любителей основ и мануалов вылезло, причём бóльшая часть уже после решения проблем. Сорвался :(

melkor217 ★★★★★
()
Ответ на: комментарий от Axon

> В Арче виртуальные пакеты организованы нормально, а не через жопу,

Спасибо, я уже понял что ты фанатик.

поэтому обычно такой проблемы не возникает


Если это в арче невозможно by design - обоснуй. А твои догадки тут никому не нужны.

не знаю.


- скромно прибавил ты по теме, побросавшись говном. Вспомни-ка пару виртуальных пакетов, покажу тебе фокус с пакманом.

melkor217 ★★★★★
()
Ответ на: комментарий от snoopcat

> а причём тут два эмулятора терминала? O_____O

Они оба предоставляют виртуальный пакет. x-terminal-emulator или что-то в этом духе. Если два пакета, предоставляющих один виртуальный пакет, можно установить вместе, то в арче скорее всего можно будет воспроизвести это «странное» поведение.

melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

Всегда. Написанное тобой делает немножко другое. Оно вычищает конфиги всех удалённых пакетов.

Хм, что-то меня опять переглючило...

Deleted
()
Ответ на: комментарий от melkor217

Не сомневаюсь. Но почему в deb-системах мне достаточно набрать aptitude remove packageName, а в Арче для этого нужен какой-то хитрый скрипт? Это что - и есть KISS?

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от Axon

Можешь и дальше петь песни про свой арч, костыли к нему и как там все гладко.

Gunnerua
()
Ответ на: комментарий от LongLiveUbuntu

На всякий случай: я не только уже третий год на Debian сижу, но даже руководство пользователя aptitude прочел. Не надо мне очевидные вещи парить, которые притом к сабжу даже не напрямую относятся.

Deleted
()
Ответ на: комментарий от Deleted

Напрямую. Если б ты знал про тамошнюю систему зависимостей и сделал aptitude show thunar, скажем, то такого вопроса ты бы вообще не задал.

LongLiveUbuntu ★★★★★
()

одно из возможных объяснений:
когда ты ставил xfce4 поставились пакеты, которые ранее были рекомендованными к чему-то другому, но не установленными. при удалении xfce4 они уже не нужны по жестким зависимостям, но продолжают быть нужными по мягким, поэтому и не удаляются.

maloi ★★★★★
()
Ответ на: комментарий от maloi

Тред не читай @ Сразу отвечай

Этот вариант был бы правдоподобен, если бы в настройках aptitude не была запрещена установка рекомендованных пакетов. О чем в треде говорилось уже раза 4 точно.

Deleted
()
Ответ на: комментарий от maloi

Еще до создания этой темы, мой друг. А вывод красуется на первой странице, да.

Deleted
()
Ответ на: комментарий от maloi

Мой друг, открой эмулятор терминала, набери aptitude, нажми Enter. Затем С-T для меню, пять раз нажми строчку вправо, затем - стрелочку вниз. Ты увидишь пункт «Предпочтения». А затем вдумчиво прочти пояснение к настройке «Автоматически удалять неиспользуемые пакеты».

Deleted
()
Ответ на: комментарий от melkor217

Если это в арче невозможно by design - обоснуй.

Это возможно, но так не происходит. Потому что в пакетах просто грамотно прописаны зависимости.

Вспомни-ка пару виртуальных пакетов, покажу тебе фокус с пакманом.

Поскольку в природе такая ситуация не встречается, проверил сам, создав несколько пустых пакетов с такой схемой зависимостей. Действительно, пакет, предоставляющий метапакет, от которого зависит другой пакет, не удаляется, даже если есть другой пакет, предоставляющий этот метапакет. Пойду, пожалуй, писать багрепорт.

Axon ★★★★★
()
Ответ на: комментарий от Axon

> Это возможно, но так не происходит. Потому что в пакетах просто грамотно прописаны зависимости.

Дубль два. Твои догадки никому не нужны. Я три года пользуюсь дебианом, и все три года думал что такого не происходит. Но почему-то я не кричал об этом на форумах.

melkor217 ★★★★★
()
Ответ на: комментарий от Axon

> Поскольку в природе такая ситуация не встречается, проверил сам, создав несколько пустых пакетов с такой схемой зависимостей. Действительно, пакет, предоставляющий метапакет, от которого зависит другой пакет, не удаляется, даже если есть другой пакет, предоставляющий этот метапакет. Пойду, пожалуй, писать багрепорт.

Тут просто какая-то другая концепция пакетных менеджеров нужна -_-

melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

Я, конечно, разработкой пакетных менеджеров не занимаюсь, но сдается мне, что какая-нибудь реализация снапшотов спасет отца русской демократии. Мол, не было до установки тех-то и тех-то пакетов в системе неудовлетворенных зависимостей - так пускай и удаляет их пакетный менеджер все без разбору, а не начинает умничать.

Deleted
()
Ответ на: комментарий от Deleted

Ну или пересмотреть принцип виртуальных пакетов. Либо для автоустановленных пакетов запоминать, зачем их установили. Варианты есть.

melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

Тут просто какая-то другая концепция пакетных менеджеров нужна -_-

Нет, тут нужна просто дополнительная проверка. Сейчас проверяется только, нет ли метапакета, предоставляемого пакетом, установленным как зависимость от удаляемого, среди зависимостей других установленных пакетов. Если после этого ещё проверить, нет ли среди установленных пакетов ещё одного, предоставляющего этот же метапакет и, таким образом, удовлетворяющего эту зависимость, то можно принять однозначное решение о возможности удаления одного из них.

Axon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.