4.3 Добавяне на библиотечни файлове

Нашият свят има нужда от тях ;)

cd $J
cp /libexec/ld-elf.so.1 libexec/ (1)
cp /var/run/ld* $J/var/run (2)
(3)
ldd -a `find /apache -not -type d` 2>& /dev/null | grep -v ':$' | awk '{print $3}' | sort | uniq > /tmp/reqlibs
ldd -a /bin/sh 2>& /dev/null | grep -v ':$' | awk '{print $3}' >> /tmp/reqlibs
ldd -a /usr/sbin/chown 2>& /dev/null | grep -v ':$' | awk '{print $3}' >> /tmp/reqlibs
(4)
while read f
do
    d=`dirname $f`
    mkdir -p $J$d
    cp $f $J$d
done < /tmp/reqlibs
rm -rf /tmp/reqlibs (5)
           

(1)
ld-elf.so.1 е т. нар. "dynamic linker". Той използва /var/run/ld-elf.so.hints и /var/run/ld.so.hints, за да каже на дадено приложение къде да намери библиотеките, от които има нужда.
(2)
Помните ли какво правеше ld-elf-so.1? Използва разни файлове, нали? Е, значи тези файлове също ни трябват :)
(3)
ldd(1) отпечатва библиотеките, от които дадено приложение се нуждае. Тук го използваме, за да разберем кои библиотеки са нужни на файловете в /apache, /bin/sh, /usr/sbin/chown, тъй като имаме намерение да ги използваме. Редовете създават файла /tmp/reqlibs и го пълнят с местоположението на тези библиотеки.
(4)
Този малък цикъл прочита /tmp/reqlibs и копира библиотеките в затвора.
(5)
/tmp/reqlibs си свърши работата, след което заслужава да бъде изтрит..


This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

For questions about FreeBSD, read the documentation before contacting <[email protected]>.
For questions about this documentation, e-mail <[email protected]>.