При вводе по крайней мере одной буквы то нажмите Tab, Вы будете видеть список всех исполняемых программ, имя которых начинается с той буквы. Это называют завершением или автоматическим заполнением.
Можно перечислить все исполняемые программы с этим отрывком оболочки:
( IFS=':'; set -f;
for dir in $PATH; do
for x in $dir/*; do echo $x; done
done )
Это перечисляет все исполняемые программы, которые Вы имеете, который может быть более общим, чем, что Вы предназначаете “всеми приложениями”. Вы будете также видеть много команд, которые предназначаются, чтобы быть названными другими командами и редко вызываются непосредственно пользователями. Список приложений, которые предназначаются, чтобы быть вызванными от GUI, доступен через *.desktop
файлы под /usr/share/applications
. Следующая команда отобразит их (Вы найдете крошки как %u
, %c
и так далее, указывая на то, что обычно ожидают виды аргументов команда; они описаны в спецификации формата файла на рабочем столе).
grep -Proh '(?<=^Exec=).*' /usr/share/applications
Можно получить лучшее ощущение того, какие приложения Вы установили путем списка пакетов, которые Вы имеете: dpkg -l
под Debian, Ubuntu и производными; rpm -ql
под Red Hat, Fedora, SuSE и дериватизируют; …
Это не легко. Как Вы дифференцируетесь между "файлом, который требовался чем-то, что я с тех пор удалил" из "файла, который не требуется ничем больше, что я действительно хочу"?
Можно использовать package-cleanup
команда от yum-utils
пакет для списка "вершин" в графе зависимостей пакета. Это пакеты, которые могут быть удалены, не влияя ни на что больше:
$ package-cleanup --leaves
Это произведет список "библиотек", от которых ничто иное не зависит. В большинстве случаев можно безопасно удалить эти пакеты. Если Вы добавляете --all
к командной строке:
$ package-cleanup --leaves --all
Вы получите пакеты, которые не считают библиотеками, также, но этот список будет таким длинным, что это, вероятно, не будет полезно.
Если Вы устанавливаете пакет с yum install
, сказать pdftk
, это вытянет в большом количестве зависимостей:
Installed:
pdftk.x86_64 0:1.44-10.fc18
Dependency Installed:
bouncycastle.noarch 0:1.46-6.fc18
itext-core.noarch 0:2.1.7-14.fc18
libgcj.x86_64 0:4.7.2-8.fc18
bouncycastle-mail.noarch 0:1.46-6.fc18
java-1.5.0-gcj.x86_64 0:1.5.0.0-40.fc18
sinjdoc.x86_64 0:0.5-13.fc18
bouncycastle-tsp.noarch 0:1.46-5.fc18
java_cup.noarch 1:0.11a-10.fc18
itext.x86_64 0:2.1.7-14.fc18
javamail.noarch 0:1.4.3-12.fc18
Complete!
yum remove pdftk
удалит только что пакет и не все зависимости.
Но можно посмотреть на все 'транзакции' (установка, удалить и т.д.):
$ sudo yum history list pdftk
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
88 | install pdftk | 2012-12-14 13:35 | Install | 11
И затем можно отменить ту транзакцию:
$ sudo yum history undo 88
Undoing transaction 88, from Fri Dec 14 13:35:34 2012
Dep-Install bouncycastle-1.46-6.fc18.noarch @fedora
Dep-Install bouncycastle-mail-1.46-6.fc18.noarch @fedora
Dep-Install bouncycastle-tsp-1.46-5.fc18.noarch @fedora
Dep-Install itext-2.1.7-14.fc18.x86_64 @fedora
Dep-Install itext-core-2.1.7-14.fc18.noarch @fedora
Dep-Install java-1.5.0-gcj-1.5.0.0-40.fc18.x86_64 @fedora
Dep-Install java_cup-1:0.11a-10.fc18.noarch @fedora
Dep-Install javamail-1.4.3-12.fc18.noarch @fedora
Dep-Install libgcj-4.7.2-8.fc18.x86_64 @fedora
Install pdftk-1.44-10.fc18.x86_64 @fedora
Dep-Install sinjdoc-0.5-13.fc18.x86_64 @fedora
...
Complete!
yum history
.Спасибо!
– Stefan Lasiewski
14.05.2014, 23:24
Начиная с Fedora 18, можно просто использовать эту команду
yum autoremove
или
yum remove --setopt=clean_requirements_on_remove=1
Можно также подать заявку, автоудаляют команду с определенным пакетом
yum autoremove <package>
Который удалит ненужные зависимости из того установленного пакета. autoremove
в значительной степени псевдоним remove --setopt=clean_requirements_on_remove=1
но по некоторым причинам, все еще не документировано.
Я отвел larsks на один шаг дальше.
$ package-cleanup -q --leaves | xargs -l1 yum -y remove
Это захватывает все зависимости, которые можно удалить, не затрагивая ничего другого, а затем удаляет их. Лучше пройти один за другим.
"-q" полезно на некоторых системах, которые печатают "Setting yum" иначе, заставляя эту команду удалять "yum". И это не то, чего вы хотите.
В более новых Fedoras с dnf
вы можете использовать dnf repoquery --unneeded
в качестве замены для ] пакет-очистка --leaves
.