heartbeat centos?centos镜像下载官网

大家好,关于heartbeat centos很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于centos镜像下载官网的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

阿里云上的centos 7.2怎么yum安装php 5.6

因之前通过网易的 centos镜像,将阿里云的 centos升级到最新版了,乘自己的项目尚未开始正式开发,遂将所有的相应环境都升级到最高。

查看 centos版本:

[root@iZ23d~]# cat/etc/centos-release

CentOS Linux release 7.2.1511(Core)

1、删除之前的 php版本:

[root@iZ23d~]# yum remove php* php-common

Loaded plugins: langpacks

Repository base is listed more than once in the configuration

Repository updates is listed more than once in the configuration

Repository extras is listed more than once in the configuration

Repository centosplus is listed more than once in the configuration

No Match for argument: php-5.4.16

No Match for argument: php-5.4.16.tar.gz

No Match for argument: php-7.0.1RC1

No Match for argument: php-7.0.1RC1.tar.gz

No Match for argument: phpMyAdmin-4.4.0.tar.gz

No Match for argument: php-common

No Packages marked for removal

2、rpm安装 Php7相应的 yum源:

[root@iZ23d~]# rpm-Uvh

Retrieving

warning:/var/tmp/rpm-tmp.LhJKKR: Header V4 RSA/SHA1 Signature, key ID 62e74ca5: NOKEY

Preparing...################################# [100%]

package webtatic-release-7-3.noarch is already installed

3、直接yum安装php7:

[root@iZ23d~]# yum install php70w

Loaded plugins: langpacks

Repository base is listed more than once in the configuration

Repository updates is listed more than once in the configuration

Repository extras is listed more than once in the configuration

Repository centosplus is listed more than once in the configuration

Resolving Dependencies

--> Running transaction check

。。。【省略】

Warning: RPMDB altered outside of yum.

Installing: php70w-common-7.0.0-1.w7.x86_64 1/3

Installing: php70w-cli-7.0.0-1.w7.x86_64 2/3

Installing: php70w-7.0.0-1.w7.x86_64 3/3

Verifying: php70w-7.0.0-1.w7.x86_64 1/3

Verifying: php70w-common-7.0.0-1.w7.x86_64 2/3

Verifying: php70w-cli-7.0.0-1.w7.x86_64 3/3

Installed:

php70w.x86_64 0:7.0.0-1.w7

Dependency Installed:

php70w-cli.x86_64 0:7.0.0-1.w7 php70w-common.x86_64 0:7.0.0-1.w7

Complete!

4、检查 php版本:

[root@iZ23d~]# php-v

PHP 7.0.0(cli)(built: Dec 2 2015 20:42:32)( NTS)

Copyright(c) 1997-2015 The PHP Group

Zend Engine v3.0.0, Copyright(c) 1998-2015 Zend Technologies

[root@iZ23d2e6hoqZ~]#

以上显示安装成功!

5、重启 Apache,查看 phpinfo:

[root@iZ23d~]# systemctl restart httpd.service

检查phpinfo:

PHP Version 7.0.0

SystemLinux iZ23d 3.10.0-229.11.1.el7.x86_64#1 SMP Thu Aug 6 01:06:18 UTC 2015 x86_64

Build DateDec 2 2015 20:43:38

Server APIApache 2.0 Handler

Virtual Directory Supportdisabled

Configuration File(php.ini) Path/etc

Loaded Configuration File/etc/php.ini

Scan this dir for additional.ini files/etc/php.d

Additional.ini files parsed/etc/php.d/bz2.ini,/etc/php.d/calendar.ini,/etc/php.d/ctype.ini,/etc/php.d/curl.ini,/etc/php.d/exif.ini,/etc/php.d/fileinfo.ini,/etc/php.d/ftp.ini,/etc/php.d/gettext.ini,/etc/php.d/gmp.ini,/etc/php.d/iconv.ini,/etc/php.d/json.ini,/etc/php.d/phar.ini,/etc/php.d/shmop.ini,/etc/php.d/simplexml.ini,/etc/php.d/sockets.ini,/etc/php.d/tokenizer.ini,/etc/php.d/xml.ini,/etc/php.d/zip.ini

