Chinaunix首页 | 论坛 | 博客
  • 博客访问: 39863
  • 博文数量: 18
  • 博客积分: 474
  • 博客等级: 下士
  • 技术积分: 260
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-20 10:08
文章分类

全部博文(18)

文章存档

2011年(18)

分类: LINUX

2011-06-20 14:49:06

下载讲课需要的软件包

mount 10.1.1.20:/share    /mnt  《---2.2.2.23
cd /mnt/
cp /mnt/rpmclass   /root


10.1.1.20:8080    2.2.2.22:8080


=================================================

软件包的分类:
    rpm包
        直接安装,但需要安装与操作系统版本吻合的,与cpu体系结构吻合
    rpm源码包
        与操作系统和cpu体系结构不相关,因为编译的时候会自动判断。
    
    源码包
        需要编译,可以更具自己的需求,对软件包的功能进行定义。

    二进制包
        类似于windows的exe,已经编译好,直接给予执行权限,然后执行,就可以向导安装。 *.bin    


rpm包的常用下载网站
    
    

包的命名:
    rpm包:
    gftp-2.0.18-3.2.2.i386.rpm
    heartbeat-2.1.3-3.el5.centos.i386.rpm

    rpm源码包:
    acl-2.2.47-2.fc9.src.rpm


    源码包:
        xlockmore-5.29.1.tar.bz2
                xxx.tar.gz



一、rpm包的安装

# rpm -ivh gftp-2.0.18-3.2.2.i386.rpm
warning: gftp-2.0.18-3.2.2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                                                           ########################################### [100%]
   1:gftp                                                              ########################################### [100%]

    -i   install
    -v   显示安装进度
    -h   尝试对包进行hash校验


# rpm -qa | grep -i vmware  <---查看某个包是否安装
VMwareWorkstation-6.0.2-59824 <---看到这个就不需要安装
    
    -q 查询
    -a 所有
 

卸载
# rpm -e VMwareWorkstation    

重新安装VMwareWorkstation
# rpm -ivh VMware-workstation-6.0.2-59824.i386.rpm
Preparing...                                                           ########################################### [100%]
   1:VMwareWorkstation                                                 ########################################### [100%]


安装具有依赖关系的包

heartbeat-2.1.3-3.el5.centos.i386.rpm
heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm
heartbeat-pils-2.1.3-3.el5.centos.i386.rpm


# rpm -ivh heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm
warning: heartbeat-stonith-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-stonith-2.1.3-3.el5.centos.i386  <---报错:缺包heartbeat-pils
        libpils.so.1 is needed by heartbeat-stonith-2.1.3-3.el5.centos.i386 <---报错:缺文件

    解决依赖关系:
        缺包:
            1、通过安装光盘去找
            2、互联网

        缺文件:
            1、在一台已经成功安装过该软件包的系统去判断该文件到底来自哪个软件包
            2、互联网搜索
                去rpmfind.net搜索文件来自rpm包

            3、在安装光盘去找去猜

            

# rpm -ivh heartbeat-pils-2.1.3-3.el5.centos.i386.rpm

Preparing...                                                           ########################################### [100%]
   1:heartbeat-pils                                                    ########################################### [100%]

# 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-stonith = 2.1.3-3.el5.centos 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-stonith-2.1.3-3.el5.centos.i386.rpm
Preparing...                                                           ########################################### [100%]
   1:heartbeat-stonith                                                 ########################################### [100%]



# 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
Preparing...                                                           ########################################### [100%]
useradd:用户 hacluster 已存在
error: %pre(heartbeat-2.1.3-3.el5.centos.i386) scriptlet failed, exit status 9
error:   install: %pre scriptlet failed (2), skipping heartbeat-2.1.3-3.el5.centos
        <--预安装脚本失败

# 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
Preparing...                                                           ########################################### [100%]
   1:heartbeat                                                         ########################################### [100%]


总结:正确安装顺序:
heartbeat-pils-2.1.3-3.el5.centos.i386.rpm
heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm
heartbeat-2.1.3-3.el5.centos.i386.rpm



安装xlockmore 屏保的rpm包

# rpm -ivh xlockmore-5.18-2.2.el5.rf.i386.rpm
rror: Failed dependencies:
        libXm.so.4 is needed by xlockmore-5.18-2.2.el5.rf.i386
    

下载安装关盘:
# mount 10.1.1.20:/mnt/sdb6/soft/rhel/   /media
# mkdir -p /share/rhel_source
# mount -o loop /media/rhel-server-5.4-i386-dvd.iso /share/rhel_source

或者:

# mount 10.1.1.22:/share/rhel5_source  /share/rhel_source
 <----共享出来的一个安装光盘里的数据



去搜索光盘里的Server目录找

# ls | grep -i libXm.so.4

