linux软件管理

一、Linux两大主流:rpm和 dpkg

Linux的开发商将很多软件集成在不同发行版本的linux操作系统上,为了方便管理,开发商在固定的硬件平台与操作系统平台上面将需要的软件包编译好,然后将这个软件所有相关文件打包成一个特殊格式的文件,这个特殊格式的文件内包含了预先检测系统与依赖软件的脚本,并提供记载该软件提供的所有文件信息。最终将这个软件发布,客户端取得这个文件后,只要通过特定的命令来安装,那么该软件就会按照内部的脚本来检测相关的前驱软件是否存在,若安装的环境符合要求就会开始安装。
常见的安装方式有两种,分别是:
dpkg:
这个机制最早由Debian Linux 社区开发出来,通过dpkg的机制,Debian提供的软件都能够简单的安装起来,派生于Debian的linux发行版本大多使用dpkg机制来管理软件,如B2D,ubuntu等。
rpm:
这个机制最早由redhat公司开发出来的,很多linux发行版都使用这个机制如:Fedora,centos,SuSE。

二、rpm与srpm

rpm(redhat Package Manager),rpm包是事先经过编译,并且打包成rpm包。rpm包里还包含了检测硬件环境和软件依赖性的脚本。由于已经编译过了,所以安装很方便。由于软件的信息已经记录在linux主机的数据库上,所以很方便查询,升级,反安装。
但是也会有局限性,软件的安装环境必须与打包时的环境需求一致或相当。需要满足软件的依赖性。
srpm (Source rpm),也就是这个rpm文件里含有源代码,srpm所提供的软件的内容并没有经过编译,通常srpm的扩展名是以*.src.rpm这种格式命名的。Srpm虽然是源码但是它也包含了该软件需要的依赖性说明以及所有的rpm文件所提供的数据,与rpm不同的是它提供了参数设置文件(configure与makefile),我们可以通过参数设置将其重新编译成适合我们linux环境的rpm包。

三、rpm的默认安装路径,安装命令

目录              放置内容
/etc             配置文件内容
/usr/bin         可执行文件
/usr/lib         动态函数库
/usr/share/doc       软件使用手册与帮助文档
/usr/share/man      一些man page文件
  1. rpm命令的使用
rpm             ##底层软件管理工具
    -i          ##install
    -v          ##显示信息
    -h          ##指定包的解密方式为hash
    -q          ##查询
    -p          ##指定软件包本身
    -c          ##查看配置文件
    -l          ##列出软件中文件的名字
    -f          ##查询某个文件属于那个安装包
    -a          ##所有
    -e          ##卸载
    --scripts       ##查看软件安装和卸载
    --force         ##强制 (尽量不要强制安装或卸载)
    --nodeps        ##忽略依赖性
    --test           ##测试属性依赖问题

rpm2cpio XXX.rpm |cpio -id ##拆分rpm包并输出到当前目录

2 . rpm包的安装

rpm -ivh    XXX.rpm
也可以 rpm   -ivh   xxx.rpm   xxx.rpm  后接许多软件,一口气安装多个软件

3.rpm包的升级更新

rpm -Uvh     xxx.rpm        #若该软件没有被安装过,直接予以安装,若已经装,则系统自动更新至新版
rpm -Fvh     xxx.rpm        ##若该软件没有被安装过,则该软件不会被安

4.rpm查询

rpm   -qa     xxx.rpm              #查询某个软件是否安装
参数:
-q      #仅查询后面接的软件是否安装
-qa     #列出所有已经安装在本机的软件名称
-ql     #列出该软件所有的文件与目录所在的完整文件名
-qi     #列出该软件的详细信息
-qc     #列出该软件的所有配置文件
-qd     #列出该软件所有的帮助文件
-qR     #列出有关的依赖软件
-qf     #后接文件名,找出该文件属于哪一个已安装的软件
-qp     #找出某个rpm文件内的信息而非已安装的软件信息

5.rpm验证与数字证书

