LinuxForum.Fans
Тема

Управление пакетами в Yast

Автор: NioriX 54 сообщений 15161 просмотров
#13313

мне раньше советовали такую програмку как rpmorphan, она как раз убирает те пакеты и либы, которые никем не используются. на software.opensuse.org/search она есть для opensuse 11.2

#13314

xobbitt, попробуйте поставить,потом проверьте :) есть нарекания

#13405

я же не говорил, что "нужно ставить, все будет ок", я сказал только что мне на этом форуме раньше такое советовали... я не пробовал.

#13409

xobbitt, никто Вас и не упрекает. ни в чём :D

#14190

По мне так надо и grep и awk вопрос как grep'ом отчечь все что начинается с "lib, rpmlib и /" ? А затем awk отсечь лишние символы в пакетах
amarok-lang = 2.1.1 => amarok-lang. Пока так - дальше посмотрим!

#15275

то что начинается с lib как я понимаю отсекать не надо... надо узнать какой пакет предоставляет данную библиотеку и нужна ли она ещё кому то

По мне так надо и grep и awk вопрос как grep'ом отчечь все что начинается с "lib, rpmlib и /" ?

rpm -qR amarok|awk -F '[)(>=]' '{print $1}'|grep -v -e / -e rpmlib
поидее так
вообще могу предложить логику типа берём лог зипера. вида

text
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`у ненужен..

#15504
text
egrep ^lib

?

#15619
tmp13 написал:
значит идём вверх по списку пока не найдём того пакета который gedit`у ненужен..

Не совсем поиму плюсы такой идеи? Только то что у нас есть список пакетов которые проверить нужно? Тогда уж rpm -qa вывести и его смотреть чем еще преобразовывать лог в читабельный вид...

tmp13 написал:
то что начинается с lib как я понимаю отсекать не надо... надо узнать какой пакет предоставляет данную библиотеку и нужна ли она ещё кому то

А вот тут вы абсолютно правы.

komcumir написал:
только цитатка не моя ))

Не суть важна, но поправил)

#15622

NioriX написал:
А вот тут вы абсолютно правы.
только цитатка не моя ))
#16061

быстрее лог преобразовать в читабельный вид чем rpm -qa все пакеты проверять)
смысл проверять все пакеты? а если идти вверх то мы будем точно знать какие пакеты поставлены ради удовлетворения зависимостей нужного)

#19587

Написал пока примерный вариант скрипта, вознило пару вопросов

text
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                                                                                                                                                          
...

Далее

text
rpm -q --whatrequires bash-4.0-18.4.1.x86_64
ни один из пакетов не требует bash-4.0-18.4.1.x86_64

Это нормально что /bin/sh нужен многим, а пакет, его предоставляющий ненужен никому???

#19636
NioriX написал:
Это нормально что /bin/sh нужен многим, а пакет, его предоставляющий ненужен никому???

да, все ок

#20884
UTe11ok написал:
да, все ок

Однако не совсем rpm -q --whatrequires bash верно работает)

text

#!/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 и... Посмотрите сами может мысли появятся?

#63371

Не актуально... zypper обзавелся опцией -clean-deps

Войдите или зарегистрируйтесь, чтобы ответить.