Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1298711
  • 博文数量: 548
  • 博客积分: 7597
  • 博客等级: 少将
  • 技术积分: 4224
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-15 13:21
个人简介

嵌入式软件工程师&&太极拳

文章分类

全部博文(548)

文章存档

2014年(10)

2013年(76)

2012年(175)

2011年(287)

分类: LINUX

2011-02-17 17:26:32

RPM包的管理
rpm  --> red hat package management

rpm包分两种: 可以直接安装的rpm包,另一中rpm源码包

acl-2.2.47-2.fc9.src.rpm   <---rpm源码包,需要对他进行编译,安装编译之后的软件包
heartbeat-2.1.3-3.el5.centos.i386.rpm <--- el5 操作系统版本 i385 cpu的架构

两个常用的网站:

软件包更更丰富

1、安装rpm包
rpm -ivh name.rpm
-i install 安装
-v 显示安装进度
-h 校验软件包的hash值

# rpm -ivh   heartbeat-2.1.3-3.el5.centos.i386.rpm
warning: heartbeat-2.1.3-3.el5.centos.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
error: Failed dependencies:  《---由于依赖关系导致安装失败
        heartbeat-pils = 2.1.3-3.el5.centos is needed by heartbeat-2.1.3-3.el5.centos.i386
        heartbeat-stonith = 2.1.3-3.el5.centos is needed by heartbeat-2.1.3-3.el5.centos.i386
        libpils.so.1 is needed by heartbeat-2.1.3-3.el5.centos.i386
        libstonith.so.1 is needed by heartbeat-2.1.3-3.el5.centos.i386


需要先安装依赖的软件包:
rpm -ivh heartbeat-pils-2.1.3-3.el5.centos.i386.rpm
rpm -ivh heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm 
再安装原来的
rpm -ivh heartbeat-2.1.3-3.el5.centos.i386.rpm 


例子2: 安装xlockmore

A 、
[root@dns soft]# rpm -ivh xlockmore-5.18-2.2.el5.rf.i386.rpm
error: Failed dependencies:
        libXm.so.4 is needed by xlockmore-5.18-2.2.el5.rf.i386
^  依赖的是一个文件,怎么解决?

解决思路:
1、在网站搜,搜一下这个文件是属于哪一个软件包;
最终是上网搜索,确定是来自 openmotif 关键字包
在光盘搜索包含这关键字的软件包
ls | grep openmotif

挨个对软件包列出文件,看是否包含目标文件

2、进到光盘Server文件夹,搜索是否含有类似关键字的软件包
[root@dns Server]# ls | grep -i libXm
libXmu-1.0.2-5.i386.rpm
libXmu-devel-1.0.2-5.i386.rpm  《--这两个我认为可能的


[root@dns Server]# rpm -qlp /mnt/Server/libXmu-1.0.2-5.i386.rpm | grep -i "libXm.so.4"
确定一下可能的软件包是否包含目标文件,发现并不包含
[root@dns Server]# rpm -qlp /mnt/Server/libXmu-devel-1.0.2-5.i386.rpm | grep -i "libXm.so.4"


[root@dns Server]# rpm -qlp  openmotif22-2.2.3-18.i386.rpm | grep -i "libXm.so.4"

[root@dns Server]# rpm -qlp  openmotif-2.3.1-2.el5.i386.rpm | grep -i "libXm.so.4"
/usr/lib/libXm.so.4  <---找到了
/usr/lib/libXm.so.4.0.1

[root@dns Server]# rpm -ivh openmotif-2.3.1-2.el5.i386.rpm
error: Failed dependencies:
        libXp.so.6 is needed by openmotif-2.3.1-2.el5.i386

[root@dns Server]# ls | grep -i "libXp"
libXp-1.0.0-8.1.el5.i386.rpm
libXp-devel-1.0.0-8.1.el5.i386.rpm
libXpm-3.5.5-3.i386.rpm
libXpm-devel-3.5.5-3.i386.rpm
[root@dns Server]# rpm -qlp libXp-1.0.0-8.1.el5.i386.rpm | grep libXp.so.6
/usr/lib/libXp.so.6
/usr/lib/libXp.so.6.2.0

[root@dns Server]# rpm -ivh libXp-1.0.0-8.1.el5.i386.rpm

最后再安安装

