BBS水木清华站∶精华区

发信人: midi (迷笛), 信区: Linux 
标  题: Slackware 和 glibc[转自MIT) 
发信站: BBS 水木清华站 (Mon Apr  5 05:39:20 1999) WWW-POST 
发信站: The unknown SPACE (Sun Apr  4 17:03:46 1999) WWW-POST  
  
前些时有网友和我讨论Slackware上是否有glibc。我说有,他   
说没有。现在我应该进一步澄清一下。   
 
首先,我们两个都一定程度上对了或错了。Slackware从3.6开始,   
有了glibc的Run-time支持。但确省在编译时还是用libc5的。   
也就是说,Slackware目前可以运行glibc程序,但编译出来的东西   
是libc5的。这种状况在Slackware 4.1以前不会改变。   
  
这两天我试图在Slackware上安装Oracle,琢磨出一点东西,这里   
贡献出来   
   
Slackware其实在其contribution里有一个glibc库,但它不是   
确省库。如果需要glibc,大家可以到   
ftp://ftp.cdrom.com/pub/linux/slackware-current/contrib   
下下载libc2.0.7pre6.tgz。这个文件不仅包含Runtime库,还有   
developing库。   
   
下载后,用软盘启动机器,用软盘做root。不要直接在你运行的环境中升级,   
因为它会更新很多运行库,直接升级只能导致机器死掉。软盘启动后,把你的   
硬盘mount到/mnt上,然后用   
ROOT=/mnt installpkg libc2.0.7pre6.tgz   
的方式升级你的库。   
   
随后,你应该修改编译系统的配制:修改编译器的specs:   
/usr/lib/gcc-lib/<arch>/<version>/specs   
总之是在/usr/lib/gcc-lib目录下,取决于你用的是GCC还是EGCS。   
将specs文件中,所有的ld-linux.so.1修改成ld-linux.so.2   
然后去掉所有的`%{...:-lgmon}',因为glibc里没有libgmon.   
这样就可以编译出glibc的程序了。   
  
如果想恢复到原来的libc5环境,只需   
cd /var/log/packages   
removepkg glibc-2.0.7pre6   
然后再从Slackware的d1目录中装上libc.tgz就可以了。   
记住将specs修改回去!   
 
补充说明一下 
1. 在装glibc-2.0.7pre6.tgz之前,最好用 
removepkg libc的方式把libc5卸载。 
2. 有的环境中/usr/lib/gcc-lib目录下有好多子目录,你不能确定 
应该改哪个,那么用gcc -v的命令来看好了: 
%gcc -v 
Reading specs from /usr/lib/gcc-lib/i486-linux/2.7.2.3/specs 
gcc version 2.7.2.3 
3. 有的人的egcs装的目录不在/usr/lib/gcc-lib中,那么用‘ 
%g++ -v 
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnulibc1/egcs-2.91.60/ 
specs 
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release) 
4. 我安装后,把ld-linux.so连到了ld-linux.so.2上 
/lib: 
ln -s ld-linux.so.2 ld-linux.so 
 
 
 
-- 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 207.138.150.70]  

BBS水木清华站∶精华区