LINUX.ORG.RU

История изменений

Исправление Zubok, (текущая версия) :

Ну и добавлю, что я бы использовал второй метод. И вот почему. допустим ты ставишь пакеты A и B, один с тегом tag-a, а другой — с тегом tag-b. Первым ставишь A, потом B. Допустим, что оба пакета зависят от некоторого пакета C, который приходит сразу же при установке пакета A. Тогда получаем следующую картину установленных пакетов:

manual A - tag-a
manual B - tag-b
auto   C - tag-a (tag-b не проставится, так как этот пакет уже установлен с A).

Если мы просто удалим все пакеты с tag-a, то неизбежно захочет удалиться C, так как такой тег тоже имеет и мы просим удалить его ЯВНО, что неизбежно повлечет за собой желание пакетного менеджера удалить и B, так как важную для него библиотеку настойчиво просят удалить. В дело вступит решатель, который начнет тебе предлагать варианты, чтобы разрулить. В общем, просто создаст геморрой. А вот если дополнительно сказать, что удалить только вручную установленные пакеты c tag-a, то под действие этого паттерна попадет только A, который захочет утащить по зависимостям C, но пакетный менеджер увидит, что он кому-то еще нужен, и не удалит.

Когда же ты попросишь удалить все вручную поставленные пакеты с tag-b, то C снесется по зависимостям, так как он больше никому не нужен.

Исправление Zubok, :

Ну и добавлю, что я бы использовал второй метод. И вот почему. допустим ты ставишь пакеты A и B, один с тегом tag-a, а другой — с тегом tag-b. Первым ставишь A, потом B. Допустим, что оба пакета зависят от некоторого пакета C, который приходит сразу же при установке пакета A. Тогда получаем следующую картину установленных пакетов:

manual A - tag-a
manual B - tag-b
auto   C - tag-a (tag-b не проставится, так как этот пакет уже установлен с A).

Если мы просто удалим все пакеты с tag-a, то неизбежно захочет удалиться C, так как такой тег тоже имеет и мы просим удалить его ЯВНО, что неизбежно повлечет за собой желание пакетного менеджера удалить и B, так как важную для него библиотеку настойчиво просят удалить. В дело вступит решатель, который начнет тебе предлагать варианты, чтобы разрулить. В общем, просто создаст геморрой. А вот если дополнительно сказать, что удалить только вручную установленные пакеты c tag-a, то под действие этого паттерна попадет только A, который захочет утащить по зависимостям C, но пакетный менеджер увидит, что он кому-то еще нужен, и не удалит.

Когда же ты попросишь удалить все вручную поставленные пакеты с tab-b, то C снесется по зависимостям, так как он больше никому не нужен.

Исправление Zubok, :

Ну и добавлю, что я бы использовал второй метод. И вот почему. допустим ты ставишь пакеты A и B, один с тегом tag-a, а другой — с тегом tag-b. Первым ставишь A, потом B. Допустим, что оба пакета зависят от некоторого пакета C, который приходит сразу же при установке пакета A. Тогда получаем следующую картину установленных пакетов:

manual A - tag-a
manual B - tag-b
auto   C - tag-a (tag-b не проставится, так как этот пакет уже установлен).

Если мы просто удалим все пакеты с tag-a, то неизбежно захочет удалиться C, так как такой тег тоже имеет и мы просим удалить его ЯВНО, что неизбежно повлечет за собой желание пакетного менеджера удалить и B, так как важную для него библиотеку настойчиво просят удалить. В дело вступит решатель, который начнет тебе предлагать варианты, чтобы разрулить. В общем, просто создаст геморрой. А вот если дополнительно сказать, что удалить только вручную установленные пакеты c tag-a, то под действие этого паттерна попадет только A, который захочет утащить по зависимостям C, но пакетный менеджер увидит, что он кому-то еще нужен, и не удалит.

Когда же ты попросишь удалить все вручную поставленные пакеты с tab-b, то C снесется по зависимостям, так как он больше никому не нужен.