# ls | grep -i libXm  <---找到很多,但最终结果都不是这些包
libxml2-2.6.26-2.1.2.8.i386.rpm  <---可能,去猜
libxml2-devel-2.6.26-2.1.2.8.i386.rpm 排除
libxml2-python-2.6.26-2.1.2.8.i386.rpm 排除
libXmu-1.0.2-5.i386.rpm  <----可能,去猜
libXmu-devel-1.0.2-5.i386.rpm 排除
perl-libxml-perl-0.08-1.2.1.noarch.rpm  排除
perl-XML-LibXML-1.58-5.i386.rpm  排除
perl-XML-LibXML-Common-0.13-8.2.2.i386.rpm 排除  

    过滤法则:排除一些一看就知道不是的包


查看包是否包含缺少的文件:
    rpm -qlp  xxx.rpm
        -q 查询
        -l 列出文件
        -p 从指定一个rpm文件


# rpm -qlp libxml2-2.6.26-2.1.2.8.i386.rpm | grep libXm.so.4
 <--找不到,说明不是这个包,猜错
# rpm -qlp libXmu-1.0.2-5.i386.rpm | grep libXm.so.4
 <--找不到,说明不是这个包,猜错

只能选择去互联网解决:
    找到是跟一个openmotif关键字的包相关

# rpm -qlp openmotif22-2.2.3-18.i386.rpm | grep libXm.so.4
    <--找不到

# rpm -qlp openmotif-2.3.1-2.el5.i386.rpm | grep libXm.so.4
/usr/lib/libXm.so.4  <---找到
/usr/lib/libXm.so.4.0.1

安装它,解决缺少libXm.so.4的问题

# 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

老方法,去光盘目录去猜:
# ls | grep -i libXp
# 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 <-排除

# 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

# rpm -ivh libXp-1.0.0-8.1.el5.i386.rpm
Preparing...                                                           ########################################### [100%]
   1:libXp                                                             ########################################### [100%]

# rpm -ivh openmotif-2.3.1-2.el5.i386.rpm
Preparing...                                                           ########################################### [100%]
   1:openmotif                                                         ########################################### [100%]


最后安装最开始想安装的包: xlockmore
# rpm -ivh xlockmore-5.18-2.2.el5.rf.i386.rpm
Preparing...                                                           ########################################### [100%]
   1:xlockmore                                                         ########################################### [100%]


其他的一些常用rpm包的命令
    # rpm -q xxx <---查询该名字的包是否安装过
    # rpm -qa | grep -i xxx  <---过滤查找
    # rpm -ql  xxxx  <--- 后面跟的xxx是已经安装了的软件的名字释放出什么文件
    # rpm -qf /usr/lib/libXm.so.4   
    openmotif-2.3.1-2.el5

    很危险的参数:
    # rpm -ivh --nopre xxx.rpm  
        --nopre 跳过安装包之前的预安装脚本执行
    # rpm -ivh --nopost xxx.rpm 不执行安装包之后的脚本
    # rpm -ivh --force  xx.rpm 一般出现文件冲突的时候,强行覆盖安装
                例如: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

    # rmpm -ivh --nodeps xxx.rpm 不进行依赖关系的判断,强制安装
        一般是多个参数结合:
            rpm -ivh --nopre --nopost --nodeps xxx.rpm

如果安装rpm包的时候,提示一定要导入这个gpgkey:
    gpgkey一般安装光盘有,或者下载提供方会提供
        红帽安装关盘里的:RPM-GPG-KEY-redhat-release
    
    # rpm --import RPM-GPG-KEY-redhat-release
    # rpm -q gpg-pubkey
    gpg-pubkey-37017186-45761324 <---导入成功。

    # rpm -ivh -nosignature  xxx.rpm  <--跳过gpgkey的校验

重建本机的rpm数据库(保存机器上所有已经安装过rpm的信息)
    # rpm --rebuilddb    



安装rpm源码包
    acl-2.2.47-2.fc9.src.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%]
        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:先卸载再安装

    方法2:--force 负载安装,不建议

    方法3:升级安装
    # rpm -Uvh /usr/src/redhat/RPMS/i386/acl-2.2.47-2.i386.rpm

rpm -U
    <---只能用新版本的包替换系统已经安装过或者没安装的旧版本的包
rpm -F
    <---刷新安装。可以用旧版本的包替换系统已经安装过新版本的包。用新替换旧也行。前提:系统上一定要先安装过一个相同名子的包。
    


搭建yum源,使用yum命令安装rpm包。
    特点:自动解决依赖关系,所有依赖的包都必须在yum源中存在才行。    

    yum install xxxx  <---- xxx软件包来自yum源(软件仓库)
        安装xxxx依赖yyyy软件包 ,为了自动解决依赖关系,yyyy这个必须也存在于某个软件仓库里。


例子1:使用远程的软件仓库
    支持的类型: ftp,http

