Linux软件包管理_09

1、软件包管理

1.1、软件包分类

  • 二进制包

    1. 二进制包,指的是已经下好了的软件包,只需要直接安装就可以使用。
    2. 二进制包,不需要编译,直接下载安装即可
    3. 二进制包,需要根据自己的计算机CPU以及操作系统去选择合适的
    4. 二进制包,命名方式一般为: xlockmore-5.31-2.el6.x86_64.rpm
  • 源码包

    • 源码包,指的是程序员写的原始的程序代码文件,不能够直接在计算机上运行。
    • 源码包,需要进行编译,变成二进制的软件包后,才可安装使用
    • 源码包,一般可以在任何的计算机上安装使用
    • 源码包,命名方式一般为:
      软件包名.tar.gz
      软件包名.tar.bz2
      软件包名.tar.xz
      软件包名.zip
  • 二进制源码包(了解)

    1. 二进制源码包,是一个半成品,安装后不能直接使用
    2. 二进制源码包,需要使用 rpmbuild 工具重建成真正的 rpm 包或者重建成源码包才可安装使用
    3. 二进制源码包,命名方式一般为:
      mysql-community-5.7.25-1.el6.src.rpm
      mysql-community-5.7.25-1.el7.src.rpm
  • 二进制和源码包区别

    软件包类型是否编译安装难易程度可定制性
    二进制包易(容易安装)
    源码包难(配置->编译->安装)

2、软件包安装方式

2.1、二进制包

  • rpm工具安装
    • 首先,需要下载好rpm包到本地
    • 然后,直接使用rpm工具安装
  • yum/dnf工具安装
    • 首先,需要配置软件仓库(里面存放很多软件包,但不一定在本地)
    • 然后,使用yum/dnf工具安装

2.2、源码包

  • 根据需求配置

    功能的定制

  • 编译

    使用编译器编译成二进制的软件包

  • 安装

    将软件包安装到指定位置

  • 源码包安装优点

    • 可以在任意平台编译安装,编译出来的软件包非常适应所在机器。
    • 可以在编译的时候,通过配置,对某些功能进行定制,开启或关闭相应的功能

3、二进制rpm包管理

3.1、获取rpm包

Linux只是内核,Linux发行版本:GNU/Linux

1.光盘

2.推荐网站

​ www.rpmfind.net

​ rpm.pbone.net

3.2、选择合适的rpm包

  1. 选择适合当前系统的版本号
    找不到适合的,才去尝试别的系统版本号
    el6兼容el5;el5无法安装 el6
  2. 选择适合当前计算机cpu的架构
    x86_64包,只能安装在64位的系统上
    i386,i586,i686的软件包可以安装在32和64位系统上
    noarch表示这个软件包与硬件构架无关,可以通用
    32位系统不能安装64位包
    建议: 建议不要跨大版本号去安装软件包,尽量使用当前版本自带软件包安装

3.3、管理rpm包

  • rpm工具管理

    rpm工具安装rpm包

    # rpm -ivh 软件包
    注意:软件包的名字必须写全,xxx.rpm
    
  • rpm工具卸载rpm包

    # rpm -e 软件包名字
    注意:卸载软件只需要跟软件包名字即可
    
  • rpm包升级rpm包

    # rpm -Uvh 软件包
    或者
    # rpm -Fvh 软件包
    选项说明:
    -v:输出详细信息
    -h:打印散列标记,一般和-v一起使用
    -U:升级软件包,如果该软件包没安装,会自动帮你安装
    -F:升级软件包,如果该软件包没安装,不会自动帮你安装
    
  • 查看rpm包相关信息

    查看已经安装的软件的文件列表
    rpm -ql 软件包名
    查看未安装的rpm包里的文件列表
    rpm -qlp 软件包(xxx.rpm)
    查看已经安装的所有rpm包
    rpm -qa 软件包名
    rpm -aq|grep 软件包名字
    查看已经安装软件的文档列表
    rpm -qd 软件包名
    查看已经安装软件的配置文件
    rpm -qc 软件包名
    查看已经安装软件的详细信息
    rpm -qi 软件包名
    查看指定文件来自哪个rpm包
    rpm -qf 文件名
    
  • rpm工具其他安装选项

    --force 表示强制
    rpm -ivh 软件包 --force 强制安装软件包
    rpm -e 软件包名 --force 强制卸载软件包
    --nodeps 忽略依赖关系
    rpm -ivh 软件包 --nodeps 忽略依赖关系安装
    rpm -e 软件包 --nodeps 忽略依赖关系卸载
    其他了解:
    rpm --import key_file 导入公钥用于检查rpm文件的签名
    rpm --checksig package.rpm 检查rpm包的签名
    
    • rpm工具管理rpm软件包
      安装、卸载、升级、查看
      缺点:有依赖关系需要我们人肉去解决 A---->B和C

3.4、yum(dnf)工具管理

yum/dnf优点:能够自动解决依赖关系

核心:需要有一个软件仓库,软件仓库指的是来存放软件包和软件之间的依赖关系的地方。

  • 软件仓库

    • 仓库可以在本地----> 本地yum源
    • 仓库可以在远程---->网络yum源---->网络必须ok
  • 配置本地yum仓库

    [root@tedu ~]# mkdir /dvd                   #创建访问点、让我们的光驱文件到这个目 录来    
    [root@tedu ~]# ls /dvd/
     
    
  • 挂载光盘或分区

    使用mount命令

    语法: mount 设备路径 挂载目录

    [root@tedu ~]# ls /dev/cdrom     
    /dev/cdrom    
    #青色:快捷方式    
    [root@tedu ~]# ls -l /dev/cdrom             #详细信息
    lrwxrwxrwx. 1 root root 3 3月   2 07:49 /dev/cdrom -> sr0   
    #主要是为了方便我们使用    
    [root@tedu ~]# mount /dev/cdrom /dvd/    
    mount: /dev/sr0 写保护,将以只读方式挂载    
    [root@tedu ~]# ls /dvd/    
    CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7    
    EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7    
    EULA             isolinux  repodata  TRANS.TBL 
    
    #软件包都放在Packages中    
    [root@tedu ~]# ls /dvd/Packages/
    

