CentOS在没有网络连接的情况下安装rpm包
时间:2015-08-19 22:44 来源:linux.it.net.cn 作者:IT
因为没有网络连接,所以yum使用不了,这是我在手动安装时遇到的一些问题及其解决办法
一. 首先想到的方法应该是挂载centos ios镜像,因为里面的packages有本版本的所有rpm包,最好是本机安装的镜像。步骤如下:
1、先把光盘挂上
mount -o loop /mnt/iso/CentOS5.iso /mnt/cdrom
2、理解个道理
CentOS有两个yum源,它们在/etc/yum.repos.d/下面有两个文件:CentOS-Base.repo和CentOS-Media.repo。但这两个源不是同时使用的,默认使用的是采用互联网升级的CentOS-Base.repo源(这文件里都是网址,你可以自己看看),除非我们手动修改让系统使用Media源,而Media源就是指计算机本地的源,就包含我们方才挂上的本地光盘。
3、开始操作
首先,把CentOS-Base.repo文件改名,让系统找不到该文件,从而不能使用互联网的更新方式:
mv CentOS-Base.repo CentOS-Base.repo.bak
然后,
cpCentOS-Media.repo CentOS-Media.repo.bak
vi CentOS-Media.repo
把以下三行的后两行删除
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
第一行修改为挂载光盘的路径,如下:
baseurl=file:////mnt/cdrom/
然后,找到这个属性,将值改成1,这样就打开了本地源文件的使能开关。
enabled=0
改成
enabled=1
保存即可。
然后可以通过yum check-update 或者yum install * 来测试源是否成功和生效。
但是这样做有个问题,就是你的这个源和你系统的源有可能不同,这就需要你挂载装机的iso镜像。如果不是的话,你在yum安装时,会出现依赖包版本不一,仍然无法安装,不知道能不能将其依赖包也更新?
二.手动安装。
如果实在找不到源的话,只能自己手动安装了,缺少哪个包就google里搜索哪个包,当然不是随便下载,需要找对版本,因为其依赖包可能已经安装,需要下载和其依赖包相同的版本。如果运气不好的话,依赖-依赖-依赖-依赖,这个栈要有好几层。下面是常用的下载包的网址:
http://rpmfind.net/linux/RPM/index.html
http://vault.centos.org/
http://mirror.centos.org/centos/
这里面有每个版本具体包下载,其中http://vault.centos.org/ 中的包是最全的,官方不赞成使用某些包,原因是
This directory (and version of CentOS) is deprecated. For normal users,
you should use /6/ and not /6.6/ in your path. Please see this FAQ
concerning the CentOS release scheme:
https://wiki.centos.org/FAQ/General
If you know what you are doing, and absolutely want to remain at the 6.6
level, go to http://vault.centos.org/ for packages.
Please keep in mind that 6.0, 6.1, 6.2, 6.3, 6.4 , 6.5 and 6.6 no longer gets any updates, nor
any security fix's.
下面记录下我手动安装包时的顺序:
mpfr-2.4.1-6.el6.x86_64.rpm
cpp-4.4.7-4.el6.x86_64.rpm
ppl-0.10.2-11.el6.x86_64.rpm
cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
gcc-4.4.7-4.el6.x86_64.rpm
libstdc++-4.4.7-4.el6.i686.rpm
libstdc++-devel-4.4.7-4.el6.i686.rpm
gcc-c++-4.4.7-4.el6.x86_64.rpm
rpm -ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm
elfutils-libelf-devel-0.152-1.el6.x86_64.rpm
glibc-devel-2.12-1.132.el6.i686.rpm
libaio-devel-0.3.107-10.el6.i686.rpm
libaio-devel-0.3.107-10.el6.x86_64.rpm
libaio-0.3.107-10.el6.i686.rpm
unixODBC-2.2.14-14.el6.x86_64.rpm
unixODBC-devel-2.2.14-14.el6.x86_64.rpm
下面是安装过程中遇到的一些问题:
1. 包冲突的问题
file /usr/lib64/libstdc++.so.6 from install of lib64stdc++6-4.6.1-2.x86_64 conflicts with file from package libstdc++-4.4.7-11.el6.x86_64 file /usr/lib64/libstdc++.so.6 from install of lib64stdc++6-4.6.1-2.i686 conflicts with file from package libstdc++-4.4.7-11.el6.i686
一般情况下直接
yum -y remove libstdc++-4.4.7-11.el6.i686
yum -y remove libstdc++-4.4.7-11.el6.x86_64
但是这样有可能将依赖包全部卸载,使事情更糟糕
2. 互相依赖的问题
如果手动安装rpm包的话,很多情况下会出现两个包互相依赖
# rpm -ivh elfutils-devel-0.125-3.el5.i386.rpm
warning: elfutils-devel-0.125-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
elfutils-devel-static = 0.125-3.el5 is needed by elfutils-devel-0.125-3.el5.i386
elfutils-libelf-devel = 0.125-3.el5 is needed by elfutils-devel-0.125-3.el5.i386
# rpm -ivh elfutils-devel-static-0.125-3.el5.i386.rpm
warning: elfutils-devel-static-0.125-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
elfutils-devel = 0.125-3.el5 is needed by elfutils-devel-static-0.125-3.el5.i386
elfutils-libelf-devel-static = 0.125-3.el5 is needed by elfutils-devel-static-0.125-3.el5.i386
这种情况下,只需要将两个包一起安装就可以了,即:
rpm -ivh elfutils-devel-0.125-3.el5.i386.rpm elfutils-devel-static-0.125-3.el5.i386.rpm
也是人才
参考:
file xxx from install of xxx conflicts with file from xxx
Linux下,如何安装有互相依赖关系的RPM包[转]
安装oracle11g R2 缺少依赖包
CentOS 将 yum 源设置成本地IOS镜像
(责任编辑:IT)
因为没有网络连接,所以yum使用不了,这是我在手动安装时遇到的一些问题及其解决办法 一. 首先想到的方法应该是挂载centos ios镜像,因为里面的packages有本版本的所有rpm包,最好是本机安装的镜像。步骤如下: 1、先把光盘挂上 mount -o loop /mnt/iso/CentOS5.iso /mnt/cdrom 2、理解个道理 CentOS有两个yum源,它们在/etc/yum.repos.d/下面有两个文件:CentOS-Base.repo和CentOS-Media.repo。但这两个源不是同时使用的,默认使用的是采用互联网升级的CentOS-Base.repo源(这文件里都是网址,你可以自己看看),除非我们手动修改让系统使用Media源,而Media源就是指计算机本地的源,就包含我们方才挂上的本地光盘。 3、开始操作 首先,把CentOS-Base.repo文件改名,让系统找不到该文件,从而不能使用互联网的更新方式: mv CentOS-Base.repo CentOS-Base.repo.bak 然后, cpCentOS-Media.repo CentOS-Media.repo.bak vi CentOS-Media.repo 把以下三行的后两行删除 baseurl=file:///media/CentOS/ file:///media/cdrom/ file:///media/cdrecorder/ 第一行修改为挂载光盘的路径,如下: baseurl=file:////mnt/cdrom/ 然后,找到这个属性,将值改成1,这样就打开了本地源文件的使能开关。 enabled=0 改成 enabled=1 保存即可。 然后可以通过yum check-update 或者yum install * 来测试源是否成功和生效。 但是这样做有个问题,就是你的这个源和你系统的源有可能不同,这就需要你挂载装机的iso镜像。如果不是的话,你在yum安装时,会出现依赖包版本不一,仍然无法安装,不知道能不能将其依赖包也更新? 二.手动安装。 如果实在找不到源的话,只能自己手动安装了,缺少哪个包就google里搜索哪个包,当然不是随便下载,需要找对版本,因为其依赖包可能已经安装,需要下载和其依赖包相同的版本。如果运气不好的话,依赖-依赖-依赖-依赖,这个栈要有好几层。下面是常用的下载包的网址: http://rpmfind.net/linux/RPM/index.html http://vault.centos.org/ http://mirror.centos.org/centos/ 这里面有每个版本具体包下载,其中http://vault.centos.org/ 中的包是最全的,官方不赞成使用某些包,原因是 This directory (and version of CentOS) is deprecated. For normal users, you should use /6/ and not /6.6/ in your path. Please see this FAQ concerning the CentOS release scheme: https://wiki.centos.org/FAQ/General If you know what you are doing, and absolutely want to remain at the 6.6 level, go to http://vault.centos.org/ for packages. Please keep in mind that 6.0, 6.1, 6.2, 6.3, 6.4 , 6.5 and 6.6 no longer gets any updates, nor any security fix's. 下面记录下我手动安装包时的顺序: mpfr-2.4.1-6.el6.x86_64.rpm cpp-4.4.7-4.el6.x86_64.rpm ppl-0.10.2-11.el6.x86_64.rpm cloog-ppl-0.15.7-1.2.el6.x86_64.rpm gcc-4.4.7-4.el6.x86_64.rpm libstdc++-4.4.7-4.el6.i686.rpm libstdc++-devel-4.4.7-4.el6.i686.rpm gcc-c++-4.4.7-4.el6.x86_64.rpm rpm -ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm elfutils-libelf-devel-0.152-1.el6.x86_64.rpm glibc-devel-2.12-1.132.el6.i686.rpm libaio-devel-0.3.107-10.el6.i686.rpm libaio-devel-0.3.107-10.el6.x86_64.rpm libaio-0.3.107-10.el6.i686.rpm unixODBC-2.2.14-14.el6.x86_64.rpm unixODBC-devel-2.2.14-14.el6.x86_64.rpm 下面是安装过程中遇到的一些问题: 1. 包冲突的问题 file /usr/lib64/libstdc++.so.6 from install of lib64stdc++6-4.6.1-2.x86_64 conflicts with file from package libstdc++-4.4.7-11.el6.x86_64 file /usr/lib64/libstdc++.so.6 from install of lib64stdc++6-4.6.1-2.i686 conflicts with file from package libstdc++-4.4.7-11.el6.i686 一般情况下直接 yum -y remove libstdc++-4.4.7-11.el6.i686 yum -y remove libstdc++-4.4.7-11.el6.x86_64 但是这样有可能将依赖包全部卸载,使事情更糟糕 2. 互相依赖的问题 如果手动安装rpm包的话,很多情况下会出现两个包互相依赖 # rpm -ivh elfutils-devel-0.125-3.el5.i386.rpm warning: elfutils-devel-0.125-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 error: Failed dependencies: elfutils-devel-static = 0.125-3.el5 is needed by elfutils-devel-0.125-3.el5.i386 elfutils-libelf-devel = 0.125-3.el5 is needed by elfutils-devel-0.125-3.el5.i386 # rpm -ivh elfutils-devel-static-0.125-3.el5.i386.rpm warning: elfutils-devel-static-0.125-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 error: Failed dependencies: elfutils-devel = 0.125-3.el5 is needed by elfutils-devel-static-0.125-3.el5.i386 elfutils-libelf-devel-static = 0.125-3.el5 is needed by elfutils-devel-static-0.125-3.el5.i386 这种情况下,只需要将两个包一起安装就可以了,即: rpm -ivh elfutils-devel-0.125-3.el5.i386.rpm elfutils-devel-static-0.125-3.el5.i386.rpm 也是人才 参考: file xxx from install of xxx conflicts with file from xxx Linux下,如何安装有互相依赖关系的RPM包[转] 安装oracle11g R2 缺少依赖包 CentOS 将 yum 源设置成本地IOS镜像 (责任编辑:IT) |