一.软件包管理简介

    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. Trace 2018徐州icpc网络赛 思维+二分

    There's a beach in the first quadrant. And from time to time, there are sea waves. A wave ( xx , yy) ...

  2. CF1005C Summarize to the Power of Two 暴力 map

    Summarize to the Power of Two time limit per test 3 seconds memory limit per test 256 megabytes inpu ...

  3. codeforces E. Phone Talks(dp)

    题目链接:http://codeforces.com/contest/158/problem/E 题意:给出一些电话,有打进来的时间和持续的时间,如果人在打电话,那么新打进来的电话入队,如果人没有打电 ...

  4. Python 之父的解析器系列之五:左递归 PEG 语法

    原题 | Left-recursive PEG grammars 作者 | Guido van Rossum(Python之父) 译者 | 豌豆花下猫("Python猫"公众号作者 ...

  5. 【LeetCode】33-搜索旋转排序数组

    题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存在这 ...

  6. MySQL和mybatis查询相关

    0.mybatis的xml文件头 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapp ...

  7. Invalid bound statement (not found): com.taotao.mapper.TbItemMapper.selectByExample问题解决

    最近在做一个关于ssm框架整合的项目,但是今天正合完后出现了问题: Invalid bound statement (not found): com.taotao.mapper.TbItemMappe ...

  8. 史无前例的RNN讲解

    这篇博客不是一篇讲解原理的博客,这篇博客主要讲解time_steps,如果这篇博客没有让你明白time_steps,那么算我无能. 我曾翻阅各大网站,各大博客,他们的对RNN中time_steps的讲 ...

  9. CF979C Kuro and Walking Route(简单的dfs/树形dp)

    题意:给出一个$n$个点,$n-1$条边的无向连通图,给出两个点$x,y$,经过$x$后的路径上就不能经过$y$,问可以走的路径$(u,v)$有多少条,($(u,v)$和$(v,u)$考虑为两条不同的 ...

  10. .NET Core 3.0 Preview 9 发布

    翻译自官方博客 今天,我们宣布推出.NET Core 3.0 Preview 9.就像预览版8一样,我们专注打磨最终版本的.NET Core 3.0,而不是添加新功能.如果这些最终版本看起来不像早期预 ...