您的位置:首页 > 理论基础 > 计算机网络

centos在没有网络连接的情况下安装rpm包

2015-08-17 21:45 736 查看
因为没有网络连接,所以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.repoCentOS-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.6from installof lib64stdc++6-4.6.1-2.x86_64
conflictswithfile
from package libstdc++-4.4.7-11.el6.x86_64file
/usr/lib64/libstdc++.so.6from install
of lib64stdc++6-4.6.1-2.i686 conflictswithfile
from package libstdc++-4.4.7-11.el6.i686
一般情况下直接
yum-yremovelibstdc++-4.4.7-11.el6.i686
yum-yremovelibstdc++-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镜像

Linux系统各发行版镜像下载(持续更新)
红帽 Red Hat Linux相关产品iso镜像下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  centos