PHP API20151012

PHP Extension20151012

Zend Extension320151012

Zend Extension BuildAPI320151012,NTS

PHP Extension BuildAPI20151012,NTS

Debug Buildno

Thread Safetydisabled

Zend Signal Handlingdisabled

Zend Memory Managerenabled

Zend Multibyte Supportdisabled

IPv6 Supportenabled

DTrace Supportenabled

Registered PHP Streamshttps, ftps, compress.zlib, php, file, glob, data, http, ftp, compress.bzip2, phar, zip

Registered Stream Socket Transportstcp, udp, unix, udg, ssl, sslv3, sslv2, tls, tlsv1.0, tlsv1.1, tlsv1.2

Registered Stream Filterszlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, bzip2.*, convert.iconv.*

This program makes use of the Zend Scripting Language Engine:

Zend Engine v3.0.0, Copyright(c) 1998-2015 Zend Technologies

Configuration

apache2handler

Apache VersionApache/2.4.6(CentOS)

Apache API Version20120211

Server Administratorxxxxxx@xxxxxx.com

Hostname:Portxxxx.xxxxx.xxx:0

User/Groupapache(48)/48

Max RequestsPer Child: 0- Keep Alive: on- Max Per Connection: 100

TimeoutsConnection: 60- Keep-Alive: 15

Virtual ServerYes

Server Root/etc/httpd

Loaded Modulescore mod_so http_core mod_access_compat mod_actions mod_alias mod_allowmethods mod_auth_basic mod_auth_digest mod_authn_anon mod_authn_core mod_authn_dbd mod_authn_dbm mod_authn_file mod_authn_socache mod_authz_core mod_authz_dbd mod_authz_dbm mod_authz_groupfile mod_authz_host mod_authz_owner mod_authz_user mod_autoindex mod_cache mod_cache_disk mod_data mod_dbd mod_deflate mod_dir mod_dumpio mod_echo mod_env mod_expires mod_ext_filter mod_filter mod_headers mod_include mod_info mod_log_config mod_logio mod_mime_magic mod_mime mod_negotiation mod_remoteip mod_reqtimeout mod_rewrite mod_setenvif mod_slotmem_plain mod_slotmem_shm mod_socache_dbm mod_socache_memcache mod_socache_shmcb mod_status mod_substitute mod_suexec mod_unique_id mod_unixd mod_userdir mod_version mod_vhost_alias mod_dav mod_dav_fs mod_dav_lock mod_lua prefork mod_proxy mod_lbmethod_bybusyness mod_lbmethod_byrequests mod_lbmethod_bytraffic mod_lbmethod_heartbeat mod_proxy_ajp mod_proxy_balancer mod_proxy_connect mod_proxy_express mod_proxy_fcgi mod_proxy_fdpass mod_proxy_ftp mod_proxy_http mod_proxy_scgi mod_proxy_wstunnel mod_ssl mod_systemd mod_cgi mod_perl mod_php7

以上显示 php7安装成功!

CentOS下ethtool命令详解

ethtool是用于查询及设置网卡参数的命令。

使用概要:

ethtool ethx//查询ethx网口基本设置,其中 x是对应网卡的编号,如eth0、eth1等等

ethtool–h//显示ethtool的命令帮助(help)

ethtool–i ethX//查询ethX网口的相关信息

ethtool–d ethX//查询ethX网口注册性信息

ethtool–r ethX//重置ethX网口到自适应模式

ethtool–S ethX//查询ethX网口收发包统计

ethtool–s ethX [speed 10|100|1000] [duplex half|full][autoneg on|off]//设置网口速率10/100/1000M、设置网口半/全双工、设置网口是否自协商

使用举例:

1)[root@linux/]# ethtool eth1

Settings for eth1:

Supported ports: [ TP ]

Supported link modes: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

1000baseT/Full

Supports auto-negotiation: Yes

Advertised link modes: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

