Linux下的软件管理

一.软件包管理简介

    1源码包(脚本安装)
       ①.特点: a.开源 ,可以修改
                       b.自由选择所需功能
                       c.软件是编译安装,更加适合自己的系统,更加稳定和有效
                       d.卸载方便
        ②.缺点:   a.安装步骤较多,安装较大的集成(LAMP环境搭建),容易拼写错误
                         b.编译时间长,比二进制(windows)安装时间长
                         v.一旦报错,解决方案比较麻烦。   
     2.二进制包(rpm包、系统默认包、编译之后的)
         ①优点:a.包管理系统简单,只需要几个命令就可以安装、升级了
                     b.比源码包快很多
          ②缺点:  a.不可以看到源代码
                        b.没有源码灵活
                        c.依赖性
        编译  public class main{} --》机器语言01010102
        反编译-->基本不可逆,有混淆。

二、rpm命令管理(/var/lib/rpm/ 下面的db文件存放了安装的软件包名)

    1.rpm包的命名规则
          ① 来源:系统光盘中 、mnt/cdrom/Packages
          ② httpd-2..2.15-15.el6.centos.1.i686.rpm
                    httpd软件包名
                    2.2.15软件版本
                    15版本发布的次数
                    .el6.centos适合的linu平台
                    i6868适合的硬件平台
                    rpmrpm包扩展名
        ③ RPM包依赖性
                树形依赖:a->b->c
                环形依赖:a->b->c->a
                模型依赖:模块依赖(库依赖,函数依赖  .so文件,依赖的是一个文件,而不是软件),
                                 需要一个库依赖时,安装其他的软件包含的这个库就可以,去后面查询网站:www.rpmfind.net (很恶心的)
    2.安装命令
            ①.包全名和包名     有些命令(rpm)是包全名--有的命令(卸载、查询)是包名  
                
            ②.Rpm安装:
                    
             ③.升级与卸载
                   a. rpm  -Uvh 包全名
                        -U 升级    (如果没有安装一个软件包,用升级命令既是安装命令)
                    b.rpm  -e 包名
                            -e 卸载(卸载也有依赖性)                 没有安装位置,由写下载包的人决定。不会添加垃圾文件,没有注册表啥的
                            --nodeps不检查依赖性
             ④.rpm包查询
                    a. rpm -q包名  查询包是否安装
                    b. rpm -qa 查询所有已经安装的RPM包                  grep后面是正则表达式
                    c.  rpm  -qi 包名     软件的信息是开发者打包成rpm包时,添加的信息
                                    -i 查询软件信息   
                                    -q查询未安装包信息
                    d.  rpm  -ql 包名
                                -l 列表
                                -q查询未安装包的位置
                    e.    rpm -qf 系统文件名
                                -f  查询这个文件属于哪个包 , 这个文件必须是rpm包装的,否则则不可以查询 
                    f.    rpm -qR 包名
                                -R 查询软件包的依赖性
                                -p查询未安装包的信息
             ⑤.RPM包校验    
                    a. rpm -V  校验验证的信息
                    b. rpm2cpio 包全名 |  cpio -idv .文件的绝对路径    |管道符
                            -rpm2cpio   将RPM包转换成CPIO格式的命令
                            -cpio  是一个标准工具,用于创建软件档案文件和从档案文件中提取文件。
                        cpio 选项 <[文件|设备]
                                -i :copy-in模式,还原
                                -d :   还原时自动新建目录
                                -v :    显示还原过程

三、yum在线管理

            将所有的软件包放在官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题
             redhat需要付费   
        1.yum源文件
            在线        /etc/yu,.repos.d/         文章下面的图四
                            mirrorlist镜像               baseUrl
        2.光盘yum源搭建(不联网怎么下载?)
           在光盘搭建本地光盘yum源步骤
           a.  挂载光盘  :mkdir /mnt/cdrom 建立挂载点     mount /dev/cdrom挂载光盘     /mnt/cdrom
           b.使网络yum源失效 : cd /etc/yum.repos.d  进入源目录    mv CentOS-Base.repo  CentOS-base.repo.bak 修改文件名字,使其失效
           c.使光盘yum生效  见文章后面图五
           d.yum  list  查看本地源有哪些
        3.yum命令,不能查询本地的安装包,只能查询服务器上面的,与rpm包醉的的区别,就是依赖
            a.yum list  查询所有可用软件包列表
            b.yum search 关键字  和关键字相关的包
            c.yum -y install 包名    (yum中没有包全名,包全名只在rpm中有效)
                            -y 自动回答yes     yum -y install gcc
            d. yum -y update httpd 升级  不加httpd表示升级所有的,包括内核
            e. yum -y remove  包名   服务器使用最小化安装,用什么软件安装说明,尽量不要卸载。卸载也有依赖性。
                    组命令
            f. yum grouplist 列出所有可用的软件组列表
            g.yum groupinstall 软件组名   安装指定软件组,组名可以由grouplist查询出来。 软件组名必须是英文。
            h.yum groupremove 软件组名
            i. LANG=zh_CN  修改当前系统的语言

四、源码包管理

    1.源码包和RPm包的区别
        安装之前是概念的不同
        安装之后的区别:安装位置不同   会导致启动方法不一样    ,安装位置见图六
        ①rpm包可以指定安装位置  rpm --help | grep prefix   RPM包建议,
        ②RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法:
                a./etc/rc.d/init/httpd start   (linux的标准启动方法,如果指定位置,则按照你的位置,)
                b.service htpd start  (查找默认的位置/etc/rc.d/init/httpd)
        ③源码包安装位置一般是   /usr/local/软件名/
            没有卸载命令    把安装目录直接删掉
            源码包启动: /usr/local/apache2/bin/apachectl start
            serice不能启动源码包的,或者把源码包移动到默认位置
    2.源码包安装过程
        ①安装C语言编译  gcc
        ②下载源码包(rpm包是linux的光盘,源码包从官网下载)
        ③注意:  源代码包保存位置:/usr/local/src/          软件安装位置:/usr/local/    
        ④解压缩下载的源码包、进入解压缩目录
        ⑤ ./config  每个源码包基本都有  
                    a.定义功能选项,
                    b.检测系统环境是否符合安装要求。
                    c.把定义好的功能选项和检测系统环境的信息都写入makefile文件中,用于后续的使用
        ⑥ make  编译
                a.make clean 如果报错了,清除编译缓存文件
              make install编译安装
        ⑦进入你安装的位置,然后启动   /usr/local/apache2/bin/apachectl start
            如果你用rpm安装了 acpache,要  service httpd stop先停止,再启动
        源码包安装可以看他的文档。
        ⑧源码包没有卸载命令,直接删除安装目录即可。不会遗留垃圾文件的

五、脚本安装        https://lnmp.org/

关闭SELinux(美国安全局开发)和防火墙
 
 
图一   RPM包的默认位置(常规位置,具体位置由RPM包的作者决定的)

 

图二 rpm -V 验证文件是否经过更改的详细提示信息(一)

 

图三 rpm -V 验证文件是否经过更改的详细提示信息(二)
 
图四 yum源文件

 

图五:yum源生效更改

 

图六RPM包的安装位置

 

 
 
posted @ 2019-01-05 16:00  弄潮儿儿  阅读(587)  评论(0编辑  收藏  举报