• 软件管理


    软件管理

    一、软件包管理简介

    1、软件包分类

    l  源码包

    n  脚本安装包

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

    2、源码包

    源码包的优点是:

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

    l  可以自由选择所需的功能

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

    l  卸载方便

    源码包的缺点

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

    l  编译过程时间较长,安装比二进制安装时间长

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

    3、RPM包

    二进制包的优点

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

    l  安装速度比源码包安装快的多

    二进制包缺点:

    l  经过编译,不再可以看到源代码

    l  功能选择不如源码包灵活

    l  依赖性

    二、RPM包管理-rpm命令管理

    1、RPM包命名原则

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

    httpd

    软件包名

    2.2.15

    软件版本

    15

    软件发布的次数

    el6.centos

    适合的Linux平台

    i686

    适合的硬件平台

    rpm

    rpm包扩展名

    2、RPM包依赖性

    l  树形依赖:a——b——c

    l  环形依赖:a——b——c——a

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

    libapr-1.so.0——apr-1.2.7-11.el5_5.3.i386.rpm

    libaprutil-1.so.0——apr-util-1.2.7-11.el5_5.2.i386.rpm

    libpq.so.4——postgresql-libs-8.1.22-1.el5_5.1.i386.rpm

    libgmp.so.3——gmp-4.1.4-10.el5.i386.rpm

    3、包全名与包名

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

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

    4、RPM安装

    rpm -ivh 包全名

    选项:

    -i(install)

    安装

    -v(verbose)

    显示详细信息

    -h(hash)

    显示进度

    --nodeps

    不检查依赖性

    5、RPM包升级

    rpm -Uvh 包全名

    选项:

    -U(upgrade)

    升级

    6、卸载

    rpm -e 包名

    选项:

    -e(erase)

    卸载

    --nodeps

    不检查依赖性

    7、查询是否安装

    rpm -q 包名

    #查询包是否安装

    选项:

    -q

    查询(query)

    rpm -qa

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

    选项:

    -a

    所有(all)

    8、查询软件包详细信息

    rpm -qi 包名

    选项:

    -i

    查询软件信息(information)

    -p

    查询未安装包信息(package)

    9、查询包中文件安装位置

    rpm -ql 包名

    选项:

    -l

    列表(list)

    -p

    查询未安装包信息(package)

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

    rpm -qf 系统文件名

    选项:

    -f

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

    11、查询软件包的依赖性

    rpm -qR 包名

    选项:

    -R

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

    -p

    查询未安装包信息(package)

    12、RPM包校验

    rpm -V 已安装的包名

    选项:

    -V

    校验指定RPM包中的文件(verify)

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

    13、RPM包中文件提取

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

    rpm2cpio

    #将rpm包转换为cpio格式的命令

    cpio

    #是一种标准工具,它用于创建软件档案文件和从档案文件中提取文件

    cpio 选项 < [文件|设备]

    选项:

    -i:copy-in模式,还原

    -d:还原时自动新建目录

    -v:显示还原过程

    rpm -qf /bin/ls

    #查询ls命令属于哪个软件包

    mv /bin/ls /tmp/

    #造成ls命令误删除假象

    rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19-el6.i686.rpm | cpio -idv ./bin/ls

    #提取RPM包中ls命令到当前目录的/bin/ls下

    cp /root/bin/ls /bin/

    #把ls命令复制回/bin/目录,修复文件丢失

    三、RPM包管理-yum在线管理

    1、网络yum源

    vi /etc/yum.repos.d/CentOS-Base.repo

    [base]

    容器名称,一定要放在[]中

    name

    容器说明,可以自己随便写

    mirrorlist

    镜像站点,这个可以注释掉

    baseurl

    我们的yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的。如果你觉得慢可以改成你喜欢的yum源地址

    enabled

    此容器是否生效,如果不写或写成enabled=1都是生效,写成enabled=0就是不生效

    gpgcheck

    如果是1是指RPM的数据证书生效,如果是0则不生效

    gpgkey

    数字证书的公钥文件保存位置。不用修改

    2、常用yum命令

    1)查询

    yum list

    #查询所有可用软件包列表

    yum search 关键字

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

    2)安装

    yum -y install 包名

    选项:

    install

    安装

    -y

    自动回答yes

    3)升级

    yum -y update 包名

    选项:

    update

    升级

    -y

    自动回答yes

    4)卸载

    yum -y remove 包名

    选项:

    remove

    卸载

    -y

    自动回答yes

    3、YUM软件组管理命令

    yum grouplist

    #列出所有可用的软件组列表

    yum groupinstall 软件组名

    #安装指定软件组,组名可以由grouplist查询出来

    yum groupremove 软件组名

    #卸载指定软件组

    4、光盘yum源搭建步骤

    1)挂载光盘

    mount /dev/cdrom /mnt/cdrom

    2)让网络yum源文件失效

    cd /etc/yum.repos.d/

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

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

    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

    四、源码包管理

    1、区别

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

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

    2、RPM包安装位置

    l  是安装在默认位置中

    RPM包默认安装路径

    /etc/

    配置文件安装目录

    /usr/bin/

    可执行的命令安装目录

    /usr/lib/

    程序所使用的函数库保存位置

    /usr/share/doc/

    基本的软件使用手册保存位置

    /usr/share/man/

    帮助文件保存位置

    3、源码包安装位置

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

    4、安装位置不同带来的影响

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

    n  /etc/rc.d/init.d/httpd start

    n  service httpd start

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

    n  /usr/local/apache2/bin/apachectl start

    5、安装准备

    l  安装C语言编译器

    l  下载源码包http://mirror.bit.edu.cn/apache/httpd/

    6、安装注意事项

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

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

    l  如何确定安装过程报错:

    n  安装过程停止

    n  并出现error、warning或no的提示

    7、源码包安装过程

    l  下载源码包

    l  解压缩下载的源码包

    l  进入解压缩目录

    l   

    ./configure

    软件配置与检查

    l  定义需要的功能选项。

    l  检测系统环境是否符合安装要求。

    l  把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。

    l   

    make

    编译

    l  make clean

    l   

    make install

    编译安装

    8、源码包的卸载

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

    五、脚本安装包与软件包选择

    1、脚本安装包

    l  脚本安装包并不是独立的软件包类型,常见安装的是源码包。

    l  是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装。

    l  非常类似于Windows下软件的安装方式。

    2、Webmin的作用

    l  Webmin是一个基于Web的Linux系统管理界面。您就可以通过图形化的方式设置用户账号、Apache、DNS、文件共享等服务

    3、Webmin安装过程

    l  下载软件

    http://sourceforge.net/projects/webadmin/files/webmin/

    l  解压缩,并进入解压缩目录

    l  执行安装脚本

  • 相关阅读:
    Java项目(非Web)整合lombok+slf4j1.7.x+log4j 2.x日志框架同时输出到文件和控制台
    2022年面试准备
    前端做微信支付(vue)
    手机端的宽度
    Kubernetes平台上更安全的构建容器镜像工具Kaniko
    软件开发方法论12 factors
    Mysql 优化记录
    微信端浏览器有两个相同名的cookie在shiro引发无法认证问题
    若依系统富文本编辑框内容保存到后台样式被过滤问题
    ts中的void和never类型
  • 原文地址:https://www.cnblogs.com/wangxudong/p/10050134.html
Copyright © 2020-2023  润新知