linux软件包管理(开始上正菜了)

linux程序包管理:
     API:数据接口
     ABI:应用程序二进制接口
        库级别的虚拟化:
             linux:wine
             windows:cywin
     系统级开发: c/c++ :httpd,nginx,vsftpd,go
     应用级开发:java python perl php 


c/c++程序格式:

          源代码:文本格式的程序代码;
             编译开发环境:编译器,头文件,开发库
          二进制格式:文本格式的程序代码–>编译器–>二进制格式
             开发环境:编译器,开发库

程序包管理器:
     源代码–>目标二进制格式–>组织成为一个或有限几个“包”文件;
          协助安装,升级,卸载,查询,校验
程序包管理器
                 debian: dpt,dpkg “.deb”
                 rehat : rpm “.rpm”
                 suse  : rpm,

前段工具:自动解决依赖关系:
          yum:rpm包管理的前段工具
          apt-get:deb包管理器的前段工具
          zypper:suse的rpm管理器前端工具
          dnf:也是一种rpm包管理器的前端工具

查看二进制程序所依赖的库文件               ldd /PATH/TO/BINARY_FILE

获取程序包的途径:
         系统发行版的光盘或官方的文件服务器(或镜像站点)
         http://mirrors.aliyun.com
         http://mirror.sohu.com
         http://mirror.163.com
         项目的官方站点
         第三方组织:EPEL
               搜索引擎:http://pkgs.org
                         http://rpmfind.net
                         http://rpm.phone.net
         自己动手,丰衣足食
         建议:检查其合法性
               来源合法性
               程序包的完整性
centos系统上rpm命令管理程序包:
          安装,升级,卸载,查询和校验,数据库维护
          rpm命令:
                 -i :安装
                 -u :升级
                 -e :卸载
                 -q :查询
                 -v :校验
                 –builddb:数据库维护
               –test:测试安装,检查并报告依赖关系及冲突消息等
               –nodeps:忽略依赖关系,不建议
               –replacepkgs:重新安装
升级:
        rpm -u :升级或安装
               -f :只升级
        rpm -uvh
             –oldpackage: 降级
             –force     : 强制升级
     注意:(1)不要对内核做升级操作,linux支持多内核版本并存,因此,直接安装新版本
              (2)如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原版本的配                       置文件,而是把新版本的配置文件重命名后提供;
     卸载: 直接给包名即可
         rpm -e :卸载
               –allmatches:卸载所有匹配指定名称的程序包的各版本
               –nodeps    :忽略依赖关系
               –test      : 测试卸载

     查询:   rpm -qa  -qc  -ql  等
          rpm -q :查询  
              -a :查询所有已经安装过的包
              -f file :查询指定的文件由哪个程序包安装生成
              -l :程序包安装生成的所有文件列表
              -i : 程序包相关信息,版本号,大小,所属的包组等
              -c : 查询指定的程序包提供的配置文件
              -d : 查询指定的程序包提供的文档
              -p : 指定未安装的包文件做查询操作
     校验: rpm -v  filenam      

包来源合法性验证和完整性验证:
             获取并导入信任的包制作者的秘钥
             验证:
                        安装此组织签名的程序时,会自动执行验证;
                        手动验证:rpm -k packagefile
数据库重建:
            rpm管理器数据库路径:/var/lib/rpm        rpm –initdb     初始化  如果 事先不存在数据库,则新建之否则
            查询操作:通过此处的数据库进行;           rpm –rebuliddb    重建已安装的包的数据库索索引

            获取帮助:
                          man rpm    centos6
                          man rpmdb  centos7  


YUM: Yellowdog Update Modifier ,rpm 的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date
的替代工具
yum repository: yum repo ,存储了众多rpm 包,以及包的相关的元数据文件(放置于特定目录repodata 下)
                       文件服务器:
                                        ftp://
                                        http://
                                        file://

