6 软件的安装

    xiaoxiao2021-03-26  31

    6 软件包管理

    6.1 简介

    软件包分类:

    源码包 源代码(大多数是C语言) 安装时慢,容易报错

        >脚本安装包 对源码包进行改装,使安装更简单,不多。

    rpm包  二进制包 Ubuntu系列的二进制包不是rpm,这是根本不同

     

    源码包优点:

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

    可以自由选择所需的功能

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

    卸载方便(直接把安装目录删掉)

     

    源码包缺点:

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

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

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

    用源码包安装一个Linux大概用3天(老手)

     

     

    二进制包优点:

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

    安装速度比源码包安装快得多

     

    二进制包缺点:

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

    功能选择不如源码包灵活

    依赖性

     

    6.2 包命名与依赖性

    httpd-2.2.15-15.e16.centos.1.i686.rmp

    httpd 包名

    2.2.15 版本

    15 发布次数

    e16.centos 适合的Linux平台

    i686 适合的硬件平台  noarch 表示任何Linux版本都可以安装

    rpm rpm包扩展名

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

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

     

    树形依赖 a -> b -> c

    环形依赖 a -> b -> c -> a  解决办法:a b c 同时安装

     

    RPM包库依赖  以 .so.2 结尾,不是独立的,是某个软件包中的文件

    模块依赖 查询网站 www.rpmfind.net,输入xxx.so.2可以查看属于哪个包。

    只要把包含此文件的软件安装上即可。

    6.3 安装与升级

    安装

    rpm -ivh 包全名

    -i  install

    -v  verbose

    -h  hash  显示

    实验步骤:

    1、先将光盘挂载:mount -t iso9660 /dev/sr0 /media

    2cd /media/Packages

    3、此时就可用  rpm -ivh 包全名 命令进行安装了

     

    升级

    rpm -Uvh 包全名

    -U upgrade 升级

     

    卸载

    rmp -e 包名

    -e erase 卸载

        --nodeps 不检查依赖性

     

    6.4 查询

    查询功能非常常用

     

    查询是否安装

    rpm -q 包名

    rpm -qa

    -q query 查询

         -a all 所有

    rpm -qa| grep httpd   此命令查询所有和httpd相关的包安装信息    |管道符

     

    查询软件包详细信息

    rpm -qi 包名 #查询已安装的包信息

    rpm -qip 包全名 #查询未安装包的信息,这些信息已经在包中写好

    -i information 查询软件信息

         -p package 查询未安装包信息

     

    查询包中文件安装位置 包的安装位置都是默认的

    rpm -ql 包名

    rpm -qlp 包全名 查询未安装包打算的位置,已在包中设置好

    -l list 列表

     

    查询系统文件属于哪个RPM

    rpm -qf 系统文件名

    -f file 查询系统文件属于哪个软件包      etc目录下都是系统的配置文件

    查询软件包的依赖性

    rpm -qR 包名

    rpm -qRp 包全名 查询未安装包的依赖性

    -R requires 查询软件包的依赖性

     

    6.5 校验

    RPM包校验 判断系统文件是否被更改

     

    rpm -V 已安装包名

    -V verify 校验指定RPM包中的文件

     

    例:rpm -V httpd

    如果出现任何信息,则表示没有任何修改。

    如果有修改,会显示“修改标志位 文件名”

     

    修改标志位有8位信息   点(.)代表未被修改

    S 文件大小是否修改

    M 文件类型 或者 文件权限(rwx)是否修改

    5 文件MD5校验(文件内容是否修改) MD5 -- 一种加密方式

    D 设备中,从代码是否改变

    L 文件路径是否修改

    U 文件所有者是否修改

    G 文件所属组是否修改

    T 文件修改时间是否修改

     

    文件类型(对应上面的M

    c config file 配置文件

    d documentation 普通文档

    g ghost file 鬼文件 很少见 就是该文件不应该被这个RPM包包含

    l license file 授权文件

    r read me 描述文件

     

    6.6 文件提取

    目的:从rpm包中提取指定文件,用于恢复某些文件。

     

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

    #rpm2cpio命令可将rpm包转换为cpio处理格式

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

     

    cpio 选项 < [文件|设备]

    -i copy-in模式,还原

    -d 还原时自动新建目录

    -v 显示还原过程

     

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

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

     

    6.7 yum在线管理

    yum在线管理  redhat收费 centos免费

     

    内网:需配置ip 子网掩码

    公网:还需配置 网关 DNS

     

    IP地址配置:

    方法一

    setup   redhat系列专有命令

    service network restart

     

    方法二

    vi /etc/sysconfig/network-scripts/ifcfg-eth0

    ONBOOT="no"改为 ONBOOT="yes" #启动网卡

    如果文件中没有设置DNS,则添加DNS1=1114.114.114.114

    service network restart

     

    网络yum源:  

    (.repo都是合法的yum源 默认是CentOS-Base.repo生效)

    配置文件为/etc/yum.repos.d/CentOS-Base.repo

    这个文件默认已经配置好了,不需要更改

     

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

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

    mirrorlist  镜像站点

    baseurl  yum源服务器的地址。默认是CentOS官方yum源服务器,如果觉得慢,可以改成别的yum源地址

    enabled  此容器是否生效,不写默认为1,代表生效

    gpgcheck   RPM数字证书是否生效,如果是1,则生效

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

     

    查询:

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

    yum search 关键字  #搜索服务器上所有和关键字相关的包   yum全用包名 RPM则有包名和包全名之分

     

    安装:

    yum -y install 包名

    -y 自动回答yes   

    例:yum -y install gcc

     

    升级:

    yum -y update 包名

    例:yum -y update  //此命令升级所有软件包,包括内核,慎用!

     

    卸载:

    yum -y remove 包名

    #不要用yum卸载软件包!!!

    会将其依赖的包卸载,出现别的问题。

     

    服务器使用的原则:

    1.最小化安装

    2.使用什么软件,安装什么软件

    3.尽量不卸载软件

     

    yum软件组管理命令:

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

    yum groupinstall 软件组名  #安装指定软件组,组名可用grouplist查询,如果组名有空格,用双引号引起来

    yum groupremove 软件组名   #卸载指定软件组

     

    6.8 yum光盘管理

     

    1> 挂载光盘  mount -t iso9660 /dev/sr0 /media

     

    2> 让网络yum源文件失效

    方法一:将所有选项都置成enable=0

    方法二:yum源检测的是.repo后缀名  所以改名即可

     

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

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

        mv CentOS-Vault.repo CentOS-Vault.repo.bak

     

    3> 修改光盘yum

       vim CentOS-Media.repo

    修改两处:

       baseurl=file:///mnt/cdrom/   #地址为自己的光盘挂载点,并把其他地址注释掉

       enabled=1  #让此yum源生效

     

    yum list | more  分屏显示

     

    注释有严格格式,最好单行顶格写注释

     

    6.9 源码包与RPM包的区别

    安装之前:概念上的区别

    安装之后:安装位置不同

     

    RPM包 系统指定的默认位置,不要人为手工修改安装目录

    /etc/    配置文件

    /usr/bin/  可执行命令

    /usr/lib/  函数库

    /usr/share/doc/  使用手册

    /usr/share/man/  帮助文件

    源码包 人为手工指定安装位置

    一般是 /usr/local/软件名/

     

    安装位置不同带来的影响:

    RPM包安装的服务可以使用系统服务管理命令(service)来管理,--启动、重启、关闭

    例如RPM包安装的Apache的启动方法是:

       /etc/rc.d/init.d/httpd start    #/etc/rc.d/init.d/是所有服务的安装路径  或者

       service httpd start  redhat系列专有命令,工作原理:去/etc/rc.d/init.d/目录下去找httpd服务

    源码包安装的服务只能通过绝对路径进行管理:

       /urs/local/apache2/bin/apachectl start

     

    6.10 源码包的安装过程

    源码包安装注意事项:

    源码包保存位置  /usr/local/src/

    软件安装位置    /usr/local

    如何确定安装过程报错?安装过程停止并出现errorwarningno的提示

     

    安装Apache源码包过程:

    1、下载源码包到/usr/local/src/

    2、解压缩下载的源码包

    3、(可选)du -sh 文件名/目录  查看文件夹大小  disk usage

         summarize

         human

    4、进入解压缩目录

    两个重要文件:INSTALL(安装说明文件)、README(使用说明文件)

    5、查看INSTALL文件内容

    INSTALL关键内容

    $ ./configure --prefix=PREFIX

    $ make

    $ make install

    $ PREFIX/bin/apachectl start

     

    ./configure  软件配置与检查,有三个作用

    >定义需要的功能选项

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

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

     

    6./configure --prefix=/usr/local/apache2    #跟安装路径,此命令完成后,出现Makefile文件

    7make    #编译;如果出错,make clean 命令来清空产生的临时文件

    8make install    #编译安装,此步真正向安装目录写入文件

    9、安装完成后,/usr/local/apache2/bin/apachectl start

     

    源码包的卸载:

    不需要卸载命令,直接删除安装目录即可

    不会遗留任何垃圾文件

     

     

    源码包 RPM包 如何选择?

    用途

    对外访问(如httpd),则采用源码包安装

    本地应用(如gcc),则采用RPM

     

    6.11 脚本安装包

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

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

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

     

    常见的脚本安装包是硬件的驱动

     

    ./setup.sh

     

    1 下载软件

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

    3 执行安装脚本

     

     

     

     

    转载请注明原文地址: https://ju.6miu.com/read-662436.html

    最新回复(0)