3.5、下载软件包(wget)

使用wget下载工具

wget 软件包网址URL

wget 软件包的URL网址 -O(大写) /目录路径/文件名

[root@tedu ~]# wget https://qd.myapp.com/myapp/qqteam/linuxQQ/linuxqq_2.0.0-b11024_x86_64.rpm
[root@tedu ~]# rpm -q linuxqq 
未安装软件包 linuxqq 
[root@tedu ~]# rpm -q firefox               #显示已经安装
firefox-52.2.0-2.el7.centos.x86_64 
[root@tedu ~]# rpm -q net-tools net-tools-2.0-0.22.20131004git.el7.x86_64 
[root@tedu ~]# rpm -q zip zip-3.0-11.el7.x86_64
[root@tedu ~]# rpm -i linuxqq_2.0.0-b1-1024_x86_64.rpm                  #安装 
[root@tedu ~]# rpm -ql linuxqq                              #查看安装详情 
/usr/share/applications/qq.desktop 
/usr/share/tencent-qq 
/usr/share/tencent-qq/crashpad_handler 
/usr/share/tencent-qq/qq 
/usr/share/tencent-qq/qq.bmp 
/usr/share/tencent-qq/qq.png 
/usr/share/tencent-qq/res.db 
[root@tedu ~]# 
[root@tedu ~]# rpm -e linuxqq 
[root@tedu ~]# rpm -q linuxqq 
未安装软件包 linuxqq 
[root@tedu ~]# rpm -ivh linuxqq_2.0.0-b1-1024_x86_64.rpm 
准备中...                          ################################# 
[100%] 正在升级/安装...
	1:linuxqq-2.0.0-b1                 ################################# [100%]

安装包有依赖关系

[root@tedu ~]# ls /dvd/Packages/httpd-2.4.6-67.el7.centos.x86_64.rpm 
/dvd/Packages/httpd-2.4.6-67.el7.centos.x86_64.rpm
[root@tedu ~]# cp /dvd/Packages/httpd-2.4.6-67.el7.centos.x86_64.rpm /root/ 
[root@tedu ~]# ls /root/ 
[root@tedu ~]# rpm -ivh /root/httpd-2.4.6-67.el7.centos.x86_64.rpm 
警告:/root/httpd-2.4.6-67.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY 
错误:依赖检测失败:    
/etc/mime.types 被 httpd-2.4.6-67.el7.centos.x86_64 需要
httpd-tools = 2.4.6-67.el7.centos 被 httpd-2.4.6-67.el7.centos.x86_64 需要    
libapr-1.so.0()(64bit) 被 httpd-2.4.6-67.el7.centos.x86_64 需要    
libaprutil-1.so.0()(64bit) 被 httpd-2.4.6-67.el7.centos.x86_64 需要 
(不建议靠人来解决这个依赖关系、我们希望可以让他自己决绝)
[root@tedu ~]# yum install gtk2.x86_64          #安装qq时候的依赖包  
已加载插件:fastestmirror, langpacks  
base                                                      | 3.6 kB  00:00:00       
	extras                                                | 2.9 kB  00:00:00       
	updates                                               | 2.9 kB  00:00:00       
	updates/7/x86_64/primary_db                           | 6.7 MB  00:00:03       
	Determining fastest mirrors   
	* base: mirror.bit.edu.cn 
	* extras: mirror.bit.edu.cn 
	* updates: mirrors.aliyun.com  
	软件包 gtk2-2.24.31-1.el7.x86_64 已安装并且是最新版本  
	无须任何处理  
	您在 /var/spool/mail/root 中有邮件  
[root@tedu ~]# rpm -e linuxqq  
[root@tedu ~]# rpm -ivh linuxqq_2.0.0-b1-1024_x86_64.rpm 
准备中...          							################################# [100%]
正在升级/安装...  1:linuxqq-2.0.0-b1                 ################################# [100%]
 
### 使用yum命令管理软件
#####   Yellowdog Update Manager黄狗升级管理器
   yum repolist            #列仓库
   yum list    [软件名]   #列软件
   yum clean all           #请缓存
   yum -y  install [软件名]   #安装软件
   yum -y  remove  [软件名]   #卸载软件
   yum info    [软件名]
   自动解决依赖关系
   服务:自动解决依赖关系安装软件包
   服务端:提供服务
   客户端:虚拟机
   
   客户端:虚拟机server
       修改Yum客户端配置文件,指定服务端位置
   /etc/yum.repos.d/*.repo
       错误的配置文件,会影响正确的配置文件
       
 [root@tedu ~]# rm -rf /etc/yum.repos.d/*                #清楚干扰配置
   修改清华源
   访问网址:https://mirrors.cnnic.cn/
![image-20200304003848163](C:\Users\13585\AppData\Roaming\Typora\typora-userimages\image-20200304003848163.png)

[root@tedu ~]# vim /etc/yum.repos.d/CentOS-Base.repo    #修改文件    
[root@tedu ~]# yum makecache          #更新软件包
[root@tedu ~]# yum repolist           #列出仓库信息 
已加载插件:fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
源标识                  源名称              状态 
base/7/x86_64       CentOS-7 - Base       10,097 
extras/7/x86_64    CentOS-7 - Extras       323 
updates/7/x86_64     CentOS-7 - Updates   1,478
repolist: 11,898

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值