一.软件包管理简介

    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包的安装位置

 
 

Linux下的软件管理的更多相关文章

  1. 【one day one linux】linux下的软件包管理工具

    Linux 下的软件包管理工具 linux下的软件安装可以通过两种方式,一种是直接使用自带的软件包管理工具安装,另外一种通过编译源码安装. 1.软件包的种类 Red Hat和Fedora:redhat ...

  2. Linux下安装软件命令详解

    ---------------------------------------------------------------- 或许你对于linux还不够了解,但是一旦你步入公司后,你就会发现lin ...

  3. linux下安装软件的常用方法

    在使用Linux系统的过程中,软件包的安装是避免不了的,在Linux下,软件安装程序的种类很多,安装方法也各式各样,(舒适性自然比不上windows :-))不过我们常见的软件包有两种: 1)含有软件 ...

  4. 第三章 用SDK编译出第一个在Linux下的软件界面

    第三章 用SDK编译出第一个在Linux下的软件界面 先创建一个工程目录“mkdir project1”,进入目录,创建main.cpp文件,编写代码如下: 代码内容暂时可以先不理解,先让程序跑起来再 ...

  5. 总结Linux下的软件安装

    安装软件的最佳实践 虽然我们知道Linux下安装软件有三种方式,分别是源代码安装,rpm包安装和yum安装,但是从可控性和结合自己目前的水平来说,优先选择以下两种方式安装程序. 1,使用rpm包安装 ...

  6. Linux 下Office 软件名称

    Linux 下Office 软件名称

  7. 安装VMtools vim编辑器的使用 压缩包命令 Linux下的用户管理 (第三天)

    VM tools:方便我们虚拟机和宿主机之间复制数据或移动文件等 安装VMtools 1.菜单栏-虚拟机-安装VM tools 将其选中 2.进入系统,在桌面位置里面有VM tools的光盘,双击进入 ...

  8. linux下获取软件源码包 centos/redhat, debian/ubuntu

    linux下获取软件源码包 centos/redhat, debian/ubuntu centos下: 1. yum install yum-utils 主要为了获取yumdownloader 2. ...

  9. Linux 下权限的管理

    Linux 下权限的管理 我们都知道,Linux系统对于用户的权限管理是十分严格的. 那么,我们就来具体了解一下. 一. 用户 在Linux中按照类型用户分为两种:1.超级用户 2.普通用户 那么它们 ...

随机推荐

  1. POJ 1002 487-3279 map

    487-3279 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 287874   Accepted: 51669 Descr ...

  2. codeforces 509 E. Pretty Song(前缀和+前缀和的前缀和)

    题目链接:http://codeforces.com/problemset/problem/509/E 题意:给你一个字符串,求字串中包括子串中I, E, A, O, U, Y.所占的概率和. 题解: ...

  3. IDEA 中用好 Lombok,撸码效率至少提升5倍!

    来 源:http://t.cn/EXhxRzV 以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString:异常处理:I/O流的关闭操作等等,这些样板代码既没 ...

  4. (六十二)c#Winform自定义控件-警灯(工业)

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...

  5. 【Offer】[29] 【顺时针打印矩阵】

    题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 例如,如果输入如下矩阵:  则依次打印出数字1,2,3,4,8,12, ...

  6. 【LeetCode】334#递增的三元子序列

    题目描述 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1, 使得 ...

  7. 锁和synchronized

    锁的常见概念 互斥: 同一时刻只有一个线程执行 临界区:一段需要互斥执行的代码 细粒度锁: 用不同的锁对受保护资源进行精细化管理. 细粒度锁可以提高并行度,是性能优化的一个重要手段 死锁 :一组互相竞 ...

  8. git修改user.name 和user.email

    今天刚刚入门了下git,,然后初始化的时候将用户名弄错了...就很气啊.然后网上找了半天都找不出一个可靠的修改全局用户名和邮箱的方法..   最后还是自己摸索出来了..其实也很简单.   首先进入gi ...

  9. MySql创建索引、删除索引、新增字段、删除字段、修改字段语句

    --------------------------------------------------------- -- ALTER TABLE 创建索引 ---------------------- ...

  10. HTTPS加密协议

    使用JDK自带的keytool工具生成一个证书(keystore文件),其中包含了密钥. a.在命令行输入以下命令:keytool -genkey -alias tbb -keyalg RSA -ke ...