1000baseT/Full

Advertised auto-negotiation: Yes

Speed: 1000Mb/s

Duplex: Full

Port: Twisted Pair

PHYAD: 0

Transceiver: internal

Auto-negotiation: on

Supports Wake-on: umbg

Wake-on: d

Link detected: yes

2)[root@linux/]# ethtool-i eth1

driver: e1000

version: 5.0.43-k1

firmware-version: N/A

bus-info: 06:08.1

3)[root@linux/]# ethtool-S eth1

NIC statistics:

rx_packets: 58068300

tx_packets: 87124083

rx_bytes: 1589713008

tx_bytes: 2165825901

rx_errors: 0

tx_errors: 0

rx_dropped: 0

tx_dropped: 0

multicast: 0

collisions: 0

rx_length_errors: 0

rx_over_errors: 0

rx_crc_errors: 0

rx_frame_errors: 0

rx_fifo_errors: 0

rx_missed_errors: 0

tx_aborted_errors: 0

tx_carrier_errors: 0

tx_fifo_errors: 0

tx_heartbeat_errors: 0

tx_window_errors: 0

4)[root@linux/]# ethtool-s eth1 autoneg off speed 100 duplex full

相关参考:

1)[root@linux/]# which ethtool//查询 ethtool存放的路径

/sbin/ethtool

2)[root@linux/]# rpm-qf/sbin/ethtool//查询 ethtool的版本信息

ethtool-1.6-5

3)将 ethtool设置永久保存在网络设备的方法

解决方法一:

ethtool设置可通过/etc/sysconfig/network-scripts/ifcfg-ethX文件保存,从而在设备下次启动时激活选项。

例如:ethtool-s eth0 speed 100 duplex full autoneg off

此指令将eth0设备设置为全双工自适应,速度为100Mbs。若要eth0启动时设置这些参数,修改文件/etc/sysconfig/network-scripts/ifcfg-eth0,添加如下一行:

ETHTOOL_OPTS="speed 100 duplex full autoneg off"

解决方法二:

将ethtool设置写入/etc/rc.d/rc.local之中。

怎样通俗地理解Linux(Debian)中软件包互相之间的依赖

不管是初步跨入Linux殿堂的新手,还是具有多年经验的专家,在安装或编译软件包的过程中或多或少的都会遇到包的依赖问题,从而导致安装过程无法继续,比如管理员在安装LAMP时,包需要libgd.so文件,而这个文件属于GD软件包。但是在安装GD软件包时,可能这个软件包跟其他软件包又具有依赖关系,又需要安装其他软件包才行。这时有的管理员便失去耐心。在遇到这种Linux软件包依赖关系问题时,该如何解决呢?在谈这个具体的措施之前,先跟大家聊聊Linux系统里的软件依赖性问题。

一、什么是依赖性

程序依赖于程序代码的共享库,以便它们可以发出系统调用将输出发送到设备或打开文件等(共享库存在于许多方面,而不只局限于系统调用)。没有共享库,每次程序员开发一个新的程序,每个程序员都需要从头开始重写这些基本的系统操作。当编译程序时,程序员将他的代码链接到这些库。如果链接是静态的,编译后的共享库对象代码就添加到程序执行文件中;如果是动态的,编译后的共享库对象代码只在运行时需要它时由程序员加载。动态可执行文件依赖于正确的共享库或共享对象来进行操作。rpm依赖性尝试在安装时强制实施动态可执行文件的共享对象需求,以便在以后当程序运行时不会有与动态链接过程有关的任何问题。

注意:还有一种类型的依赖性,它基于显式的条目,rpm通过程序员将该依赖性强加到rpm配置文件中,但目前我们不关心这种类型的依赖性,这种依赖性比较容易解决。这里将重点放在rpm强制实施的更加复杂的共享对象依赖性。

二、动态可执行文件和共享对象

