参考:http://www.cnblogs.com/gtarcoder/p/6015486.html
怎样更新系统的glibc:
error: Failed dependencies: glibc = 2.17 is needed by elrepo-release-7.0-3.el7.elrepo.noarch
参考:https://gist.github.com/harv/f86690fcad94f655906ee9e37c85b174
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-2.17-55.el6.x86_64.rpm && wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-common-2.17-55.el6.x86_64.rpm && wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-devel-2.17-55.el6.x86_64.rpm && wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-headers-2.17-55.el6.x86_64.rpm sudo rpm -Uvh glibc-2.17-55.el6.x86_64.rpm glibc-common-2.17-55.el6.x86_64.rpm glibc-devel-2.17-55.el6.x86_64.rpm glibc-headers-2.17-55.el6.x86_64.rpm
===============================
实证未遂!
因为发现gnutls配置过程中产生的关于glibc版本问题的报错,实际上是gnutls编译方法不对导致。所以这里仅仅是对glibc升级的一个探讨记录。窃以为除非必要,不需要对系统的glibc进行升级操作。
参考:http://www.linuxfromscratch.org/lfs/view/6.2/chapter06/glibc.html
参考:http://man.chinaunix.net/linux/lfs/htmlbook/chapter06/glibc
参考:https://kernelnewbies.org/KernelHeaders
参考:http://www.oschina.net/question/256028_235238
下载:https://www.gnu.org/software/libc/download
参考:http://blog.csdn.net/johnnywww/article/details/7623703
参考:http://liuzhigong.blog.163.com/blog/static/178272375201333155126/
参考:http://www.cnblogs.com/maydow/p/5295065
参考:http://blog.163.com/qiukl1987@126/blog/static/98095849201472011149535/
参考:https://github.com/rbenv/ruby-build/issues/914
参考:http://www.spinics.net/lists/newbies/msg57917
参考:http://blog.csdn.net/fjhyy/article/details/18960899
参考:http://www.xuebuyuan.com/1799099
参考:http://www.oschina.net/p/glibc
参考:http://bbs.chinaunix.net/thread-3595325-1-1
从 http://ftp.gnu.org/gnu/glibc/ 下载两个文件:
glibc-2.19.tar.gz
glibc-linuxthreads-2.5.tar.bz2
将2个文件放在桌面
git clone git://sourceware.org/git/glibc.git && cd glibc git checkout --track -b local_glibc-2.24 origin/release/2.24/master mkdir -v build && cd build ../configure --prefix=/usr --enable-kernel=2.6.32 --enable-obsolete-rpc make && make check touch /etc/ld.so.conf make install
cp -v ../nscd/nscd.conf /etc/nscd.conf mkdir -pv /var/cache/nscd
创建文件 /etc/nsswitch.conf :
# Begin /etc/nsswitch.conf passwd: files group: files shadow: files hosts: files dns networks: files protocols: files services: files ethers: files rpc: files # End /etc/nsswitch.conf EOF
configure一节没跑通,慢慢研究。
因由:以为glibc的版本问题是gnutls编译失败的拦路虎
当启动httpd时:
service httpd stop
报错:
httpd: Syntax error on line 35 of /usr/local/apache2/conf/httpd.conf: Cannot load modules/mod_gnutls.so into server: /usr/local/apache2/modules/mod_gnutls.so: symbol gnutls_srp_set_server_credentials_file, version GNUTLS_1_4 not defined in file libgnutls.so.28 with link time reference
参考:
dbaccess: relocation error: dbaccess: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference
这个错误信息就是说,informix需要的一个glibc函数,在libc.so.6中找不到2.0版本的,估计libc.so.6中只有高版本的这个函数。libc.so.6是GLIBC的最基础的一个so,你可以用nm /lib/libc.so.6看到大量的symbol。你可以看看你的informix版本是不是太老,不行就换个版本装,要不就换OS,反正GLIBC和应用程序不匹配是相当麻烦的事。
解释:需要一个GNUTLS函数 gnutls_srp_set_server_credentials_file ,在mod_gnutls.so中找不到GNUTLS_1_4版本的,估计只有高版本的。
原因:SRP is removed from gnutls due to potential patent issues.
参考:https://bugzilla.redhat.com/show_bug.cgi?id=164148
方法:
确定问题所在:
A. 可能是GNUTLS3.3.8低版本所导致,使用高版本GNUTLS 3.3.24。
B. 可能是Mod_GNUTLS0.6低版本所导致,使用高版本Mod_GNUTLS 0.7.5。
使用命令查看:
nm /usr/local/apache2/modules/mod_gnutls.so
发现使用 GLIBC_2.2.5,而系统中版本是 glibc-2.17。
是不是因为glibc版本过低导致问题?
尝试升级:
参考:http://blog.chinaunix.net/uid-223060-id-2215317
参考:http://man.chinaunix.net/linux/lfs/htmlbook/chapter05/glibc (Glibc-2.3.2)
参考:http://docs.huihoo.com/lfs/lfs-4.0/chapter06/glibc (GLIBC_2.2.5)
参考:http://archive.linuxfromscratch.org/lfs-museum/3.2/LFS-BOOK-3.2-HTML/chapter06/glibc (GLIBC_2.2.5)
参考:http://www.linuxfromscratch.org/lfs/view/6.3/chapter06/glibc (Glibc-2.5.1)
参考:http://www.phpfans.net/ask/fansa1/5659863105
参考:http://liuzhigong.blog.163.com/blog/static/178272375201333155126/
下载:https://dev.gentoo.org/~vapier/dist/
下载:ftp://ftp.gnu.org/gnu/glibc/
依赖:
wget ftp://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.2.5.tar.gz && tar zxvf glibc-linuxthreads-2.2.5.tar.gz
wget ftp://ftp.gnu.org/gnu/glibc/glibc-crypt-2.1.tar.gz && tar zxvf glibc-crypt-2.1.tar.gz
Crypt:UFC-crypt 加密套件。 由于出口限制所以要分离出来。
LinuxThreads:Posix 1003.1c “pthread” 界面的实作。
wget https://dev.gentoo.org/~vapier/dist/glibc-2.2.5-patches-1.0.tar.bz2 && tar -xjf glibc-2.2.5-patches-1.0.tar.bz2
wget ftp://ftp.gnu.org/gnu/glibc/glibc-2.2.5.tar.gz && tar zxvf glibc-2.2.5.tar.gz && cd glibc-2.2.5
dos2unix /usr/src/glibc-2.2.5-2.patch
patch -Np1 -i ../glibc-2.2.5-2.patch &&
touch /etc/ld.so.conf &&
mkdir ../glibc-build &&
cd ../glibc-build &&
../glibc-2.2.5/configure –prefix=/usr –disable-profile \
–enable-add-ons –libexecdir=/usr/bin &&
echo “cross-compiling = no” > configparms &&
make &&
make install &&
make localedata/install-locales &&
exec /static/bin/bash –login
安装Glibc-2.3.6
下载:ftp://ftp.gnu.org/gnu/glibc/
下载:http://download.chinaunix.net/download/0004000/3823.shtml
参考:http://www.jinbuguo.com/lfs/lfs62/chapter06/glibc (Glibc-2.3.6)
参考:http://www.linuxfromscratch.org/lfs/view/6.2/chapter06/glibc (Glibc-2.3.6)
cd /usr/src
wget ftp://ftp.gnu.org/gnu/glibc/glibc-2.3.6.tar.gz && tar zxvf glibc-2.3.6.tar.gz && cd glibc-2.3.6
wget ftp://ftp.gnu.org/gnu/glibc/glibc-libidn-2.3.6.tar.gz && tar zxvf glibc-libidn-2.3.6.tar.gz