zoukankan      html  css  js  c++  java
  • 软件管理

    软件的组成
      1)二进制可执行文件(可执行文件)
      2)库文件(就是这个可执行文件,需要的库文件)
      3)配置文件
           用来配置软件的功能的。
      4)帮助文件
     
    软件包管理器
      作用:
        用来管理软件的制作、安装、卸载、查找、更新
        能RPM够生成1个数据库(记录每个软件的安装位置等信息)
       
      种类:
        1)后端工具
           直接管理软件包的工具:
           RedHat, CentOS, SUSE:  使用 RPM
           Debian:                使用 dpt
     
           特别注意:
           软件的依赖关系:
             软件A的执行过程中,需要使用软件B,就称为A依赖B, A->B
             循环依赖: A ->B-1.2 -> C -> A
                       A ->B-1.1 -> C-1.5 
       
        2) 前端工具
           能够自动解决的管理软件包之间的依赖关系。
           前端工具,是基于后端工具的,能够自动解决软件包的依赖关系
     
           RedHat, CentOS:  使用yum
           Ubuntu(个人用户常常使用): apt-get
        
         
    补充:
    软件的安装方式:
      1)使用软件的源代码,手动配置,编译,安装
      2)使用软件包(rpm软件包,dpt软件包)
                  
     如果已经有了软件包: apache-2.2.1-el.x86_64.rpm
     就可以直接使用 rpm工具
     # rpm -i apache-2.2.1-el.x86_64.rpm
     安装时,可能提示你还需要安装该软件包的依赖包,而导致安装失败
     
     此时,就应该考虑使用对应的前端工具(yum或者apt-get)
     
    RPM工具
    1)rmp包的命名
       例如:qq-9.5.1-2.el5.i586.rpm
             软件名-主版本号.子版本号.源代码的发行号-rmp包的发行号.硬件平台.rpm
             qq       9        5         1               2.el5     i586
     
            
       软件包的发行号:
         可能包含平行信息。
         2.el5   表示是对于红帽企业版5.x发行,第2次发行
         2.el6            
        
       硬件平台
         i586   Intel586芯片 
         
      例如:
      gcc3.4-3.4.5-alt16.x86_64.rpm
      该命名不规范。
     
    2) rpm工具的基本使用
     
    2.1)安装
    # rpm -i 包名
      安装指定的软件包
     
    # rpm -ivh  包名
      安装指定的软件包
      -v:显示安装的详细过程
      -vv: 显示安装的更加详细的过程
      -h 显示安装的进度(用#表示,一个#表示2%的进度)
     
    2.2) 查询类
    # rpm -q 包名
      查询指定的包是否已经安装
      如果某个软件是通过源码安装的,那么用rpm是查询不到的。
     
    # rpm -qa
      查询当前系统已经安装的所有软件包
     
    # rpm -qi  包名(软件名)
      查询指定软件包(已经安装的)说明信息(描述信息)
     
    # rpm -ql 包名
      查询指定的软件包,所生成的文件
     
    # rpm -qf 路径/文件名
      查询指定的文件是哪个软件包所安装的。
     
    # rpm  -qc 包名
      查询指定的软件包的配置文件
      需要完整的包名。
      例如:
      rpm -qc yum-3.2.29-40.el6.centos.noarch
     
    # rpm -qd 包名
      查询指定的软件包的帮助文件。
       
    # rpm -q --scripts 包名
      查询指定的软件包的脚本文件。
     
    # rpm -qpl 包名
      查询如果安装某个软件包后,将要生成哪些文件(还没有安装)
       
    # rpm -qpi 包名
      查询指定的软件包(还没有安装的)的说明信息。
     
    2.3)升级
    # rpm -Uvh  包名
      如果指定的包已经安装,那么就对这个软件包升级。
      如果还没有安装,那么就安装!
     
    # rpm -Fvh  包名
      如果指定的包已经安装,那么就对这个软件包升级。
      如果还没有安装,那么就什么也不做。
     
    2.4)卸载
    rpm -e 包名
    如果这个软件包,有依赖的软件包,那么将提示相关的依赖包,而拒绝卸载。
    如果这个软件包,没有任何依赖包,才会卸载。
     
    rpm -e --nodeps  包名
    卸载指定的软件包,而不管依赖关系。
     
     
    2.4) 校验
    # rpm -V 包名
    检查指定的软件包是否被非法修改。
     
    2.5)数据库
    rpm  --rebuilddb 
    重建rpm软件管理的数据库
     
    rpm --initdb
    初始化rpm软件管理的数据库
     
    yum软件管理
    1) 介绍:yum是一个后端管理工具,是基于rpm
             能够从指定的服务器自动下载所需要的软件包并安装。
             能够自动处理软件包的依赖关系,而且能自动下载所依赖的软件包,并安装。
        
    2)基本使用
    # yum install httpd
      安装指定的软件包
      安装过程中,会提示你是否确定要安装。
     
    # yum install httpd  -y
      安装指定的软件包
      安装过程中,不再提示确认。
     
    # yum list 
      搜索当前可安装的(不是指已安装的)的所有软件包
     
    # yum list httpd
      从当前的yum仓库(软件源)中,是否有指定软件包
     
    # yum  search http
      和yum list的作用类似,
      只要软件包的名称中包含指定名称,就把结果列出来。
     
    # yum  provides  /bin/ls
      查询指定的文件是哪个软件包安装的。
     
    # yum remove 包名
      卸载指定的软件包,
      注意,将同时卸载所有的依赖软件包
      注意,一般情况下,尽量不要使用该命令。
      可以考虑使用 rpm  -e   包名
                   rpm  -e  --nodeps 包名
      
    # yum update 包名
      更新指定的软件包
     
    # yum grouplist 
      显示当前系统可以安装的所有组包。
       
      补充:组包,包含多个软件包。
     
    # yum groupinfo 组包名
      查询指定的组包的描述信息
     
    # yum groupremove 组包名
      卸载指定的组包
     
    # yum groupupdate 组包名
      更新指定的组包
     
    # yum repolist
      列出当前的所有可以使用的软件库(软件仓库)
     
    # yum repolist all
      列出所有的软件仓库。(包括被禁用的软件仓库)
     
    # yum --enablerepo=软件仓库的ID  install 包名
      从指定的软件仓库中,安装指定的软件包
      注意:软件仓库的ID,就是.repo文件中的模块名
     
    # yum --enablerepo=local  --disablerepo=base,extra,updates  install LNMP
      从local软件仓库中安装,而且不从base,extra,updates这些软件仓库中安装指定的软件包LNMP
      
    # yum clean all
      删除yum的所有缓存。
      使用场合:当改变了yum源改变以后,就应该删除本地的缓存。  
     
      注意:软件包安装完成后,这个软件包将保存在缓存中。(默认情况下,不保存缓存的。)
     
    # yum history
      查看yum的历史记录
     
    创建自己的yum源
    yum服务器端的配置 1) 创建1个目录,用来存放rpm包 # mkdir -p /root/yum 2) 把需要的rpm包存放到该目录 3) 安装createrepo createrepo是专门用户创建软件仓库的工具。 # yum install createrepo -y 4)初始化软件仓库的索引文件 也就是,对/root/yum/中的所有rpm包,建立1个索引文件。 # createrepo -pdo /root/yum /root/yum 对/root/yum下的所有rpm包,建立索引(repodata),而且把这个索引保存在/root/yum目录下。 补充: 以后,如果在/root/yum目录中添加了新的rpm包, 就应该更新这个索引文件(repodata) # createrepo --update /root/yum 5) 让yum服务器提供yum服务 可是使用Apache的web服务 更简单的办法,是使用python的http模块。 python -m SimpleHTTPServer 80 & > /dev/null & 以后台的方式运行python的http模块。 客户端的配置 在客户端配置自己的yum仓库 即在/etc/yum.repos.d/下创建.repo文件。 # vim pzj.repo ---------------------------------- [pzj-file] name=pzj server's file packages baseurl=http://192.168.1.4 enabled=1 gpgcheck=0 --------------------------------- 注意:baseurl支持:http:// ftp:// file://(本地文件系统) 例如:baseurl=file:///root/packages baseurl如果有多个链接,必须用如下格式: baseurl=http://192.168.1.4 http://192.168.2.5 htpp://192.18.1.11 至此,就可以在客户端直接使用. 补充: 临时禁止某些软件仓库 # yum install gcc --enablerepo=pzj-file --disablerepo=base,extra,updates 永久禁止某些软件仓库 修改该软件仓库的enalbed的值。 在相应的.repo文件中修改。 例如:CentOS-Base.repo -------------------------------------------------------- [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 enabled=0 ------------------------------------------------------------- enabled=0表示禁止使用这个软件仓库。 gpgcheck表示是否检查软件包的合法性。 yum的配置文件 /etc/yum.conf 注意,这个文件是对yum的客户端有效 cachedir 表示缓存目录 keepcache 表示是否使用缓存。 =0时,不使用缓存。 =1时,使用缓存,即软件下载并安装后,该软件包保存在缓存目录中。 默认值为0 logfile 日志文件的位置 exactarch 表示是否只安装和自己架构正确匹配的软件包 gpgcheck 是否对软件包进行有效性和安全性检查。 plugins 是否使用插件

      

  • 相关阅读:
    网易云信Duilib开发实践和Windows应用界面开发框架源码开源介绍
    WebRTC 之ICE浅谈
    如何做好 Android 端音视频测试?
    技术详解:实现互动直播全过程
    视频直播技术:最大限度保障流畅性和清晰度
    Python 爬虫之request+beautifulsoup+mysql
    Python之Mysql实战
    Python多线程的效率
    Python 调用Jenkins API自动化发布服务(完整版)
    Python爬虫之request +re
  • 原文地址:https://www.cnblogs.com/The-day-of-the-wind/p/12063779.html
Copyright © 2011-2022 走看看