动态可执行文件使用最初编译和链接程序时使用的库文件的共享对象名称来查找共享对象。它们在少数的几个标准位置查找,比如在/lib和/usr/lib目录及在LD_LIBRARY_PATH环境变量(主要用于指定查找共享库,比如我们在安装Oracle时指定路径,exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib)指定的目录中。顺便提一下,在这些库目录中找到的共享对象可能不是真正的文件;它们可能是指向位于其他位置的真实库文件的符号链接(但通常仍旧在标准库目录的一个目录中)。至少从系统管理员的观点是在用于创建共享库文件的共享库软件包的名称和共享库文件的名称之间通常没有什么关系。例如,GLIBC2.3软件包用于创建libc.so.6共享库文件。也从本示例中注意到,添加到共享库文件名结束的版本号(.6)跟用于创建它的版本号(2.3)没有关系。这是由共享库软件包开发人员有意完成的,以便GLIBC的新版本可以重用相同的共享库文件名libc.so.6。这允许您在系统上加载新版本的GLIBC,而不用中断动态链接到lib.so.6共享库文件的所有程序,当然假定新版本的GLIBC向后与动态可执行文件最初所链接的老版本GLIBC兼容。因此,即使库文件或共享对象文件有与它们相关的版本号,这些版本号也不能帮助你确定他们来自哪个版本的共享软件包。

注意:当将whatprovides选项用于rpm查询命令时,可以获得有关使用rpm软件包加载到系统的现有共享对象的信息。这种混乱是由下面的事实造成的:单个共享库文件可能支持某个范围的共享库软件包版本。例如,要检查soname库文件/lib/libc.so.6支持的GLIBC共享库软件包,运行下面的命令:

#objdump--all-headers/lib/libc.so.6|less

向下滚动此报告,直到到达Versiondefinitions:部分,以便查看libc.so.6共享库文件支持哪些GLIBC版本:

Versiondefinitions:

10x010x0865f4e6libc.so.6

20x000x0d696910GLIBC_2.0

30x000x0d696911GLIBC_2.1

GLIBC_2.0

40x000x09691f71GLIBC_2.1.1

GLIBC_2.1

50x000x09691f72GLIBC_2.1.2

GLIBC_2.1.1

60x000x09691f73GLIBC_2.1.3

GLIBC_2.1.2

70x000x0d696912GLIBC_2.2

GLIBC_2.1.3

80x000x09691a71GLIBC_2.2.1

GLIBC_2.2

90x000x09691a72GLIBC_2.2.2

GLIBC_2.2.1

100x000x09691a73GLIBC_2.2.3

GLIBC_2.2.2

110x000x09691a74GLIBC_2.2.4

GLIBC_2.2.3

120x000x09691a76GLIBC_2.2.6

GLIBC_2.2.4

130x000x0d696913GLIBC_2.3

GLIBC_2.2.6

140x000x09691972GLIBC_2.3.2

GLIBC_2.3

150x000x09691973GLIBC_2.3.3

GLIBC_2.3.2

160x000x09691974GLIBC_2.3.4

GLIBC_2.3.3

170x000x0d696914GLIBC_2.4

GLIBC_2.3.4

180x000x0d696915GLIBC_2.5

GLIBC_2.4

190x000x0963cf85GLIBC_PRIVATE

GLIBC_2.5

200x000x0b792650GCC_3.0

在本示例中,1ibc.so.6共享库文件支持原先为GLIBC版本2.0到2.5而开发的所有动态执行文件。注意:也可以使用objdump命令来从共享库文件中提取soname,命令如下所示:

#objdump--all-headers/lib/libcrypto.so.0.9.8b|grepSONAME

SONAMElibcrypto.so.6

objdump:/lib/libcrypto.so.0.9.8b:norecognizeddebugginginformation

接下来,将讨论rpm软件包是如何生成的,以便在新系统上安装rpm软件包时,这些共库依赖性是己知的。

三、Rpm软件包和共享库依赖性