[root@dns soft]# rpm -ivh xlockmore-5.18-2.2.el5.rf.i386.rpm


3、找一台已经成功安装过这个软件包的电脑,查看一下这个文件是来自那一个软件包

定位依赖的文件并用命令找到这个文件到底属于哪个软件包
locate 

rpm -qf 文件的绝对路径
---------------

一般rpm安装遇到的常见情景:

1、查找是否安装了某个软件包
# rpm -q openmotif
# rpm -qa | grep "openmotif"


2、列出rpm包安装完会释放什么文件到哪个路径
# rpm -qlp  tkinter-2.4.3-24.el5.i386.rpm


3、列出已经安装了的rpm包到底释放什么文件到哪个路径
# rpm -ql openmotif

4、确认某个文件来自哪个软件包
# rpm -qf /bin/cp


卸载软件包:
rpm -e acl
卸载软件包的时候也可能出现软件包的依赖关系

[root@dns Server]# rpm -e  openmotif
error: Failed dependencies:
        libXm.so.4 is needed by (installed) xlockmore-5.18-2.2.el5.rf.i386

出现依赖关系,解决的方法:
如果你确定是要卸载的话,就反向卸载。
强行卸载,涉及一些别的危险参数




危险参数:强烈建议大家,除了真的没办法才使用

--nopre  跳过预安装脚本的检测
--nopost 跳过安装后的脚本检测
--nodeps 跳过依赖关系的检测
--force  强行安装,这个参数不能用在卸载

安装软件常见参数

--root DIRECTORY  <--- 指定根目录所在的路径
--prefix NEWPATH  <--- 指定可执行文件存放的路径



-i 安装的软件包系统上原来必须没有的
-U 安装的软件包必须比当前的已经安装的软件包的版本要新,否则无法使用这个参数
-F同样可以用来“升级”软件包,可以从旧升级到新,也可以从新降级到旧,原来必须存在一个版本的包

===============================
rpm源码包的编译与安装
# rpmbuild --rebuild ./acl-2.2.47-2.fc9.src.rpm

Wrote: /usr/src/redhat/RPMS/i386/acl-2.2.47-2.i386.rpm   <---留意这几行
Wrote: /usr/src/redhat/RPMS/i386/libacl-2.2.47-2.i386.rpm
Wrote: /usr/src/redhat/RPMS/i386/libacl-devel-2.2.47-2.i386.rpm
Wrote: /usr/src/redhat/RPMS/i386/acl-debuginfo-2.2.47-2.i386.rpm




# rpm -ivh /usr/src/redhat/RPMS/i386/acl-2.2.47-2.i386.rpm
Preparing...                                                            (100%########################################### [100%]
        file /usr/bin/chacl from install of acl-2.2.47-2.i386 conflicts with file from package acl-2.2.39-3.el5.i386
^文件冲突

卸载究版本然后重新安装


练习:
1、安装oracleasm目录里的软件包
2、安装chmview目录的软件

------------------------------------
源码包安装
xlockmore-5.29.1.tar.bz2   

在安装之前先卸载原来的rpm包 rpm -e xlockmore

概括:configure ; make ; make install

1、tar xvf xlockmore-5.29.1.tar.bz2 -C /usr/src
   cd /usr/src/xlockmore-5.29.1/
2、查看帮助文档,了解软件包和了解怎么编译

3、产生编译配置文,编译配置文Makefile 就是告诉编译器该怎么去编译软件
   ./configure --help
--prefix=PREFIX  指定可执行文件安装路径
--sysconfdir=DIR 指定配置文件存放的路径
./configure --help > ./help.txt 我的习惯

./configure --without-gtk2 --without-gtk --prefix=/usr/local

4、开始编译 
make  《--读取Makefile

5、安装
make install  《---把编译的好的可执行文件安装到默认的路径或者你指定路径

报错:一般都是编译工具有问题,不全
yum install gcc-c++.i386 -y
yum install libXinerama-devel.i386


另外一个例子:
让linux 支持 ntfs 文件系统的读写

fuse-2.7.4.tar.gz  ntfs-3g-2009.4.4.tgz

make clean

fuse  查看README
./configure
make   <---产生的不是可执行文件,产生的是一个驱动模块文件
make install  <---安装驱动模块文件到指定的目录
modprobe fuse  <---加载你的驱动模块


使用这个工具:
mount.ntfs-3g  /dev/sdb1 /mnt   <---sdb1是ntfs分区





-------------------------------
yum 工具的使用 《---自动解决rpm包的依赖关系,并且把需要的软件包自动下载自动安装

yum 客户端 <---负责检测软件包的依赖关系并且解决依赖关系最后安装所有的软件包

yum 服务端(软件仓库)可以以http、ftp或者本地文件形式提供软件

1、搭建本地软件仓库
1)本地只读临时的仓库
# mkdir /share/rhel_source/
# mount -o loop /share/soft/rhel/rhel-5.3-server-i386-dvd.iso   /share/rhel_source/
2)永久的软件仓库,可以随便更新仓库里的软件
# mkdir /share/rhel_source/
# mount -o loop /share/soft/rhel/rhel-5.3-server-i386-dvd.iso   /mnt
# cp -rf /mnt/*  /share/rhel_source/