rpm -V   后接软件名称,若该软件的某个文件被改动过则会列出来
参数:
-Va     #列出系统所有可能被改动过的文件
-Vp     #后接文件名称,列出该软件内可能被改动过的文件
-Vf     #列出某个文件是否被改动过。
数字证书:    
 RHEL系统当安装一个rpm文件时,rpm命令会读取rpm文件的证书信息,与本机系统内的证书信息作比较,若证书相同则安装,若找不到相关证书信息,则予以警告并停止安装,数字证书位于/etc/pki/rpm-gpg/目录下。采用GPG数字证书系统

6.rpm卸载

rpm   -e    xxx.rpm

四、srpm的使用

rpm     -i  xxx .src.rpm
cd      /usr/src/redhat/SPECS   #该目录下有*.spec文件,这个文件是将srpm编译成rpm的设置文件。 
rpmbuild   -bb   xxx.specs   #仅编译生成rpm文件
或rpmbuild   -ba         xxx.specs  #编译生成rpm与srpm文件
这时在/usr/src/redhat/rpm/i386/目录下生成一个新的rpm包,接下来执行
rpm -ivh  xxx.rpm 安装就可以了。

五、yum
Rpm有很多依赖性,在安装的时候要是一个一个依赖性解决会很浪费时间,因此就有了yum机制。
服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。
客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWW或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。

yum命令:
yum     list    all             ##列出所有安装包
yum     list    installed       ##列出已经安装的
yum     list    available       ##列出没有安装的
yum     remove  software        ##卸载软件
yum     install software        ##安装软件
yum     search  关键字         ##搜索与关键字相关的软件
yum     whatprovides    文件  ##搜索包含此文件的包
yum     reinstall software      ##从新安装软件
yum     localinstall 第三方软件  ##安装第三方软件并解决依赖关系
yum     info    software            ##查询软件信息
yum     groups list             ##列出软件组
yum     groups  install         ##安装组
yum     groups  remove          ##卸载组
yum     groups  info                ##查看组信息

与其他linux发行版不同,RHEL安装软件是用rpm包或者tar包,ubuntu是众多linux发行版中最受个人用户欢迎的,它有自己的软件中心,而RedHat有自己的RHN,可是这个是收费的,如何构建自己的本地安装源呢?
yum的基本工作机制如下:
一、建立本地yum仓库
1.下载得到与本机匹配的安装镜像
[root@burgess ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)
通过上述命令可以看到本机的linux发行版本是RHEL7.2,我们必须要下载一个RHEL7.2的镜像rhel-server-7.2-x86_64-dvd.iso。这个文件可以在官网下载得到。
2.挂载
[root@desktop ~]# mount rhel-server-7.2-x86_64-dvd.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
df ##查看挂载设备
3.编写yum的设定文件
rm -rf /etc/yum.repos.d/* #删除其余的yum源的设定文件,避免冲突
vim /etc/yum.repos.d/yum.repo #这个文件一定要以”.repo”结尾

[yumsource]             ##仓库名称
name=localsoftware      ##仓库描述
baseurl=file:///mnt     ##仓库地址
enabled=1               ##此仓库在系统中生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release   ##本机gpgkey文件

yum install httpd -y
systemctl stop firewalld
systemctl start httpd
systemctl enable httpd
mkdir -p /var/www/html/yumsource
umount /yum ##取消原临时挂点
mount /mnt/rhel-server-7.0-x86_64-dvd.iso /var/www/html/yumsource ##设置临时挂载点
vim /etc/yum.repos.d/yum.repo #重新设置yum源地址
修改baseurl

baseurl=http://localhost/yumsource
##yum源地址:http://主机ip/yumsource>##

3.永久挂载
vim /etc/fstab
/xxx/rhel-server-7.2-x86_64-dvd.iso /var/www/html/yumsource iso9660 defaults 0 0

格式:镜像文件 挂载点 文件系统或分区类型 挂载参数(文件系统参数) 备份 检测

mount -a
yum clean all ##刷新仓库配置
4.yum软件控制
vim /etc/yum.conf
exclude=[ 1][ 2] ..[] ##忽略名为 1, 2…的安装包
exclude=*.x86_64 ##忽略64位安装包
exclude=*.i686 ##忽略32位安装包

六、第三方yum仓库的搭建

1.把所有rpm包放到指定目录中,比如方到/software中
2.在这个目录中执行createrepo /software,生成repodate目录
3.编写并追加/etc/yum.repos.d/xxx.repo指定/software位yum源,建立第三方yum仓库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值