LINUX.ORG.RU

Как правильно поставить и удалить зависимости пакета?

 ,


0

1

Есть собственные пакеты, например dwm. Всегда ставил так:

# install dep
${CMD_APT_INSTALL} build-essential \
                   libx11-xcb-dev \
                   libxcb-res0-dev \
                   libxft-dev \
                   libxinerama-dev

Думаю: «негоже это!». Есть же какой-то правильный способ! Погуглил и нашел функцию:

apt-install-depends() {
    local pkg="$1"
    apt-get install -s "$pkg" \
        | sed -n \
              -e "/^Inst $pkg /d" \
              -e 's/^Inst \([^ ]\+\) .*$/\1/p' \
        | xargs apt-get install
}

Но что-то она не работает

Нужно и обратное: удалил пакет и нужно удалить все зависимости, которые относятся именно к этому пакету т.е не удалять зависимости, которые нужны другим пакетам

★★★

Тащем-то это работа пакетного менеджера, сам apt прекрасно с этим справляется. Просто по-умолчанию удалять пакеты с отсутствующими родителями считается не-комильфо. Такие пакеты маркируются, как ненужные и удаляются джуно-командой apt autoremove.

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

не удаляет ничего. Что, все остальные пакеты кому-то другому нужны?

Да. Либо установлены вручную. Есть даже команда какая-то для выяснения, по какой причине пакет считается нужным (т.е. либо он сам установлен вручную, либо он зависимость от кого-то, кто установлен вручную, возможно по цепочке).

firkax ★★★★★
()

удалил пакет и нужно удалить все зависимости, которые относятся именно к этому пакету т.е не удалять зависимости, которые нужны другим пакетам

Это, емнип, штатное поведение апта.

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

Нет, по фелолту удаляется только тот пакет который ты сказал удалить, и те пакеты которые зависят от него. Если есть пакет foo зависящий от bar зависящего от baz и ты поставил foo и bar, а потом удалил bar то apt удалит bar (потому что ты явно сказал что его надо удалить) и foo (потому что он зависит от удаляемого пакета bar), а baz так и останется болтаться до особого распоряжения. И при каждом выполнении apt install или apt upgrade (уже не помню) он будет напоминать что в системе есть пакеты которые больше не нужны и что их можно вычистить с помощью autoremove

MrClon ★★★★★
()