当程序员生成rpm软件包时,ldd命令用于报告动态可执行文件软件包中所有动态可执行文件使用的所有共享库。另一个混乱是由下面的事实带来的:相同软件包中的不同动态可执行文件可能与相同的共享库软件包的不同版本进行链接。例如,Heartbeat软件包中的不同程序可能已经进行了开发,并动态链接到libc.so.6sonmae共享库文件的不同GLIBC版本。对rpm命令使用-q和--requires参数,可以看到rpm软件包需要的共享库的完整清单。例如,要看到Heartbeatrpm软件包所有的所需依赖性,请使用命令:

#rpm-q--requires-pheartbeat-1.x.x.i386.rpm

这产生了下面的报告:

sysklogd

/bin/sh

/bin/sh

/usr/bin/python

ld-linux.so.2

libapphb.so.0

libc.so.6

libc.so.6(GLIBC_2.0)

libc.so.6(GLIBC_2.1)

libc.so.6(GLIBC_2.1.3)

libc.so.6(GLIBC_2.2)

libc.so.6(GLIBC_2.3)

libccmclient.so.0

libdl.so.2

libglib-1.2.so.0

libhbclient.so.0

libpils.so.0

libplumb.so.0

libpthread.so.0

librt.so.1

libstonith.so.0

注意,在此报告中,libc.so.6soname是所需要的,此共享库必须支持使用GLIBC共享软件包版本号2.0、2.1、2.1.3、2.2和2.3进行链接的动态可执行文件。这是由下面的事实决定的:Heartbeat软件包中的不同动态可执行文件是针对不同版本的libc.so.6库的每个版本进行链接的。在了解了动态可执行文件、共享对象、soname和共享库软件包彼此是如何相关的后,下面准备来看这样的一个例子:当尝试安装rpm软件包,并且它由于依赖性错误而失败时,会发生什么。yum能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

四、手工解决依赖性问题

通常,当尝试安装发行版中没有包括的软件包(及不能由像up2date、apt-get或Yum一样的更新工具自动解决其依赖性的软件包)时,将碰到rpm依赖性错误。例如,如果尝试在老的Linux发行版上使用rpm–ivh*rpm命令,例如所有的Heartbeatrpm包,那么在安装过程中就可能碰到下面的错误:

error:faileddependencies:

libc.so.6(GLIBC_2.3)isneededbyheartbeat-1.x.x

libc.so.6(GLIBC_2.3)isneededbyheartbeat-pils-1.x.x

libcrypto.so.0.9.6isneededbyheartbeat-stonith-1.x.x

libsnmp-0.4.2.6.soisneededbyheartbeat-stonith-1.x.x

注意,rpm命令没有干扰报告所需的每个GLIBC共享库软件包版本号——它只报告所需的最高编号的版本号(GLIBC_2.3)。(假定原来的软件包开发人员不会将相同软件包中的可执行文件链接到不兼容版本的共享库软件包)所有的这些故障都报告所需的共享库名称或soname(而不是文件名称,soname始终以“lib”开始)。但可以删除添加到rpm报告的soname结束的版本号,并快速检查以查看是否在系统中使用locate命令安装这些共享库(假设您的locate数据库是最新的,有关更多信息,请参阅locate或slocate的手册页)。例如,要查找libcrypto享库文件,要输入:

#locatelibcrypto

[root@localhost~]#locatelibcrypto

/lib/libcrypto.so.0.9.8b

/lib/libcrypto.so.6

/root/.Trash/vmware-tools-distrib/lib/lib32/libcrypto.so.0.9.8

/root/.Trash/vmware-tools-distrib/lib/lib32/libcrypto.so.0.9.8/libcrypto.so.0.9.8

/root/.Trash/vmware-tools-distrib/lib/lib64/libcrypto.so.0.9.8

/root/.Trash/vmware-tools-distrib/lib/lib64/libcrypto.so.0.9.8/libcrypto.so.0.9.8

/usr/lib/libcrypto.a

/usr/lib/libcrypto.so

/usr/lib/pkgconfig/libcrypto.pc

/usr/lib/vmware-tools/lib32/libcrypto.so.0.9.8

/usr/lib/vmware-tools/lib32/libcrypto.so.0.9.8/libcrypto.so.0.9.8