配置本地的yum客户端配置文件 /etc/yum.repos.d/*.repo
# vim /etc/yum.repos.d/remote.repo
[Server]
name=Server
baseurl=ftp://10.1.1.22/rhel5_source/Server
enabled=1
gpgcheck=0

[Cluster]
name=Cluster
baseurl=ftp://10.1.1.22/rhel5_source/Cluster
enabled=1
gpgcheck=0

[ClusterStorage]
name=ClusterStorage
baseurl=ftp://10.1.1.22/rhel5_source/ClusterStorage
enabled=1
gpgcheck=0

[VT]
name=VT
baseurl=ftp://10.1.1.22/rhel5_source/VT
enabled=1
gpgcheck=0


# yum list <--根据配置文件,列出所有软件仓库里的软件包信息
AdobeReader_chs.i486     8.1.6-1      installed  本机安装了的包
aspell-devel.i386        12:0.60.3-7.1     Server 该包没有安装,根据配置文件,该包在仓库中的一个叫Server分组中

查看yum命令的信息
# yum

查看系统是否安装过或者软件仓库中是否有这个包
# yum list | grep -i xlockmore
xlockmore.i386         5.18-2.2.el5.rf           installed


手工卸载:
# rpm -e libXp
error: Failed dependencies:
        libXp.so.6 is needed by (installed) openmotif-2.3.1-2.el5.i386
yum 卸载
# yum erase libXp    <---如果确定卸载,可以添加 -y

安装仓库中存在的一个包
# yum install yum-downloadonly -y  <---只下载不安装
# yum install xmlsec1-openssl-devel

用yum安装一个本地rpm包,但是你估计这个包所以依赖的包应该可以在软件仓库中得到
# yum localinstall xlockmore-5.18-2.2.el5.rf.i386.rpm
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
Public key for xlockmore-5.18-2.2.el5.rf.i386.rpm is not installed
        <--安装失败,由于yum没有找到该包的gpgkey相关信息

# yum localinstall --nogpgcheck xlockmore-5.18-2.2.el5.rf.i386.rpm


当更新国配置文件,一般需要清空缓存
# yum clean all
# yum list

只下载远程仓库里的包,不安装:
# yum install --downloadonly --downloaddir=/tmp/test/ totem-devel



yum 其他命令
    groupinstall
    grouplist
    groupremove

# export LANG=en_US.UTF-8
# yum grouplist

确保以下三个组已经安装
   Development Libraries
   Development Tools
   X Software Development

# yum groupinstall "Development Libraries" "Development Tools" "X Software Development" -y

提供两个远程软件仓库的配置包
rpmforge-release-0.3.6-1.el5.rf.i386.rpm
epel-release-5-4.noarch.rpm



rhel_5安装光盘的目录:

Cluster        <---集群套件软件
ClusterStorage  <---集群存储套件软件
images  引导镜像
    boot.iso  <--- 光盘引导用的镜像
    diskboot.img <---磁盘(u盘)引导
        dd if=diskboot.img  of=/dev/sdb
    pxeboot  <---网络无人值守引导镜像
isolinux
    光盘引导需要的文件
Server  <---大多数的软件包存放的目录
VT  <--- Xen虚拟化软件包





源码包:
    缺点:安装麻烦一点
    优点:可以灵活定义它的功能。可以对功能进行裁减,提高的运行效率。
    

1、解压并且尽到源码目录
# tar xvf arp-scan-1.6.tar.gz -C /usr/src
# cd /usr/src/arp-scan-1.6/

2、进行编译前配置

    # ./configure --help <---了解编译选项
    --prefix= 定义安装路径
    # ./configure  --prefix=/usr/local

configure: Cannot find pcap library containing pcap_open_live
configure: error: Check that you have libpcap version 0.8 or later installed  <---依赖报错


# yum list | grep -i libpcap
libpcap.i386            14:0.9.4-14.el5           installed     
libpcap-devel.i386      14:0.9.4-14.el5           Server
       
# yum install libpcap-devel -y

    重新编译
    # ./configure  --prefix=/usr/local
        <--成功之后会产生一个Makefile(编译选项文件)


3、根据Makefile进行编译
    # make
        成功的话就会编译出可执行命令
4、安装
    # make install


例子2:安装ntfs分区支持模块

    1、安装fuse驱动模块
    # tar xvf fuse-2.7.4.tar.gz -C /usr/src
    # cd /usr/src/fuse-2.7.4
    # ./configure
    # make
    # make install
    # modprobe fuse  <---额外选项
    
    2、安装ntfs驱动模块以及挂载指令
    # tar xvf ntfs-3g-2009.4.4.tgz  -C /usr/src/
    # cd /usr/src/ntfs-3g-2009.4.4
    # ./configure && make && make install

    验证:

    # mount.ntfs-3g  /dev/sdb1 /mnt


练习:
    安装xlockmore源码包 xlockmore-5.29.1.tar.bz2
    提示:先把xlockmore 的 rpm包卸载
        # yum remove xlockmore

本地的软件仓库如何搭建?

阅读(1586) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~