| View previous topic :: View next topic |
| Author |
Message |
sebas86 Guru


Joined: 01 May 2005 Posts: 502 Location: Szczecinek / Szczecin
|
Posted: Sat Dec 04, 2010 10:16 am Post subject: Paczki zbudowane z innymi flagami |
|
|
Już wcześniej na forum padało kilka razy pytanie o sposób na odnalezienie takich paczek, a ponieważ sam ostatnio trochę namieszałem... Poniżej znajduje się skrypt poszukujący w sposób naiwny paczek zbudowanych z CFLAGS innymi niż aktualnie ustawione w systemie. Sposób jest naiwny z tego względu, że niektóre paczki wyłączają niektóre flagi kompilatora, ale i tak skrypt w dużym stopniu odsiewa paczki pozostałe np. po "emerge world -eD". Do działania wystarczy wrzucić na dysk i odpalić. Pomysły na usprawnienia mile widziane, a może macie jakieś własne rozwiązania tego, raczej, sporadycznego problemu?
| Code: | #!/bin/sh
DB_PATH='/var/db/pkg'
FILE_WITH_PKGS_WITH_OTHER_FLAGS='pkgs-with-other-cflags.txt'
CFLAGS=`emerge --info | grep CFLAGS`
echo "System ${CFLAGS}"
echo ""
echo -n '' > ${FILE_WITH_PKGS_WITH_OTHER_FLAGS}
ls $DB_PATH | while read CAT; do
ls "${DB_PATH}/${CAT}" | while read APP; do
APP_FLAGS=`bzcat "${DB_PATH}/${CAT}/${APP}/environment.bz2" | grep 'declare -x CFLAGS=' | cut -c12-10000`
if [ "${APP_FLAGS}" != "${CFLAGS}" ]; then
echo "${CAT}/${APP} -> ${APP_FLAGS}"
echo "${CAT}/${APP}" >> ${FILE_WITH_PKGS_WITH_OTHER_FLAGS}
fi
done
done |
_________________ Nieważne jaka dystrybucja, ważne, że Linux! |
|
| Back to top |
|
 |
SlashBeast Moderator


Joined: 23 May 2006 Posts: 2540 Location: Zduńska Wola, Poland.
|
Posted: Sat Dec 04, 2010 6:53 pm Post subject: |
|
|
FWIW zamiast grepowac emerge --info mozesz dac "CFLAGS="$(portageq envvar CFLAGS)".
edit:
Przepisalem Twoj skrypt troche bardziej kolorowo i pozbylem sie zbednych pipow..
| Code: | #!/bin/bash
dbdir="/var/db/pkg"
systemcflags="$(portageq envvar CFLAGS)"
CYAN='\e[1;36m'
YELLOW='\e[1;33m'
GREEN='\e[1;32m'
NC='\e[0m'
echo -e "${GREEN}System CFLAGS:${NC} ${YELLOW}$systemcflags${NC}"
find $dbdir/*/* -type f -name environment.bz2 | while read package; do
packagename="${package#*${dbdir}/}"
packagename="${packagename%/${packagename##*/}}"
packagecflags="$(bzgrep 'declare -x CFLAGS=' $package | cut -d '"' -f2)"
if [ "$systemcflags" != "$packagecflags" ]; then
echo -e "${CYAN}${packagename}:${NC} ${YELLOW}${packagecflags}${NC}"
fi
done |
_________________ github |
|
| Back to top |
|
 |
sebas86 Guru


Joined: 01 May 2005 Posts: 502 Location: Szczecinek / Szczecin
|
Posted: Sun Dec 05, 2010 9:12 pm Post subject: |
|
|
O, widać, kto częściej pisze skrypty.
W sumie można jeszcze uprościć zapisując zamiast | Code: | | find $dbdir/*/* -type f -name environment.bz2 | while read package; do | po prostu | Code: | | ls "$dbdir/*/*/environment.bz2" | while read package; do |
O portageq zupełnie nie wiedziałem, kolejne przydatne narzędzie Gentoo Power Usera, dzięki. Możesz powiedzieć z jakich jeszcze innych narzędzi lubisz korzystać lub wiesz o ich istnieniu, ewentualnie gdzie szukać tego typu informacji? _________________ Nieważne jaka dystrybucja, ważne, że Linux! |
|
| Back to top |
|
 |
SlashBeast Moderator


Joined: 23 May 2006 Posts: 2540 Location: Zduńska Wola, Poland.
|
Posted: Sun Dec 05, 2010 10:31 pm Post subject: |
|
|
O portageq powiedzial mi Zac Medico, aktualny developer portage. A gdzie szukac? Nie wiem. _________________ github |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|