rpm软件包管理

Posted 生如夏花和秋叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rpm软件包管理相关的知识,希望对你有一定的参考价值。

rpm软件包有2种,一种是二进制软件包,系统光盘中的/dev/sr0/run/media/root/centos \7 \x86_64里的package就是,另一种是源码安装包。

(一)二进制软件包安装

1.安装:在相对路径中安装(确定电脑中已有二进制包),即包的路径下输入

rpm -vih + 包名(全称,以rpm结尾)   如:  rpm  -vih   vsftpd-3.0.2-21.el7.x86_64.rpm

i -----install  v----详细信息    h-----显示安装进度

2.命令:

rpm  -qi  +  包名    软件包详情

rpm  -ql  +  包名    查看软件包及相关包的路径

rpm  -qa      查看系统中已安装的所有软件包

rpm  -qa  | grep  +  包名    查看包是否已安装

rpm -qf + 文件路径    查看这个文件是由哪个软件包产生的

rpm   -e   +  包名    删除软件包   (反引号     rpm  -e  `rpm  -qa  | grep vsftpd`)

3.缺点:rpm安装软件包时不能解决包之间的依赖关系(如安装A包时要先装B包),安装时很麻烦。

yum安装能解决这个问题。yum是又Python写的,能很好解决包之间的依赖关系。但前提是要有安装包之间的依赖关系文件和所有的安装包,即软件包仓库。

包之间依赖关系性文件是repodata文件,在/dev/sr0/run/media/root/centos \7 \x86_64里有个repodata,这个就是一个软件包依赖惯性文件。

4.yum安装软件包步骤:(必须有软件包仓库:包和依赖关系文件)

(1)修改yum配置:

---->cd /etc/yum.repos.d

----->ls         (显示系统自带的一些yum源)

mkdir  /tmp/bak

mv  *  /tmp/bak   (将系统自带的一些yum源先移除,装完之后记得把系统自带的yum源弄回来)

(2)编写本地yum源,5部分

-----> vim   local.repo   (以.repo结尾,local.repo是自己给提的名字)

第一部分    [local]    标题 可以自己随便写

第二部分    name=local.repo

第三部分    baseurl=file:// +软件包仓库路径     例如: baseurl=file:///opt

第四部分    enable=1    开启yum源

第五部分    gpgcheck=0   关闭,不检测gpg认证

五部分写完后保存退出

(3)安装软件包

------> yum clean all   清yum缓存

------>yum  install   +  包名       (可以不写全)

yum  -y  install   + 包名   -y 不提示是否安装,直接yes安装

(4)卸载软件包

----->  yum  erase   + 包名      删除时只删除本体包,主包,所依赖的包不删除

注: yum的一些扩展源

-----> yum  install  epel-*  -y          (-*是包名没有记全时这样)

yum建缓存 可以提高安装速度

---->  yum  makecache  -y

5.自定义yum源安装包,就是下载到二进制软件包了,怎么安装(比如关于httpd的包)

(1)将所有用的包下载下后,,cp到/cangku_httpd

(2)createrepo  /cangku_httpd    createrepo工具来生成依赖关系     写repodata文件

(3)写源文件.repo 

------> vim httpd.repo

[httpd]

name=httpd sever

baseurl=file:///cangku_httpd

enable=1

gpgcheck=0

保存就可以了

(4)yum install httpd  安装包就可以了 

注:上面的baseurl=file本地路径,也可以自定义网络yum源,后边跟网址,如baseurl=http://mirrors.centos.org/centos/7/os/x86-64/

yum从网络下包安装后会自动删除,不想删除怎么办

----->vim  /etc/yum.conf

keepcache=1

cachedir=路径,安装包就会在这个路径下;

 

(二)源码软件包

这部分以源码安装python3.6为例,展示源码安装软件包过程。主流python都是C语言写的。

1.原理:将下载到本地的源码软件包---->编译成二进制包------>再安装

2.操作步骤:

(1)搭建环境:

----->yum  grouplist   查看组包清单是否有‘开发工具’组包

-----> yum groupinstall   ‘开发工具‘   -y

(2)在python源码压缩包路径下将压缩包解压

---->tar xvf Python3.6.2.tgz   解后包为Python3.6.2

---->cd  Python3.6.2  ------>ls

(3)定制源码包配置信息

-------->./configure  --prefix=/usr/local/python3.6.2   等号后边为把python安装到哪个路径下

(4)编译

------>make

(5)安装

-------->make install  

步骤四和五可以写在一起 ,一起执行:make && make install

四核五完了后一般都会报错,提示缺少什么软件包,按提示的安装缺少的软件包,再执行四和五即可;

(6)使用

----->cd到安装路径下   cd  /usr/loacal/python3.6.2

------>cd bin   ------>ls

----->./python3.6     ./是执行的意思

(7)退出  ctrl +d

注意事项:

python3.6.2的可执行文件bin只是在路径/usr/local/python3.6.3这个路径下生效,换个路径或者终端,就不起作用了。怎么办,将这个路径加到全局中去。

(8)将python3.6.2加到全局环境中去,终端的任何路径下都可以用

将PATH=/urs/local/python3.6.2/bin:$PATH写到/etc/profile中,最后一行。注意路径之间用冒号

-------->  vim /etc/profile

PATH=/urs/local/python3.6.2/bin:$PATH

export PATH

然后重启终端 ----->reboot  即可生效;

 

以上是关于rpm软件包管理的主要内容,如果未能解决你的问题,请参考以下文章

linux 从入门到跑路 - rpm ,yum , dnf (软件包管理三兄弟)

Linux笔记 - 软件包管理

第10章,程序包管理学习笔记

程序包管理

Linux安装杀毒软件和防火墙

linux-rpm