/usr/lib/vmware-tools/lib64/libcrypto.so.0.9.8

/usr/lib/vmware-tools/lib64/libcrypto.so.0.9.8/libcrypto.so.0.9.8

如果此命令没有在系统上找到一个libcrypto共享库文件,将需要转到Internet并找出哪个共享库软件包包含此共享库文件。完成此项工具的一个快速和简便方式是只要在上将共享库的名称输入到搜索栏中。如果将文本libcrypto.so输入到此搜索贞中,将很快知道此共享库是由openssl软件包提供的。

如果老版本的共享库数据包已经安装在系统上,可以用如下的命令确认此软件包含您需要的共享库文件:

#rpm-q--providesopenssl

[root@localhost~]#rpm-q--providesopenssl

config(openssl)=0.9.8b-10.el5

lib4758cca.so

libaep.so

libatalla.so

libchil.so

libcrypto.so.6

libcswift.so

libgmp.so

libnuron.so

libssl.so.6

libsureware.so

libubsec.so

openssl=0.9.8b-10.el5

此命令报告此rpm软件包中提供的所有内容(这包括软件包提供的共享库文件的soname)。注意:如前面指出的,共享库软件包版本号没有并且应该没有与共享库文件(soname)版本号的任何对应关系。这里不进行这方面的讨论,因为soname符号链接可能指向不同版本的共享库文件,这也是在尽量避免在安装新版本的共享软件包时中断现有动态可执行文件的情况下完成的。

五、自动解决依赖性故障

当您使用rpm软件包来生成、升级或添加新的特性到系统时,依赖性故障可能很快变成一场恶梦。只要通过使用您的发行版供应商的升级服务或工具,就可以避免这场恶梦。例如,当选择要安装的rpm软件包时,RedHat工具up2date自动从RedHat下载并安装所有rpm依赖性。下面就点上列出了几个完成相同事情的支持社区的免费方法:。下面将只进一步看到这些自动更新工具中的一种:Yum。

1.使用Yum来安装rpm软件包

Yum(YellowdogUpdater,Modified)程序可从下面网址下载:

在下载了此软件包后,可以使用下面的命令像任何其他rpm软件包那样安装它:

#rpm-ivhyum*

您可能需要更新想用于下载您的rpm软件包的存储库。有关Fedora的可用Yum存储库的清单在要切换到不同的存储库,下载这些文件中的一个文件,并将该文件作为/etc/yum.conf文件安装。现在可以用下面的命令告诉Yum报告存储在Yum存储库中、可用于安装所有软件包:

#yumlist

[root@localhost~]#yumlist|more

ThissystemisnotregisteredwithRHN.

RHNsupportwillbedisabled.

Loading"security"plugin

Loading"rhnplugin"plugin

InstalledPackages

Deployment_Guide-en-US.noarch5.2-9installed

Deployment_Guide-zh-CN.noarch5.2-9installed

Deployment_Guide-zh-TW.noarch5.2-9installed

GConf2.i3862.14.0-9.el5installed

GConf2-devel.i3862.14.0-9.el5installed

ImageMagick.i3866.2.8.0-4.el5_1.1installed

MAKEDEV.i3863.23-1.2installed

MySQL-python.i3861.2.1-1installed

NetworkManager.i3861:0.6.4-8.el5installed

NetworkManager-glib.i3861:0.6.4-8.el5installed

2.用Yum安装新的rpm软件包

在本示例中,将安装新的GLIBC软件包。用简单的命令安装最新的GLIBC及其所有依赖性:

#yumupdateglibc