yum 客户端配置文件:
               /etc/yum.conf :为所有仓库提供公共配置
               /etc/yum.repos.d/*.repo :为仓库的指向提供配置
                             配置格式:   [repositoryID]

                                                baseurl=ftp://        或者http://      file://

                                                gpgcheck=0           不检查签名

             yum repolist     检查是否成功 ,会显示具体信息

ftp服务器创建yum源:

     rpm -ivh /mnt/P…    vsftp           安装FPT服务
     service vdftpd  start                  开启FTP服务
     systemctl start vsftpd.service         centos7 开启FPT
     iptables  -F                          清除防火墙
                -vnL                        查看防火墙
     setenforce 0                        禁用selinux
     mkdir /var/ftp/pub/6            光碟挂载路径
     mount -o loop centos.iso  /var/ftp/pub/   生产
     mount –bind /misc/cd/ /var/ftp/pub/      实验

     http://server/centos/$releasever/$basearch/      通用格式

经过查找帮助: 以上设置最好设置开机自动启动:

                     开机自动挂载光碟:/etc/fstab        

                           格式       /dev/cdrom        /var/ftp/pub/     iso9660   auto     0      0

                    自动开启FPT服务:chkconfig  vsftpd    on      

                    自动关闭防火墙:  chkconfig iptables   off 

                    开机关闭selinux:vim /etc/sysconfig/selinux    把第七行改成permissive     (打开文件里面有说明的)  

 yum history       查看以前yum安装信息

yum   history info  #      具体查看某信息

yum   history   undo #     撤销#此次操作, 可以把曾经安装过的依赖包都卸载

原创文章,作者:shewei,如若转载,请注明出处:http://www.178linux.com/70663

(0)
sheweishewei
上一篇 2017-03-07
下一篇 2017-03-07

相关推荐

  • 第七周作业

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; ]#mke2fs -t ext4 -b 2048 -L MYDATA -m 2 O acl /dev/sda1 (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件…

    Linux干货 2017-03-11
  • Linux 的发展史

    前言 l  免费源码开放 l  安全性高,漏洞修补快 l  多任务、多使用者 l  多平台支持 l  设备要求低,不耗资源 ……      看到这一系列的优点,在IT人的脑海里只会浮出一个名字Linux. 如果还不够直观的话,有这么一个数据, 显示前500系统中的485…

    Linux干货 2016-10-14
  • grep命令与正则表达式

    grep命令与正则表达式 什么是grep:         grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的…

    Linux干货 2017-04-08
  • 再不自动化就晚啦!优云教你4步打造基于CentOS的产品镜像

    随着Linux程序的增多,软件的安装过程中经常出现如下问题: 1、硬件配置类似或者相同时,批量安装系统和软件,希望实现自动化安装,减少安装时间和人为出错。 2、工程实施人员在不同客户现场进行系统和软件安装(硬件配置不同),由于硬件有差别,不容易实现自动化。 笔者针对以上场景,从提高生产效率,减少误操作的立场,提出如下解决方案,希望能达到抛砖引玉的目的,并能与…

    系统运维 2016-07-16
  • 树 非线性结构 树是n(n >= 0)个元素的集合: (1)每个元素称为结点(node); (2)有一个特定的结点,称为根结点或根(root); (3)除根结点外,其余结点被分成m(m>=0)个互不相交的有限集合,而每个子集又都是一棵树(称为原树的子树Subtree) 注意 n = 0时,称为空树 树只有一个特殊的没有前驱的元素,称为树的根(Ro…

    2017-10-16
  • lvs的四种调度类型和调度算法介绍

    lvs是linux内核级的负载均衡解决方案,作为netfilter的补充套件,其工作在INPUT hook上。 相比nginx等负载均衡解决方案的差异如下: lvs工作于内核空间,不受用户空间套接字和端口数量的限制,而且所有调度工作在内核空间完成,效率更高; nginx为七层负载均衡器,虽然通过stream模块也可以做到四层负载均衡,但是受到套接字数量限制,…

    Linux干货 2017-06-25