мне раньше советовали такую програмку как rpmorphan, она как раз убирает те пакеты и либы, которые никем не используются. на software.opensuse.org/search она есть для opensuse 11.2
Управление пакетами в Yast
xobbitt, попробуйте поставить,потом проверьте :) есть нарекания
я же не говорил, что "нужно ставить, все будет ок", я сказал только что мне на этом форуме раньше такое советовали... я не пробовал.
xobbitt, никто Вас и не упрекает. ни в чём :D
По мне так надо и grep и awk вопрос как grep'ом отчечь все что начинается с "lib, rpmlib и /" ? А затем awk отсечь лишние символы в пакетах
amarok-lang = 2.1.1 => amarok-lang. Пока так - дальше посмотрим!
то что начинается с lib как я понимаю отсекать не надо... надо узнать какой пакет предоставляет данную библиотеку и нужна ли она ещё кому то
По мне так надо и grep и awk вопрос как grep'ом отчечь все что начинается с "lib, rpmlib и /" ?
rpm -qR amarok|awk -F '[)(>=]' '{print $1}'|grep -v -e / -e rpmlib
поидее так
вообще могу предложить логику типа берём лог зипера. вида
2010-03-16 16:55:01|install|MozillaFirefox|3.5.8-0.1.1|i586|root@linux-dipu|http-download.opensuse.org-48e865c4|f5541d7aebe075eca699003764be9c50d7c534db
2010-03-16 16:55:08|install|mozilla-xulrunner191-gnomevfs|1.9.1.8-0.1.1|i586||http-download.opensuse.org-48e865c4|be1be2b4920a35f1e19c37e1692ce308704fd637
2010-03-16 16:55:48|install|mozilla-xulrunner191-translations-common|1.9.1.8-0.1.1|i586||http-download.opensuse.org-48e865c4|e0d313c159e5ca572d77140101328a297b66c867
2010-03-16 18:22:09|install|python-orbit|2.24.0-2.5|i586||repo-oss|5fd6ca5804d095ad6de36d2afb7c05b86b638996
2010-03-16 18:22:16|install|bundle-lang-gnome-ar|11.2-20.23.1|noarch||http-download.opensuse.org-48e865c4|9b3783e96712bf67a4368845476af39b3be57e73
2010-03-16 18:22:22|install|python-gnome|2.28.0-2.3|i586||repo-oss|2c759ad23e1c098165cf8e3fa1003a81275cf807
2010-03-16 18:22:27|install|libgtksourceview-2_0-0|2.8.2-0.1.1|i586||http-download.opensuse.org-48e865c4|f939da295758749e53a9dc565fa7ae55f4b4afbb
2010-03-16 18:22:30|install|python-gtksourceview|2.8.0-2.3|i586||repo-oss|4709210e65c154b94ad8282146e1b9c6b3229a96
2010-03-16 18:22:40|install|gedit|2.28.3-0.1.5|i586|root@linux-dipu|http-download.opensuse.org-48e865c4|1ff8b6923d2a90ac3fef7dbb2387b8ddb4177167далее мы хотим удалить gedit.
значит идём вверх по списку пока не найдём того пакета который gedit`у ненужен..
egrep ^lib?
значит идём вверх по списку пока не найдём того пакета который gedit`у ненужен..
Не совсем поиму плюсы такой идеи? Только то что у нас есть список пакетов которые проверить нужно? Тогда уж rpm -qa вывести и его смотреть чем еще преобразовывать лог в читабельный вид...
то что начинается с lib как я понимаю отсекать не надо... надо узнать какой пакет предоставляет данную библиотеку и нужна ли она ещё кому то
А вот тут вы абсолютно правы.
только цитатка не моя ))
Не суть важна, но поправил)
только цитатка не моя ))А вот тут вы абсолютно правы.
быстрее лог преобразовать в читабельный вид чем rpm -qa все пакеты проверять)
смысл проверять все пакеты? а если идти вверх то мы будем точно знать какие пакеты поставлены ради удовлетворения зависимостей нужного)
Написал пока примерный вариант скрипта, вознило пару вопросов
rpm -q --whatrequires /bin/sh |grep -v /bin/sh
lsb-release-2.0-2.2.noarch
iproute2-2.6.29.1-6.3.x86_64
usbutils-0.84-2.2.x86_64
elfutils-0.142-3.7.x86_64
libtalloc1-3.4.2-1.1.3.1.x86_64
libjasper-1.900.1-136.1.x86_64
unzip-5.52-143.3.x86_64
less-436-3.2.x86_64
mtools-4.0.10-5.6.1.x86_64
...Далее
rpm -q --whatrequires bash-4.0-18.4.1.x86_64
ни один из пакетов не требует bash-4.0-18.4.1.x86_64Это нормально что /bin/sh нужен многим, а пакет, его предоставляющий ненужен никому???
Это нормально что /bin/sh нужен многим, а пакет, его предоставляющий ненужен никому???
да, все ок
да, все ок
Однако не совсем rpm -q --whatrequires bash верно работает)
#!/bin/bash
function delrpm()
{
_rpm=`rpm -q --whatprovides "$1"|awk -F '-[0-9]' '{print $1}'`
echo 'rpm -q --whatprovides '"$1"'|awk -F -[0-9] {print $1}'
echo $_rpm
cur=`rpm -q --whatrequires "$1"| egrep -v "($2)|($1)"`
echo 'rpm -q --whatrequires '"$1"'| egrep -v '"$2"'|'"$1"
echo $cur
if [ "X$cur" == "X" ]
then
echo 'dele'
echo $_rpm>>file
echo 'rpm -qR' $_rpm'|awk -F [>=] {print $1}'| grep -v rpmlib
rpms=(`rpm -qR $_rpm|awk -F '[>=]' '{print $1}'| grep -v rpmlib`)
i=0
for it in ${rpms[*]}
do
echo "${rpms[i]}"
let i=i+1
done
i=0
for it in ${rpms[*]}
do
delrpm "${rpms[i]}" "$1"
let i=i+1
done
else
echo 'no dele'
fi
}
delrpm "$1" "$1"
Не понимаю почему уходит в вис... Пробовал на примере gcc, корректно работает до того как пометит на удаление linux-kernel-headers, потом возвращается к проверке glibc-devel и... Посмотрите сами может мысли появятся?
Не актуально... zypper обзавелся опцией -clean-deps