+ -
当前位置:首页 → 问答吧 → 这是不是slackware的问题, 好象很严重

这是不是slackware的问题, 好象很严重

时间:2005-09-25

来源:互联网

以下是slackware10.2中glibc-solibs-2.3.5-i486-5.tgz的doinst.sh文件
(省去了注释)

#!/bin/sh

if [ -x /sbin/ldconfig -a -d /lib/incoming ]; then
( cd lib/incoming
for file in * ; do
if [ ! -r ../${file}.incoming ]; then
cp -a $file ../${file}.incoming
fi
done
)
/sbin/ldconfig -l /lib/*.incoming 2> /dev/null
( cd lib
for file in *.incoming ; do
rm -f `basename $file .incoming`
cp -a $file `basename $file .incoming`
/sbin/ldconfig -l `basename $file .incoming`
rm -f $file
done
)
else
( cd lib/incoming
for file in * ; do
cp -a $file ..
done
)
fi
rm -rf lib/incoming

if [ -x /sbin/ldconfig -a -d /lib/tls/incoming ]; then
( cd lib/tls/incoming
for file in * ; do
if [ ! -r ../${file}.incoming ]; then
cp -a $file ../${file}.incoming
fi
done
)
/sbin/ldconfig -l /lib/tls/*.incoming 2> /dev/null
( cd lib/tls
for file in *.incoming ; do
rm -f `basename $file .incoming`
cp -a $file `basename $file .incoming`
/sbin/ldconfig -l `basename $file .incoming`
rm -f $file
done
)
else
( cd lib/tls/incoming
for file in * ; do
cp -a $file ..
done
)
fi
rm -rf lib/tls/incoming

if [ ! -x /sbin/ldconfig ]; then
( cd lib ; rm -rf libnss_nis.so.2 )
( cd lib ; ln -sf libnss_nis-2.3.5.so libnss_nis.so.2 )
( cd lib ; rm -rf libm.so.6 )
( cd lib ; ln -sf libm-2.3.5.so libm.so.6 )
( cd lib ; rm -rf libnss_files.so.2 )
( cd lib ; ln -sf libnss_files-2.3.5.so libnss_files.so.2 )
( cd lib ; rm -rf libresolv.so.2 )
( cd lib ; ln -sf libresolv-2.3.5.so libresolv.so.2 )
( cd lib ; rm -rf libnsl.so.1 )
( cd lib ; ln -sf libnsl-2.3.5.so libnsl.so.1 )
( cd lib ; rm -rf libutil.so.1 )
( cd lib ; ln -sf libutil-2.3.5.so libutil.so.1 )
( cd lib ; rm -rf libnss_compat.so.2 )
( cd lib ; ln -sf libnss_compat-2.3.5.so libnss_compat.so.2 )
( cd lib ; rm -rf libthread_db.so.1 )
( cd lib ; ln -sf libthread_db-1.0.so libthread_db.so.1 )
( cd lib ; rm -rf libnss_hesiod.so.2 )
( cd lib ; ln -sf libnss_hesiod-2.3.5.so libnss_hesiod.so.2 )
( cd lib ; rm -rf libanl.so.1 )
( cd lib ; ln -sf libanl-2.3.5.so libanl.so.1 )
( cd lib ; rm -rf libcrypt.so.1 )
( cd lib ; ln -sf libcrypt-2.3.5.so libcrypt.so.1 )
( cd lib ; rm -rf libBrokenLocale.so.1 )
( cd lib ; ln -sf libBrokenLocale-2.3.5.so libBrokenLocale.so.1 )
( cd lib ; rm -rf ld-linux.so.2 )
( cd lib ; ln -sf ld-2.3.5.so ld-linux.so.2 )
( cd lib ; rm -rf libdl.so.2 )
( cd lib ; ln -sf libdl-2.3.5.so libdl.so.2 )
( cd lib ; rm -rf libnss_dns.so.2 )
( cd lib ; ln -sf libnss_dns-2.3.5.so libnss_dns.so.2 )
( cd lib ; rm -rf libpthread.so.0 )
( cd lib ; ln -sf libpthread-0.10.so libpthread.so.0 )
( cd lib ; rm -rf libnss_nisplus.so.2 )
( cd lib ; ln -sf libnss_nisplus-2.3.5.so libnss_nisplus.so.2 )
( cd lib ; rm -rf libc.so.6 )
( cd lib ; ln -sf libc-2.3.5.so libc.so.6 )
( cd lib ; rm -rf librt.so.1 )
( cd lib ; ln -sf librt-2.3.5.so librt.so.1 )
( cd lib/tls ; rm -rf libnss_nis.so.2 )
( cd lib/tls ; ln -sf libnss_nis-2.3.5.so libnss_nis.so.2 )
( cd lib/tls ; rm -rf libm.so.6 )
( cd lib/tls ; ln -sf libm-2.3.5.so libm.so.6 )
( cd lib/tls ; rm -rf libnss_files.so.2 )
( cd lib/tls ; ln -sf libnss_files-2.3.5.so libnss_files.so.2 )
( cd lib/tls ; rm -rf libresolv.so.2 )
( cd lib/tls ; ln -sf libresolv-2.3.5.so libresolv.so.2 )
( cd lib/tls ; rm -rf libnsl.so.1 )
( cd lib/tls ; ln -sf libnsl-2.3.5.so libnsl.so.1 )
( cd lib/tls ; rm -rf libutil.so.1 )
( cd lib/tls ; ln -sf libutil-2.3.5.so libutil.so.1 )
( cd lib/tls ; rm -rf libnss_compat.so.2 )
( cd lib/tls ; ln -sf libnss_compat-2.3.5.so libnss_compat.so.2 )
( cd lib/tls ; rm -rf libthread_db.so.1 )
( cd lib/tls ; ln -sf libthread_db-1.0.so libthread_db.so.1 )
( cd lib/tls ; rm -rf libnss_hesiod.so.2 )
( cd lib/tls ; ln -sf libnss_hesiod-2.3.5.so libnss_hesiod.so.2 )
( cd lib/tls ; rm -rf libanl.so.1 )
( cd lib/tls ; ln -sf libanl-2.3.5.so libanl.so.1 )
( cd lib/tls ; rm -rf libcrypt.so.1 )
( cd lib/tls ; ln -sf libcrypt-2.3.5.so libcrypt.so.1 )
( cd lib/tls ; rm -rf libBrokenLocale.so.1 )
( cd lib/tls ; ln -sf libBrokenLocale-2.3.5.so libBrokenLocale.so.1 )
( cd lib/tls ; rm -rf ld-linux.so.2 )
( cd lib/tls ; ln -sf ld-2.3.5.so ld-linux.so.2 )
( cd lib/tls ; rm -rf libdl.so.2 )
( cd lib/tls ; ln -sf libdl-2.3.5.so libdl.so.2 )
( cd lib/tls ; rm -rf libnss_dns.so.2 )
( cd lib/tls ; ln -sf libnss_dns-2.3.5.so libnss_dns.so.2 )
( cd lib/tls ; rm -rf libpthread.so.0 )
( cd lib/tls ; ln -sf libpthread-2.3.5.so libpthread.so.0 )
( cd lib/tls ; rm -rf libnss_nisplus.so.2 )
( cd lib/tls ; ln -sf libnss_nisplus-2.3.5.so libnss_nisplus.so.2 )
( cd lib/tls ; rm -rf libc.so.6 )
( cd lib/tls ; ln -sf libc-2.3.5.so libc.so.6 )
( cd lib/tls ; rm -rf librt.so.1 )
( cd lib/tls ; ln -sf librt-2.3.5.so librt.so.1 )
fi

如果我设定ROOT=/somewhere, 但非/, 这样调用installpkg时,
先将glibc-solibs-2.3.5-i486-5.tgz解压到$ROOT上,
然后cd 到 $ROOT, 执行install/doinst.sh. (之前并不chroot).
这样, 如果我在现在的系统下(如slackware10.1)安装,
会发现因为不存在/lib/incoming, /lib/tls/incoming, 但存在 /sbin/ldconfig,
doinst.sh脚本实际等效于没有运行, 但一些有用的链接却因此没有完成,
这实在很糟糕, 好象以前提到的只安装 a 下的包造成启动不了, 也是因为这个引起的.

请大家帮我看看, 这是不是slackware的一个bug, 如果是, 为什么一直没有解决呢?

作者: fuziok   发布时间: 2005-09-25