1、什么是软件包
这是什么?
由以上图解可知,这个PCQQ2019.exe是Windows中的软件安装包。
所谓的Linux软件包就是Linux下软件的安装程序
2、Linux下软件的安装方式
① RPM软件包安装 => 软件名称.rpm
② YUM包管理工具 => yum install 软件名称 -y
③ 源码安装 => 下载软件的源代码 => 编译 => 安装(最麻烦的,但是也最稳定)
3、二进制软件包
二进制包,也就是源码包经过成功编译之后产生的包。
二进制包是 Linux 下默认的软件安装包,目前主要有以下 2 大主流的二进制包管理系统:
- RPM 包管理系统:功能强大,安装、升级、査询和卸载非常简单方便,因此很多 Linux 发行版都默认使用此机制作为软件安装的管理方式,例如 Fedora、CentOS、SuSE 等。
- DPKG 包管理系统:由 Debian Linux 所开发的包管理机制,通过 DPKG 包,Debian Linux 就可以进行软件包管理,主要应用在 Debian 和 Ubuntu 中。
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写
作用:rpm 的作用类似于豌豆荚,华为应用市场,App Store,主要作用是对linux 服务器上的软件包进行对应管理操作,管理分为:查询、卸载、安装/更新。
4、获取*.rpm软件包
a. 去官网去下载(http://rpm.pbone.net);
b. 不介意老版本的话,可以从光盘(或者镜像文件)中读取;CentOS7.6*.iso
5、查询系统中已安装的rpm软件
# rpm -qa |grep 要搜索的软件名称
选项说明:
-q :query,查询操作
-a :all,代表所有
案例1:查询计算机中已安装的rpm软件包
# rpm -qa
案例2:搜索计算机中已安装的firefox软件包
# rpm -qa |grep firefox
6、卸载CentOS系统中的rpm软件包
# rpm -e 软件名称 [选项]
选项说明:
--nodeps :强制卸载
案例:把系统中的firefox浏览器进行卸载操作
# rpm -qa |grep firefox
firefox-60.2.2-1.el7.centos.x86_64
# rpm -e firefox-60.2.2-1.el7.centos.x86_64
7、rpm软件包的安装
基本语法:
# rpm -ivh 软件包的名称.rpm
选项说明:
-i:install,安装
-v:显示进度条
-h:表示以"#"形式显示进度条
8、rpm软件包的获取(光盘)
第一步:在VMware虚拟机中加载CentOS7.6的安装光盘
第二步:使用 # lsblk(list block devices)或者df -T 查看块状设备的信息
# lsblk
[root@yunwei ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.3G 0 rom /run/media/itheima/CentOS 7 x86_64
由以上图解可知,/dev/sr0代表光驱设备 => 挂载点 => /run/media/itheima/CentOS 7 x86_64文件夹
或
# df -T
Linux操作系统的中所有存储设备必须先挂载后使用
第三步:使用cd命令,切换到挂载目录
# cd /run/media/itheima/CentOS\ 7\ x86_64
第四步:使用cd命令,切换到Packages软件包中
# cd Packages
第五步:查询我们要安装的软件包
# ls |grep firefox
firefox-60.2.2-1.el7.centos.x86_64.rpm
第六步:使用rpm -ivh命令安装软件
# rpm -ivh firefox-60.2.2-1.el7.centos.x86_64.rpm
输入firefox + Tab,让其自动补全
9、rpm软件包的升级
基本语法:
# rpm -Uvh 升级后的软件包名称.rpm
选项说明:
-U :Update,更新操作
案例:使用rpm -Uvh对firefox-60.2.2版本进行升级
# rpm -Uvh firefox-68.4.1-1.el7.centos.x86_64.rpm
10、rpm扩展
☆ 依赖关系
一个软件必须先有其他软件才能运行,例如之前xmind启动过程中提示的缺少DLL,称之为依赖
WAMP(Windows + Apache + MySQL + PHP)安装前必须先安装VC++ 2014 x86_64,这种情况就称之为有依赖关系。
60.8.0的firefox可以更新成功
下面我们尝试更新到68.4.1的版本
用法:rpm -Uvh 软件包名称
# rpm -Uvh firefox-68.4.1-1.el7.centos.x86_64.rpm
使用rpm命令,安装68.4.1版本的软件包
错误提示:
error:Failed dependencies:
提示安装68版本的firefox需要依赖nspr4.21的版本,nss的3.44的版本,这就是我们说的依赖关系。
为了解决依赖关系的问题,有另外一个管理工具叫做yum,后面我们会讲到。
A软件
A软件 => 需要依赖B软件
B软件 => 需要依赖C软件
C软件
依赖关系的解决:使用YUM软件包管理工具对其进行安装(自动解决依赖关系)
# yum install firefox -y
☆ 查看文件所属的包名
基本语法:f = file
# rpm -qf 文件名称
主要功能:判断某个文件所属的包名称
案例:查询/etc/ntp.conf 属于哪个软件包
# rpm -qf /etc/ntp.conf
ntp-4.2.6p5-28.el7.centos.x86_64
☆ 查询软件安装完成后,生成了哪些文件
基本语法:l = list,显示这个软件安装后生成了哪些文件
# rpm -ql 软件名称
案例1:查询firefox软件生成了哪些文件
# rpm -ql firefox
特别说明:软件安装完成后,一共生成了以下几类文件
配置文件类:/etc目录
程序文件本身,二进制文件命令:/usr/bin或/usr/sbin目录
文档手册:/usr/share/doc或man目录
案例2:查询openssh软件生成了哪些文件
# rpm -ql openssh
11、光盘的挂载与解挂
在Linux操作系统中,所有的存储设备都必须先挂载然后才能使用。
问题:为什么当我们直接访问/run/media/itheima/CentOS 7 x86_64就相当于访问光盘
答:主要原因就是因为CentOS7的操作系统自动把光驱设备挂载到此目录了,访问这个目录就相当于访问光盘。
☆ 解挂
# cd ~
# umount /run/media/itheima/CentOS\ 7\ x86_64
常见问题:当我们执行以上命令时,系统提示target is busy!
出现以上问题的主要原因在于我们当前所在的目录为挂载目录。
☆ 挂载
# mount 设备文件 挂载目录
提示:光驱的设备文件为/dev/sr0
案例:把光驱挂载到/mnt/cdrom目录
# mkdir /mnt/cdrom
# mount /dev/sr0 /mnt/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
案例:把/mnt/cdrom进行解挂操作
# cd ~
# umount /mnt/cdrom