zoukankan      html  css  js  c++  java
  • Linux软件安装管理

    1、软件包管理简介

    1.软件包分类

    源码包

    • 脚本安装包

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

    2.源码包

    源码包的优点是:

    • 开源,如果有足够的能力,可以修改源代码
    • 可以自由选择所需要的功能
    • 软件设计编译安装,所以更加适合自己的系统,更加稳定有效
    • 卸载方便

    源码包的缺点:

    • 安装过程步骤较多,尤其是安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
    • 编译过程时间较长,安装比二进制安装时间长
    • 因为是编译安装,安装过程中一旦报错新手很难解决

    3.RPM包

    二进制包的优点:

    • 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
    • 安装速度比源码包安装快的多

    二进制包缺点:

    • 经过编译,不再可以看到源代码
    • 功能选择不如源码包灵活
    • 依赖性

    4.脚本安装包

    所谓的脚本安装包,就是把复杂的软件包安装过程写成了程序脚本,初学者可以执行程序脚本实现一键安装。但实际安装的还是源码包和二进制包。

    优点:安装简单、快捷

    缺点:完全丧失了自定义性

    2、rpm命令管理

    Red Hat Package Manager/RPM 红帽软件包管理器

    RPM包命名规则

    1.RPM包的来源

    RPM包在系统光盘中

    2.RPM包命名原则

    httpd-2.2.15-15.el6.centos.1.i686.rpm

    • httpd 软件包名
    • 2.2.15 软件版本
    • 15 软件发布的次数
    • el6.centos 适合的Linux平台
    • i686 适合的硬件平台
    • rpm rpm扩展名

    3.RPM包依赖性

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

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

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

    安装命令

    1.包全名与包名

    包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径。

    包名:操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库。

    2.RPM安装

    rpm -ivh 包全名

    选项:

    • -i(install) 安装
    • -v(verbose) 显示详细信息
    • -h(hash) 显示进度
    • --nodeps 不检测依赖性

    升级与卸载

    1、RPM包升级

    rpm -Uvh 包全名

    选项:

    • -U(upgrade) 升级

    2.卸载

    rpm -e 包名

    选项:

    • -e(erase) 卸载
    • --nodeps 不检查依赖性

    RPM包查询

    1.查询是否安装

    rpm -q 包名

    # 查询包是否安装

    • -q 查询(query)

    rpm -qa

    # 查询所有已经安装的RPM包

    • -a 所有(all)

    rpm -qa | grep httpd

    2.查询软件包详细信息

    rpm -qi 包名

    选项:

    • -i 查询软件信息(information)
    • -p 查询未安装包信息(package)

    3.查询包中文件安装位置

    rpm -ql 包名

    选项:

    • -l 列表(list)
    • -p 查询未安装包信息(package)

    RPM包默认安装位置

    RPM包默认安装路径
    /etc/ 配置文件安装目录
    /usr/bin 可执行的命令安装目录
    /usr/lib/ 程序所使用的函数库保存位置
    /usr/share/doc 基本软件使用手册保存位置
    /usr/share/man/ 帮助文件保存位置

    4、查询系统文件属于哪个RPM包

    rpm -qf 系统文件名

    选项:

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

    5、查询软件包的依赖性

    rpm -qR 包名

    选项:

    • -R 查询软件包的依赖性(requires)
    • -p 查询未安装包信息(package)

    RPM包校验

    1、RPM包校验

    rpm -V 包名

    验证内容中的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)

    2、RPM包中文件提取

    rpm2cpio 包全名 | cpio -idv .文件绝对路径

    • rpm2cpio
      # 将rpm包转换为cpio格式的命令
    • cpio
      # 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件

    [root@AmorLei ~]# cpio 选项 < [文件|设备]

    选项:

    • -i :copy-in模式,还原
    • -d :还原时自动新建目录
    • -v :显示还原过程
    rpm -qf /bin/ls
    # 查询ls命令属于哪个软件包
    mv /bin/ls /tmp/
    # 造成ls命令误删除现象
    rpm2cpio /mnt/cdrom/Package/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls
    # 提取RPM包中ls命令到当前目录的/bin/ls下
    cp /root/bin/ls /bin/
    # 把ls命令复制回/bin/目录,修复文件丢失

    3、yum在线管理

    RPM包缺点:安装过程中,rpm包的依赖性太强。如果所有rpm包都是手工安装,则rpm包使用难度较大。

    yum优点:将所有包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题。

    yum缺点:Red Hat的yum在线安装需要付费

    1.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 数字证书的共钥文件保存位置。不用修改

    2.光盘搭建yum源

    1.挂载光盘

    mkdir /mnt/cdrom
    # 建立挂载点
    mount /dev/cdrom /mnt/cdrom
    # 挂载光盘

    2.使网络yum源失效

    cd /etc/yum.repos.d/
    # 进入yum源目录
    mv CentOS-Base.repo CentOS-Base.repo.bak
    # 修改yum源文件后缀名,使其失效

    3.使光盘yum源生效

    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.yum命令

    1.常用yum命令

    (1)查询

    yum list
    # 查询所有可用软件包列表
    yum search 关键字
    # 搜索服务器上所有和关键字相关的包

    (2)安装

    yum -y install 包名
    选项:
    - install         安装
    - -y             自动回答yes
    例如:yum -y install gcc

    (3)升级

    yum -y update 包名
    选项:
    - update          升级
    - -y             自动回答yes

    (4)卸载

    yum -y remove 包名
    选项:
    - remove        卸载
    - -y             自动回答yes

    服务器使用最小化安装,用什么软件安装什么,尽量不卸载

    2.yum软件组管理命令

    yum grouplist
    # 列出所有可用的软件组列表
    yum groupinstall 软件组名
    # 安装指定软件组,组名可以由grouplist查询出来
    yum groupremove 软件组名
    # 卸载指定软件组

    4、源码包管理

    1.源码包和RPM包的区别

    区别

    安装之前的区别:概念上的区别

    安装之后的区别:安装位置不同

    RPM包安装位置

    是安装在默认位置中

    rpm安装可以指定安装位置,但是不建议指定安装位置

    [root@AmorLei ~]# rpm --help | grep prefix
      --prefix=<dir>                   relocate the package to <dir>, if

    源码包安装位置

    安装在指定位置当中,一般是: /usr/local/软件名/

    源码包没有卸载命令

    安装位置不同带来的影响

    RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法是:

    • /etc/rc.d/init.d/httpd start
    • service httpd start(RedHat 专有方法)

    源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理,如:

    • /usr/local/apache2/bin/apachectl start

    2.源码包安装过程

    1.安装准备

    安装C语言编译器

    下载源码包:使用httpd-2.2.34没有报错

    http://mirror.bit.edu.cn/apache/httpd

    2.安装注意事项

    源代码保存位置:/usr/local/src/

    软件安装位置:/usr/local/

    如何确定安装过程报错:

    安装过程停止 并出现error、warning或no的提示

    3.源码包安装过程

    下载源码包

    解压缩下载的源码包

    进入解压缩目录

    • /configure 软件配置与检查
      • 定义需要的功能选项。
      • 检测系统环境是否符合安装要求。
      • 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。
      • [root@AmorLei httpd-2.2.34]# ./configure --prefix=/usr/local/apache2
    make 编译
        make clean
    make install 编译安装
    
    /usr/local/apache2/bin/apachectl start

    RPM包网页位置 /var/www/html/

    源码包网页位置 /usr/local/apache2/htdocs/

    4.源码包的卸载

    不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件。

    5、脚本安装

    脚本安装的笔记将在之后进行更新!

  • 相关阅读:
    iOS通知的使用
    使用代理和block写一个alertView
    MongoDB的访问权限和用户设置
    编写高效SQL语句
    Linux 安装 jdk 环境
    基于3dsMax的地图编辑器设想
    入驻cnBlogs!
    毕设开发总结3D游戏框架及网络对战游戏的开发(1)
    gkENGINE 个人图形引擎展示
    利用D3DQUERY实现简单的GPU计时器
  • 原文地址:https://www.cnblogs.com/yan-lei/p/7674767.html
Copyright © 2011-2022 走看看