• 幕客老师召集小伙伴
  • 运维高手36项修炼
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

Redhat软件包管理-RPM,YUM,SRPM

知识点:
一、系统包管理种类
二、rpm安装方式
三、yum 安装
四、SRPM  编译,打包。

 


 

一、系统包管理种类


Redhat种类:RPM SRPM YUM
Ubuntu种类:apt-get dpkg

 

二、rpm安装方式

优势:安装方便,方便后期维护。
劣势:1、打包环境与安装环境一致性。 2、安装环境依赖性。3、安装顺序问题。

 

rpm 包安装:

rpm -ivh 包名.rpm

 

方式1:下载安装

#wget http://172.16.20.85/redhat6.4/Packages/lftp-4.0.9-1.el6.x86_64.rpm
#rpm -ivh ./lftp-4.0.9-1.el6.x86_64.rpm 

方式2:在线安装

#rpm -ivh http://172.16.20.85/redhat6.4/Packages/lftp-4.0.9-1.el6.x86_64.rpm

 

查看rpm包方式:

[root@Jeson download]# rpm -qa|grep lftp    //查看包是否有安装
lftp-4.0.9-1.el6.x86_64

# rpm -ql lftp                                             //查看rpm的安装目标内容

[root@Jeson download]# rpm -qf /usr/bin/vncviewer       //命令属于哪个rpm包
tigervnc-1.1.0-5.el6.x86_64

 

rpm  包升级:

rpm -Uvh 和 rpm -Fvh 区别。

查看某个rpm包变更:
rpm -Va

# rpm -Vf /etc/httpd/conf/httpd.conf
S.5....T.  c /etc/httpd/conf/httpd.conf

三、yum 安装方式

配置文件:/etc/yum.repos.d, 注意:配置文件一定要以.repo文件扩展名。

网易源:http://mirrors.163.com/


[base]:容器的名字,具有唯一性。
name: 说明描述。
baseurl=:yum获取包源地址。
enable=1 :启用禁用开关。
gpgkey= :公钥档所在位置。

例:
[Jeaon]
name=Jeson – Source
baseurl=http://172.16.20.85/redhat6.4
enabled=1
gpgcheck=0

目录:/var/cache/yum
yum clean [packages|headers|all] 

安装删除包:yum [install|remove] -y

yum [list|info|search|provides|whatprovides

#yum whatprovides '*/libgomp.so'
#yum provides '*/vncserver'

练习:自己建立本地镜像源。
提示1:挂载iso文件的方式。

mount -o loop -t iso9660 /opt/download/rhel-server-6.4-x86_64-dvd.iso /opt/iso/

小知识:
开机挂载iso镜像文件:
#vim /etc/fstab
/opt/download/rhel-server-6.4-x86_64-dvd.iso  /opt/iso   iso9660 loop   0 0


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

四、SRPM  编译,打包。

网址:http://www.rpmfind.net   http://rpm.pbone.net 
SPEC文件:
%description:简短的说明,rpm -qi获取信息。
%prep:编译前需要执行的任务。
%setup:压缩解压缩安装包等。
%build:执行./configure,make 开始编译。
%install:类似于执行make install 。
%clean:类似于make clean的工作。

获取spec文件方法
1、方法1:通过src.rpm包获取。
2、方法2:新建spec文件。
3、方法3:从源码包中获取已有spec文件。

练习1:通过srpm包,编译出对应的rpm包。

#cd /opt/download
#wget http://172.16.20.85/download/ntfs-3g/ntfs-3g-2013.1.13-5.el7.src.rpm
#rpmbuild --rebuild ./ntfs-3g-2013.1.13-5.el7.src.rpm

编译成功后在/root/rpmbuild/RPMS/x86_64 生成一个ntfs-3g-2013.1.13-5.el6.x86_64.rpm 的包。

练习2:将老版本的ntfs-3g的srpm包,编译出最新的rpm包。
步骤一、
          需要先安装rpm-build-4.8.0-32
步骤二、 
          安装编译所需要的依赖包。         

 

#rpmbuild --rebuild ./ntfs-3g-2013.1.13-5.el7.src.rpm

error:Failed build dependencies:?libtool is needed by ntfs-3g-2:2013.1.13-5.el6.x86_64?libattr-devel is needed by ntfs-3g-2:2013.1.13-5.el6.x86_64?libconfig-devel is needed by ntfs-3g-2:2013.1.13-5.el6.x86_64?libgcrypt-devel is needed by ntfs-3g-2:2013.1.13-5.el6.x86_64?gnutls-devel is needed by ntfs-3g-2:2013.1.13-5.el6.x86_64?libuuid-devel is needed by ntfs-3g-2:2013.1.13-5.el6.x86_64

#yum install libattr-devel -y  
# yum install libattr-devel -y  
# yum install libgcrypt-devel  -y
# yum install libgcrypt-devel -y
# yum install gnutls-devel -y
# yum install libuuid-devel -y
# yum install libconfig -y
#rpm -ivh libconfig-devel-1.3.2-1.1.el6.x86_64.rpm

 

  用yum安装对应的包,libconfig-devel按如下方式安装
  wget ftp://195.220.108.108/linux/centos/6.5/os/x86_64/Packages/libconfig-devel-1.3.2-1.1.el6.x86_64.rpm
  #rpm -i src.rpm 解压对应的src包
  
  步骤三、替换源码包为最新的ntfs源码文件,对应修改SPEC文件。
   错误提示1:/bin/rm:?cannot?remove?`libtoolT’:?No?such?file?or?dire打开 configure(就在解压的软件包里面),把 $RM “$cfgfile”?那行删除掉,重新再运行?# ./configure?
   
   错误提示2:checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… configure: error: newly created file is older than distributed files!
Check your system clock
   修改系统时间到未来的某个时间,使生成的新文件保持最新。执行:date -s 20190101
   
   步骤四、编译生成新版本的ntfs-3g包。
   cd /root/rpmbuild/SPECS
   rpmbuild -ba ./ntfs-3g.spec <==编译并同时产生RPM 与SRPM 档案
   rpmbuild -bb <==仅编译成RPM 档案

Redhat软件包管理-RPM,YUM,SRPM

Pingbacks已打开。

引用地址

暂无评论

发表评论