时间 2015-07-07 12:56:00 博客园-原创精华区
原文 http://www.cnblogs.com/Wherebolezi/p/4626670.html
主题 Yum
前言:本帖仅适用于RedHat、CentOS的64位系统
很多时候我们需要用linux运行或测试程序,然而我们发现64位linux系统在检测32位程序的动态链接库文件时(也就是ldd一个so文件)会报错:
不是动态可执行文件【或英文提示: not a dynamic executable file 】
这是因为系统没有安装32位兼容库的缘故,我们分两大方法解决这个问题→ 有网络/ 无网络
一、当前使用linux系统已连接网络情况下,可进行在线安装
yum在线安装: sudo yum install xulrunner.i686
或:
sudo yum install ia32-libs.i686
Ubuntu系统: sudo apt-get install ia32-libs
但是在这里要附带说明一下,RedHat系统默认是需要注册才能使用yum的在线安装功能的,如果没有注册系统会提示:
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
如果您不想花钱注册,请参考B计划:【 使用CentOS的网络资源配置yum源 】
备份原repo文件: mv /etc/yum.repos.d/rhel-debuginfo.repo /etc/yum.repos.d/rhel-debuginfo.repo.repo.bak
编辑repo文件: vi /etc/yum.repos.d/rhel-debuginfo.repo
内容为:
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.163.com/centos/6.0/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.163.com/centos/6.0/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#packages used/produced in the build but not released
#[addons] #name=CentOS-$releasever - Addons
#baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/
#gpgcheck=1
#gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.163.com/centos/6.0/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.163.com/centos/6.0/centosplus/$basearch/
gpgcheck=1
enabled=0
编辑完成后使用:yum clean all清理yum包
使用yum install vim或yum install xulrunner.i686 命令安装32位运行库
二、所使用的linux系统为封闭式网路,无法连接外网
这种情况下我们需要有安装光盘,也就是安装当前linux系统所使用的安装光盘,也可以分为两种情况
1): 使用iso镜像文件挂载
1.创建iso存放目录和挂载目录 mkdir /mnt/iso mkdir /mnt/cdrom
2. 将iso镜像文件复制到/mnt/iso文件夹下
3. 将/mnt/iso/下的iso文件挂载到/mnt/cdrom目录 mount -o loop /mnt/iso/XXXXX.iso /mnt/cdrom <注:挂载完之后对其操作会提示设备繁忙,此时需要
umount解开挂载才行> 查看是否挂载成功: df -h <用来查看系统中所有挂载的,mount也可以>
4. cd /etc/yum.repos.d/ ==> 创建自己的.repo文件 touch myself.repo ==> vi myself.repo
[base]
name=RedHat
baseurl=file:///mnt/cdrom #注:这里的baseurl就是你挂载的目录,在这里是/mnt/cdrom
enabled=1
gpgckeck=0
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release #注:此参数可以cd /mnt/cdrom/看到,此参数仅供参考
5. 测试:
yum clean all ==> yum install vim* 如果无效则使用 yum install xulrunner.i686
2:)使用已挂载的镜像文件配置yum源 【光盘已经挂载在media文件中,显示的是已经解压的iso镜像文件】
1. 挂载光盘 mount /dev/cdrom /media 通常会提示:
mount: block device /dev/sr0 is write-protected, mounting read-only
意思是当前光盘是以只读方式挂载的,可以忽略,你也可以添加参数挂载 :
mount -ro -loop /dev/cdrom /media #以只读方式挂载,就不会报错了
2. 建立yum配置文件 vi /etc/yum.repos.d/local.repo 内容如下:
[base]
name=linux6
baseurl=file:///media
gpgcheck=0
enable=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
3. 修改YUM源地址 vi /usr/lib/python2.6/site-packages/yum/yumRepo.py
在末行模式下(也就是输入状态下按了ESC的状态),输入/remote可以查找remote单词
找到 remote = url +'/' + relative 修改为: remote = '/yum' + relative
4. 测试: yum clean all 安装: yum install vim* 或者使用 yum install xulrunner.i686
如果系统在安装一大堆的i686包就代表完成了
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
安装软件(以foo-x.x.x.rpm为例):yum install foo-x.x.x.rpm
删除软件:yum remove foo-x.x.x.rpm或者yum erase foo-x.x.x.rpm
升级软件:yum upgrade foo或者yum update foo
查询信息:yum info foo
搜索软件(以包含foo字段为例):yum search foo
显示软件包依赖关系:yum deplist foo
-e 静默执行 -t 忽略错误 -R[分钟] 设置等待时间 -y 自动应答yes --skip-broken 忽略依赖问题 --nogpgcheck 忽略GPG验证
check-update 检查可更新的包 clearn 清除全部 clean packages 清除临时包文件(/var/cache/yum 下文件)
clearn headers 清除rpm头文件 clean oldheaders 清除旧的rpm头文件 deplist 列出包的依赖 list 可安装和可更新的RPM包
list installed 已安装的包 list extras 已安装且不在资源库的包 info 可安装和可更新的RPM包 信息
info installed 已安装包的信息(-qa 参数相似) install[RPM包] 安装包
localinstall 安装本地的 RPM包 update[RPM包] 更新包 upgrade 升级系统 search[关键词] 搜索包 provides[关键词] 搜索特定包文件名
reinstall[RPM包] 重新安装包 repolist 显示资源库的配置 resolvedep 指定依赖 remove[RPM包] 卸载包