Исправление Zubok, :

Ну и добавлю, что я бы использовал второй метод. И вот почему. допустим ты ставишь пакеты A и B, один с тегом tag-a, а другой — с тегом tag-b. Первым ставишь A, потом B. Допустим, что оба пакета зависят от некоторого пакета C, который приходит сразуже при установке пакета A. Тогда получаем следующую картину установленных пакетов:

manual A - tag-a
manual B - tag-b
auto   C - tag-a (tag-b не проставится, так как этот пакет уже установлен).

Если мы просто удалим все пакеты с tag-a, то неизбежно захочет удалиться C, так как такой тег тоже имеет и мы просим удалить его ЯВНО, что неизбежно повлечет за собой желание пакетного менеджера удалить и B, так как важную для него библиотеку настойчиво просят удалить. В дело вступит решатель, который начнет тебе предлагать варианты, чтобы разрулить. В общем, просто создаст геморрой. А вот если дополнительно сказать, что удалить только вручную установленные пакеты c tag-a, то под действие этого паттерна попадет только A, который захочет утащить по зависимостям C, но пакетный менеджер увидит, что он кому-то еще нужен, и не удалит.

Когда же ты попросишь удалить все вручную поставленные пакеты с tab-b, то C снесется по зависимостям, так как он больше никому не нужен.

Исправление Zubok, :

Ну и добавлю, что я бы использовал второй метод. И вот почему. допустим ты ставишь пакет A, B, один с тегом tag-a, а другой с тегом tag-b. Первым ставишь A, потом B. Допустим, что оба пакета зависят от некоторого пакета C, который приходит сразуже при установке пакета A. Тогда получаем следующую картину установленных пакетов:

manual A - tag-a
manual B - tag-b
auto   C - tag-a (tag-b не проставится, так как этот пакет уже установлен).

Если мы просто удалим все пакеты с tag-a, то неизбежно захочет удалиться C, так как такой тег тоже имеет и мы просим удалить его ЯВНО, что неизбежно повлечет за собой желание пакетного менеджера удалить и B, так как важную для него библиотеку настойчиво просят удалить. В дело вступит решатель, который начнет тебе предлагать варианты, чтобы разрулить. В общем, просто создаст геморрой. А вот если дополнительно сказать, что удалить только вручную установленные пакеты c tag-a, то под действие этого паттерна попадет только A, который захочет утащить по зависимостям C, но пакетный менеджер увидит, что он кому-то еще нужен, и не удалит.

Когда же ты попросишь удалить все вручную поставленные пакеты с tab-b, то C снесется по зависимостям, так как он больше никому не нужен.

Исходная версия Zubok, :

Ну и добавлю, что я бы использовал второй метод. И вот почему. допустим ты ставишь пакет A, B, один с тегом tag-a, а другой с тегом tag-b. Первым ставишь A, потом B. Допустим, что оба пакета зависят от некоторого пакета C, который приходит сразуже при установке пакета A. Тогда получаем следующую картину установленных пакетов:

manual A - tag-a

manual B - tag-b

auto C - tag-a (tag-b не проставится, так как этот пакет уже установлен и действие тега tag-b на него не распространится).

Если мы просто удалим все пакеты с tag-a, то неизбежно захочет удалиться C, так как такой тег тоже имеет и мы просим удалить его ЯВНО, что неизбежно повлечет за собой желание пакетного менеджера удалить и B, так как важную для него библиотеку настойчиво просят удалить. В дело вступит решатель, который начнет тебе предлагать варианты, чтобы разрулить. В общем, просто создаст геморрой. А вот если дополнительно сказать, что удалить только вручную установленные пакеты c tag-a, то под действие этого паттерна попадет только A, который захочет утащить по зависимостям C, но пакетный менеджер увидит, что он кому-то еще нужен, и не удалит.

Когда же ты попросишь удалить все вручную поставленные пакеты с tab-b, то C снесется по зависимостям, так как он больше никому не нужен.