如果一切正常,Yum程序将自动检测、下载并安装最新GLIBC软件包所需要的所有rpm软件包(这里的GLIBC软件包是为您的发行版而构建的,不一定是可用的最新版GLIBC软件包(使用发行版所批准的GLIBC共享库软件包版本号或冒险安装没有使用正常系统操作所需要的动态可执行文件的GLIBC软件包版本)。也可以将list参数用于Yum和grep命令来查找要安装的软件包。例如,要查找名称中有SNMP的软件包,请输入:

#yumlist|grepsnmp

此命令返回如下报告:

ThissystemisnotregisteredwithRHN.

RHNsupportwillbedisabled.

net-snmp.i3861:5.3.1-24.el5installed

net-snmp-libs.i3861:5.3.1-24.el5installed

net-snmp-perl.i3861:5.3.1-24.el5installed

net-snmp-utils.i3861:5.3.1-24.el5installed

现在可以容易地使用YUM下载并安装所有这些rpm软件包。

六、关于升级Gilbc的建议

Glibc库是Linux底层的运行库,其性能对于整个系统的运行有重要的意义。Glibc库包含了大量函数,其中的函数可大致分成两类,一类是与操作系统核心沟通的系统调用接口,它们作为功能型函数被调用,提供对Linux操作系统调用的包装与预处理。另外一类为一般的函数对象,它们提供了经常使用的功能的实现,作为工具型函数使用。在实践中,有不少软件就是依赖与Glibc版本才能安装并运行,说白了对于Glibc版本要求是版本高了不行,低了还不成。这些编译环境中的应用程序也和其它程序一样必须有运行的环境,我常遇到管理员在生产中给服务器装了最新的Linux发行版,结果应用软件装不上去,原因是Glibc的版本不对,有的是写在原发行版glibc上升级有的是降级,结果倒是整个系统的崩溃,实践经验告诉我,你只有选择相应Linux发行版里对应的glibc,例如我们单位的一个应用软件时在rhel3.0下开发的,那么就得要对应的发行版,换了别的就难说了,任何自己升级或降级Glibc来适应应用软件的做法都是不可取的,问题最后的解决方法是找到了RHEL3装上就解决了。在表一中,我把几个linux发行版原配的Glibc版本列出,供大家参考。

点击图片查看大图

Glibc库与核心功能组件

上图一说明:

GCC依赖于glibc

binutils依赖于glibc(binutils提供了一系列用来创建、管理和维护二进制目标文件的工具程序,如汇编(as)、连接(ld)、静态库归档(ar)、反汇编)

make依赖于glibc

头文件是在编译时候gcc所需要的,但本身都是一些文本文件,因此没有需要的运行环境。

常用工具依赖于glibc和各种需要用到的动态库。

下表一列出了多个重要Linux发行版的Glibc的情况

Linux发行版Glibc版本

Redhat9glibc-2.3.2-5

Fedora1glibc-2.3.2

RedhatEnterpriseLinuxAs3glibc-2.3.2-95

RedhatEnterpriseLinuxAs4glibc-2.3.4

RedhatEnterpriselinux5glibc-2.5-24

RedhatEnterpriselinux6glibc-2.9

Centos5.xglibc-2.5

SuseLinuxEnterpriseServer9glibc-2.3.2-92

SuseLinuxenterpriseServer10glibc-2.4.31.54

SuseLinuxEnterpriseServer11glibc-2.9

点击图片查看大图

Linux发行版glibc(32)位

下面介绍几个查询glibc版本号的方法:

#ls–al/lib/libc*

或者是用下面的命令也可以实现

#rpm–qp|grepglibc

基于debian的系统通过dpkg–l|greplibc6也可以查到,总之一般都在/usr/share/doc目录下都能看到glibc的相关信息。

七、小结

大部分情况下,在遇到软件包依赖关系问题的时候,操作系统提供的文件名字与软件包名字都会有直接的联系。有可能文件的名字就是软件包的名字。但是有些时候文件的名字与软件包的名字会相差甚远。此时大部分系统管理员可能光凭文件名字无法找到对应的软件包。此时可以先在系统安装光盘里找,如果找到那时最佳选项,然后就需要借助笔者上面谈到的一些专业网站,去查询软件包的名字了。当系统管理员安装了某个软件之后,如果存在软件包之间的依赖关系,则最好能够拿本子或者通过其他手段记录下来。以便下次方便实用,注意工作中的积累,相信绝大部分的软件包依赖关系问题都会迎刃而解。

阅读剩余
THE END