ldd und cp ?
ldd und cp ?
hi,
Frage !
wie kann ich die ausgabe von ldd XXXX > lib.txt als input für cp nehmen um eben diese
libs kopieren zu können ?????????
gruß
vobie
Frage !
wie kann ich die ausgabe von ldd XXXX > lib.txt als input für cp nehmen um eben diese
libs kopieren zu können ?????????
gruß
vobie
- seep
- Beiträge: 544
- Registriert: 31.10.2004 14:21:08
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: HSK
Code: Alles auswählen
ldd foo | while read line; do echo "mach was mit $line"; done
dankeseep hat geschrieben:Den "echo" mußt Du dann noch durch passenden Code ersetzen, bspw. das heraus-cut/sed-en der Dateinamen.Code: Alles auswählen
ldd foo | while read line; do echo "mach was mit $line"; done
funktioniert ja ganz gut mit einer datei.
Aber ich möchte von einem bestehenden Entwicklersystem die benötigten Dateien samt
libs in ein testsystem Kopieren.
also zb. Debian mit Entwicklerumgebung nach mini debian ohne Entwicklerumgebung.
Das Ergebniss soll ein extrem kleines System mit wirklich nur zum Betrieb notwendigen
Dateien werden.
zZ.mach ich das so.
----------------------------------------------------------------------------------------------------
LIBS=$( ldd root/sbin/* root/bin/* root/usr/bin/* root/usr/sbin/* root/lib/security/* 2> /dev/null | grep "[ \t]*lib" | grep -v "ld-linux" | cut -d " " -f 1 | sort -u )
echo "copy $LIBS to /lib :"
for i in $LIBS ; do
if [ -e /lib/$i ] ; then
do_cp /lib/$i root/lib
strip root/lib/$i
elif [ -e /usr/lib/$i ] ; then
do_cp /usr/lib/$i root/lib
strip root/lib/$i
else
error "cannot locate /lib/$i nor /usr/lib/$i"
fi
done
--------------------------------------------------------------------------------------------------
wobei "root" mein Ziehlverzeichniss mit einer Directory Struktur ist.
ich habe das Problem das in der Variablen LIBS=$ zwar alle libs gespeichert werden
aber nur die ersten ca 50 abgearbeitet werden und der rest angeblich nicht gefunden wird. setze ich nur eine " nicht gefundene" datei ein wird auch diese richtig bearbeitet.
gibs in der bash beschränkungen der variablen größe ????????
gruß
vobie
- seep
- Beiträge: 544
- Registriert: 31.10.2004 14:21:08
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: HSK
Code: Alles auswählen
LIBS=$( ldd root/sbin/* root/bin/* root/usr/bin/* root/usr/sbin/* root/lib/security/* 2> /dev/null | grep "[ \t]*lib" | grep -v "ld-linux" | cut -d " " -f 1 | sort -u )
echo "copy $LIBS to /lib :"
for i in $LIBS ; do
Code: Alles auswählen
ldd root/sbin/* root/bin/* root/usr/bin/* root/usr/sbin/* root/lib/security/* 2> /dev/null | grep "[ \t]*lib" | grep -v "ld-linux" | cut -d " " -f 1 | sort -u | while read i; do
hi,seep hat geschrieben:Schreibe es so um, dann klappt es auch ohne Zwischenspeichern in LIBS (was ja eh nicht dauerhaft benötigt wird):Code: Alles auswählen
LIBS=$( ldd root/sbin/* root/bin/* root/usr/bin/* root/usr/sbin/* root/lib/security/* 2> /dev/null | grep "[ \t]*lib" | grep -v "ld-linux" | cut -d " " -f 1 | sort -u ) echo "copy $LIBS to /lib :" for i in $LIBS ; do
Code: Alles auswählen
ldd root/sbin/* root/bin/* root/usr/bin/* root/usr/sbin/* root/lib/security/* 2> /dev/null | grep "[ \t]*lib" | grep -v "ld-linux" | cut -d " " -f 1 | sort -u | while read i; do
also ich bin zu doof dazu,
ich habe das so gemacht
Code: Alles auswählen
LIBS=$( ldd root/sbin/* root/bin/* root/usr/bin/* root/usr/sbin/* root/lib/security/* 2> /dev/null | grep "[ \t]*lib" | grep -v "ld-linux" | cut -d " " -f 1 | sort -u | while read i; do )
Code: Alles auswählen
echo "copy $LIBS to /lib :"
for i in $LIBS ; do
if [ -e /lib/$i ] ; then
do_cp /lib/$i root/lib
strip root/lib/$i
elif [ -e /usr/lib/$i ] ; then
und nu ?
gruß
vobie
muß dazu sagen , das ich nicht der absolute scripte schreiber bin

manchmal sind die augen schneller als das hirnseep hat geschrieben:Mißverständnis Deinerseits: ich schrieb "schreibe es so um" und Du packtest trotzdem wieder LIBS=$() drumherum. Das kann auch nicht gehen.
Ersetze den kompletten 1. Block durch den kompletten 2. Block und Du wirst sehen, es funktioniert.

es funktioniert.
Danke !!!

gruß
vobie