2、配置yum客户端
配置文件都存放在/etc/yum.repos.d/下,以.repo后缀结尾的文件都生效


[Server]   <---选项组的名字
name=Server  <---软件目录分类的名字
baseurl=file:///share/rhel_source/Server  <---该分类软件在软件仓库里的路径
enabled=1  <---是否启动本选项组, 1就启用,0就禁用
gpgcheck=0 <---是否启用软件包的md5校验,如果是0就禁用,并且可以省略下一行的字段
gpgkey=file:///share/rhel_source/RPM-GPG-KEY-redhat-release

。。。。。


3、测试

yum list  <---列出软件仓库的所有软件
yum clean all <---清除以前下载的仓库的信息

export LANG=en_US.UTF-8
yum grouplist

安装软件包:
yum install softname 
yum install softname -y
yum groupinstall "Development Libraries" Development\ Tools -y

卸载软件包
yum erase softname 
yum groupremove "Development Libraries"




ftp://10.1.1.20/Server   <----  这是我的服务器提供的
file:///share/rhel_source/Server 

<<<<<<<<<<<<<<<<<<<<<<<
光盘目录介绍
Cluster   <---集群套件的工具
ClusterStorage <----集群存储的工具
images<----一些镜像文件
\-- boot.iso  <---可以直接把这个文件刻录光盘,作为引导光盘使用
\-- diskboot.img  <-- 这个文件可以写到U盘,让U盘可以引导
dd if=diskboot.img of=/dev/sdb
isolinux<---一些镜像文件,专门用来作无人值守的
Server<---大多数的软件包都在这个目录
VT<---虚拟机的软件包


>>>>>>>>>>>>>>>>>>>>>>>



No more mirrors to try. 《--找不到镜像
原因:软件仓库不可用


================================
虚拟机的安装与使用
软件路径 10.1.1.20:/share/soft/vmware/VMware-workstation

# rpm -ivh  VMware-workstation-6.0.2-59824.i386.rpm

# vmware-config.pl


Do you want networking for your virtual machines? (yes/no/help) [yes] 

Configuring a bridged network for vmnet0.

Your computer has multiple ethernet network interfaces available: eth0, eth0:1.
Which one do you want to bridge to vmnet0? [eth0] eth0

The following bridged networks have been defined:

. vmnet0 is bridged to eth0

Do you wish to configure another bridged network? (yes/no) [no] 

Do you want to be able to use NAT networking in your virtual machines? (yes/no)
[yes] no

Do you want to be able to use host-only networking in your virtual machines? 
[no] yes




-------------------------


课后作业:

1、利用虚拟机安装一个新的系统,安装系统采用网络安装,输入ule_12

2、安装完之后,把管理员密码修改过来,并且要求让虚拟机的系统支持yum工具,支持nfs挂载
提示:nfs 必须安装的软件包:nfs-utils,portmap
为了能够成功挂载nfs资源,必须启动portmap服务,也就是你成功安装完以上两个工具之后,你必须运行以下命令service portmap restart才能通过mount命令挂在nfs资源
另外:强烈禁止使用危险参数安装所有的rpm包





编译和安装以下三个文件夹里软件
mail_client
mplayer  
arp-scan  
阅读(774) | 评论(0) | 转发(0) |
0

上一篇:ule笔记之03

下一篇:ule笔记之05

给主人留下些什么吧!~~