一、linux系列
linux系统分为Redhat系列与Debian系列 两大系列。Linux 各种类安装软件的不同,本质就是这两个系列不同。
Redhat系列:redhat,centos等等
- 软件包后缀 rpm,
- 软件包管理工具 rpm, yum
Debian系列:ubuntu
- 软件包后缀 deb
- 软件包管理工具 dpkg(Debian Package)、apt
二、软件包分类
2.1 源码包
- 脚本安装包
有安装界面的源码包,通常被命名为install.sh,这种包不多
优点
开源
可以自由选择所需要的功能
软件是便宜安装,更加稳定,效率高(高5%)
卸载方便(直接删除文件夹即可)
缺点
步骤较多,容易出现拼写错误
编译时间较长,安装时间长
2.2 二进制包
- rpm包,主要应用在RedHat系列,例如centOS、 Fedora等发行版的Linux系统上。yum可以用于运作rpm包
- deb包,主要应用于Debian系列,例如Ubuntu等发行版上。 apt-get可以用于运作deb包
- 系统默认包
优点
包管理系统简单,几个命令就可以安装 升级 卸载
安装时间短
缺点
不能看到源代码
功能选择不如源代码灵活
依赖性
三、Redhat系列
3.1 RPM介绍
所有的RPM包都在系统安装文件中的
RPM包命名原则
包全名:httpd-2.2.15-15.el6.centos.1.i686.rpm
名称段 | 含义 |
---|---|
httpd | 软件包名 |
2.2.15 | 软件版本 |
15 | 软件发布次数 |
el6.centos | 适合的linux平台(如果没有表示适合所有linux) |
i686 | 适合的硬件平台 |
rpm | 扩展名(人为定义的,方便查看,可以为 .a 或 .b) |
包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径
包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库
RPM包依赖性
- 树形依赖:a->b->c 安装c,b,a,卸载 a,b,c
- 环形依赖:a->b->c->a
使用一条命令安装 a b c三个包 - 模块依赖:模块以来查询网站:www.rpmfind.net
在安装rpm包时依赖 .so.x 库(A库),这个库在rpm软件包中(A包),装上软件包A,A库就会装上
3.2 RPM命令
安装
所有的rpm安装都是有默认位置的,不建议修改,避免其他软件找不到软件位置
rpm –ivh 包全名
选项:
-i(install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
–nodeps 不检测依赖性
路径 | 安装内容 |
---|---|
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
升级
rpm -Uvh 包全名
选项:-U(upgrade) 升级
卸载
rpm -e 包名
-e(erase) 卸载
–nodeps 不检查依赖性
查询
如果包已经安装,可以在任何路径下执行查询命令
rpm -q 包名
-q 查询(query)
以下所有参数,是用来配合-q参数使用的,不能单独使用:
-a 所有(all)
-i 查询软件信息(information)
-p 查询未安装包信息(package)需要包全名
-l 查询rpm安装位置(location)
-f 查询系统文件属于哪个软件包,哪一个软件包安装时产生的,(file)命令后加系统文件名
-R 查询软件包的依赖性(requires)
RPM包检验
rpm –V 已安装的包名
标识 | 含义 |
---|---|
S | 文件大小是否改变 |
M | 文件的类型或文件的权限(rwx)是否被改变 |
5 | 文件MD5校验和是否改变(可以看成文件内容是否改变) |
D | 设备的中从代码是否改变 |
L | 文件路径是否改变 |
U | 文件的所有者是否改变 |
G | 文件的属性是否改变 |
T | 文件的修改时间是否改变 |
文件类型
标识 | 含义 |
---|---|
c | 配置文件(config file) |
d | 普通文档(documentation) |
g | “鬼”文件(ghost file),很少见,就是该文件不 |
l | 授权文件(license file) |
r | 描述文件(read me) |
RPM包中文件提取
*rpm2cpio 包全名 | * 将rpm包转换为cpio格式的命令
cpio -idv . 文件绝对路径 一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
\ 表示换行
. 表示从文件绝对路径提取文件到当前路径
cpio 选项
-i:copy-in模式,还原
-d:还原时自动新建目录
-v:显示还原过程
3.3 YUM源
查看yum源的文件
cd /etc/yum.repos.d/
ls
一般有几个yum源的文件
CentOS-Base.repo
CentOS-Debuginfo.repo
CentOS-Media.repo(光盘yum源)
CentOS-Vault.repo
网络yum源
使用下面命令打开yum源配置文件
vi /etc/yum.repos.d/CentOS-Base.repo
配置文件详解
标识 | 含义 |
---|---|
[base] | 容器名称,一定要放在[]中 |
name | 容器说明,可以自己随便写 |
mirrorlist | 镜像站点,这个可以注释掉 |
baseurl | 我们的yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的,如果你觉得慢可以改成你喜欢的yum源地址 |
enabled | 此容器是否生效,如果不写或写成enable=1都是生效,写成enable=0就是不生效 |
gpgcheck | 如果是1是指RPM的数字证书生效,如果是0则不生效 |
gpgkey | 数字证书的公钥文件保存位置。不用修改 |
光盘YUM源
1、挂载光盘
mount /dev/cdrom /mnt/cdrom/
2、让网络yum源文件失效
介绍两个方法:
1、修改每一个yum源文件里的enabled选项改为0
2、更改yum源文件的后缀名,因为系统是检测后缀名.repo
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mv CentOS-Base.repo \
CentOS-Base.repo.bak
[root@localhost yum.repos.d]# mv CentOS-Debuginfo.repo \
CentOS-Debuginfo.repo.bak
[root@localhost yum.repos.d]# mv CentOS-Vault.repo \
CentOS-Vault.repo.bak
3 、修改光盘yum源文件
打开光盘yum源的文件
root@localhost yum.repos.d]# vim CentOS-Media.repo
打开如下:并做修改
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#地址为你自己的光盘挂载地址
# file:///media/cdrom/
# file:///media/cdrecorder/
#注释这两个不存在的地址
gpgcheck=1
enabled=1
#把enabled=0改为enabled=1,让这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
3.4 yum命令
yum命令中使用的都是包名
查询
查询指定yum源容器中所有可用软件包列表 命令:yum list
列出所有已安装的软件包 命令:yum list installed
搜索服务器上所有和关键字相关的包
yum search 包名
安装
yum –y install 包名
install 安装
-y 自动回答yes
升级
yum -y update 包名
update 升级
如果不加包名,会把整个系统全部升级,linux内核会一起升级,内核升级后需要进行一些配置,如果不配置会导致无法连接远程服务器
卸载
yum -y remove 包名
会把它依赖的包一起卸载,依赖包有可能是系统文件,会导致系统无法正常运行
列出所有可用的软件组列表
yum grouplist
安装指定软件组
组名可以由grouplist查询出来
yum groupinstall 软件组名
软件组名,必须是英文,软件组名如果有空格,需要使用双引号括起来
卸载指定软件组
yum groupremove 软件组名
参考:
四、Debian系列
4.1、dpkg
软件列表
查看所有已安装软件,可使用grep进行过滤:dpkg --list | grep miredo
卸载软件
卸载程序和所有配置文件: sudo apt-get --purge remove <programname>
只卸载程序,保留配置文件:sudo apt-get remove <programname>
参考:卸载Ubuntu软件
4.2、apt
Ubuntu下apt-get命令详解
apt和apt-get的区别
apt-get的安装软件的目录是包的维护者确定的,不是用户。软件默认安装目录
未完待续。。。
关注我的公众号,轻松了解和学习更多技术