В последнее время я сделал много изменений конфигурации на моем Испытанном ноутбуке (14.04 LTS). Во-первых, я установил gnome-shell
, сделал все обновления и мигрировал на стопку реализации возможностей LTS. После этого я добавил gnome 3 staging ppa
и обновленный gnome-shell
от v3.10 до v3.12 оттуда. Теперь, когда я работаю apt-get autoremove
, Я получаю эти пакеты в списке:
The following packages were automatically installed and are no longer required:
evolution-indicator gdm gir1.2-gkbd-3.0 gir1.2-tracker-0.16 gir1.2-xkl-1.0 libgtksourceview2.0-0
libgtksourceview2.0-common libiptcdata0 libtracker-extract-0.16-0
libtracker-miner-0.16-0 libtracker-sparql-0.16-0 linux-headers-4.2.0-23
linux-headers-4.2.0-23-generic linux-image-4.2.0-23-generic
linux-image-extra-4.2.0-23-generic python-gtksourceview2
Поскольку я понимаю, gdm
критический пакет, который очень необходим, поскольку я использую оболочку гнома. Я также посмотрел на этот ответ, который предлагает отметить пакет, как "необходимый", просто работая apt-get install <package>
. Но как я знаю, какие пакеты этого списка я могу безопасно удалить, не влияя на мою систему? Я знаю для того, однако, что мне не нужно linux-image-*
и linux-headers
пакеты, поскольку я уже обновил до более поздних версий ядра. Но как я знаю об остальной части пакетов?
команда apt-cache showpkg <package>
скажет Вам, что пакеты "реверс зависят" т.е. что другие пакеты - в Ваших настроенных репозиториях (не обязательно установленные пакеты) - зависят от того пакета.
В случае gdm
существуют много, таким образом, я записал этот сценарий для итерации через все обратные зависимости, чтобы проверить, был ли кто-либо установлен - который указал бы, что Вы, вероятно, не должны удалять gdm.
#!/bin/bash
package=$1
apt-cache showpkg $package | sed '1,/Reverse Depends:/d;/Dependencies:/,$d' > /tmp/dependencies.txt
while read line
do
reverse_dependency=$(awk -F '[:,]' '{print $1}' <<< $line)
if dpkg -s $reverse_dependency &> /dev/null
then
echo "$line is installed and depends on $package"
fi
done < /tmp/dependencies.txt
при вызове сценария, необходимо передать пакет в качестве параметра т.е.
./script "gdm"
На моей машине, которой результат был
$ ./script.sh gdm
plymouth:i386,gdm 3.0.4-0ubuntu11 is installed and depends on gdm
plymouth,gdm 3.0.4-0ubuntu11 is installed and depends on gdm
plymouth:i386,gdm 3.0.4-0ubuntu11 is installed and depends on gdm
plymouth,gdm 3.0.4-0ubuntu11 is installed and depends on gdm