程序包管理

   包括:内核管理,进程管理,内存管理,网络协议,驱动程序包管理

    包管理器:打包,包管理(安装,升级,卸载,查询及校验)

        两种包管理  deb ,rpm redhat package manager 包管理

    1.1 程序包的组成部分:

        二进制程序:/bin,/sbin/,/usr/bin,/usr/sbin

        库文件:/lib64,/usr/lib64

        配置文件:/etc/

        帮组文档:manual,info

   1.2 包管理器

        打包:一个单一的归档文件

         安装,卸载,升级

        校验:两个管理,来源的合法性,完整性。

    rpm 包的命令机制

        包名-主版本号.次版本号.修正次数.压缩扩展名  base-4.3.4.tar.gz

        每一个rpm包的名称都由 - 和 . 分成了若干部分。就拿 “abrt-cli-2.0.8-15.el6.centos.i686.rpm” 这个包来解释一下, “abrt-cli” 为包名, “2.0.8” 则为版本信息, “15.el6.centos” 为发布版本号, “i686” 为运行平台。其中运行平台常见的有i386, i586, i686, x86_64 ,需要你注意的是cpu目前是分32位和64位的,i386,i586和i686都为32位平台,x86_64则代表为64位的平台。另外有些rpm包并没有写具体的平台而是noarch,这代表这个rpm包没有硬件平台限制。


    1.3 rpm工具

        rpm是redhat package manager 的缩写。 rpm是一种数据库记录的方式来将你所需要的套件安装到你的linux主机的一套管理程序。也是说,在你的linux中存在一种数据库的存储机制记录着包与包的依赖关系。安装的时候会很快捷。也有缺点:rpm的预先编译包的环境必须跟安装时的包的编译环境是一致的;卸载包时必须先卸载掉所依赖的包;如果依赖的包是系统所需要的就不能卸载。否则造成系统崩溃。rpm 数据库存放路径:/var/lib/rpm.

        

    1.4 如何获取rpm包:

         1:发行版提供的程序包。在光盘中一般在Packages目录中。

         2:Fedora-EPEL 高质量软件源。

        3:项目的官方站点。,如tomcat,svn官方站点。

        4:搜索引擎:http://rpmfind.net

               http://rpm.pbone.net

               http://pkgs.org

    

           5:centos 识别光盘的设备文件: /dev/cdrom 。  

    1.5 基于rpm命令实现程序包管理 :

        安装:

            rpm {i|--install}[install -options] package_file...

                -i

                    -v:显示安装的详细过程。

                    -h:显示安装的进度。

                --nodeps:忽略依赖关系。

                --replacepkgs:重装程序包。

                --force:强制安装。

        由于把光盘文件挂载到了/mnt/目录下挂载命令是 mount /dev/cdrom   /mnt/

    centos程序包管理

        升级:

            rpm  {-U| --upgrade}[install - options] package..

                -Uvh:如果有旧的程序包,则升级;如果没有则安装。

                -Fvh:如果有旧的程序包,则升级;如果没有就不安装。

                    --nodeps:忽略依赖关系。rpm -ivh 包 --nodeps -一般放在包后面

                --oldpackage:降级,降为旧版本。

        卸载:

            rpm  {-e |--erase}[--nodeps][--noscripts][--notriggers][--test] 

package_name

            

       查询:rpm {-q|--query}[select-options][query-options]

            查询选项

                -qa:查询本系统已经安装的所有程序包;

                -qf:/path/to/somefile 查询此处生成的文件由那个程序包文件安装生成;

                -qc:查询指定程序包安装生成的配置文件。

                -qd:查询指定的程序包安装生成的文档;

                -qi:查询指定的程序包的先关信息;

                -ql:查询程序安装生成的所有文件的列表;

                -q --scripts:查询程序包的相关的脚本;

                    preinstall:安装前的脚本

                    postinstall:安装后的脚本

                    preuninstall:卸载前的脚本;

                    postuninstall:卸载后的脚本;

                -p:查询针对是未安装的程序包文件;

centos程序包管理

   centos程序包管理     

        包校验

            rpm {-V|--verify}[select--options][verfy--options]

            来源的合法性验证:非对称加密;完整性验证:单向加密;导入秘钥:rpm --import /path/key_file

            

       YUM工具管理包 yellow updateer modified

        1.1yum安装,主要解决的是包的依赖关系安装,分析包的依赖性,然后将这些记录整成列表放在yum服务端,然后本地软件更新就到表中匹配关系并下载进行安装。

           列表信息保存在yum客服端/var/cache/yum中,每次yum启动都会通过校验码与yum 服务端请求同步信息。


          1.2yum repositories yum 仓库服务的存储的三种方式

                      ftp://hostname/path/repo(ftp仓库)

                   http://hostname/path/repo(网上仓库)

                   file:///path/repo (本地仓库)

          1.3yum配置文件:

            /etc/yum.conf:定义全局配置,对所有仓库都适用。

            /etc/yum.repos.d/*.repo:一个文件通常用于一个或者一组功能相近或相关的仓库

         1.4定义一个仓库的指向:

            [repo_id]

            name=

            baseurl=

            #mirrorlist=scheme://hostname/path/....mirror

            enabled={1|0}

            gpgkey=

            cost= 

        1.5定义仓库指向可用的变量:

            $releaserver:引用当前系统的主版本号;

            $basearch:当前系统的基本架构;

                i386,i486,i586, i686

            http://mirrors.magedu.com/CentOS/$releasever/os/$basearch 

centos程序包管理      [base]:代表的是仓库名,name:代表仓库的备注吧。mirrorlist:列出可用使用镜像站点可用备注。

baseurl:仓库指向的镜像网站。enable=1:代表仓库启动,0关闭;gpgcheck=1:是否查阅rpm文件内的数字证书;gpgkey:数字证书公钥所在;cost:代表

        

        1.6yum命令 yum[options[command][package....]

            命令:    

                安装:install    

                卸载:remove

                升级:update

                查询:

        列出所有要更新的软件清单:yum check-update。

        安装所有更新软件 yum update。

        仅安装指定软件:yum install packages_name。

        仅更新指定的软件 yum update package_name。

        查询

        search KEYWORD

        list all|installed|availiable

        provides /PATH/TO/SOMEFILE: 查询指定文件由哪个包安装生成

        重新安装:yum reinstall 包 重新安装httpd : yum reinstall httpd -y

        降级:downgrade ;yum downgrade httpd -y 降级

        清理缓存:clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

        生动生成缓存:makecache。

        在rpm安装中需要指定完整的包,在yum只要指定包名即可。


        1.7 进行mysql安装

[[email protected] base]# yum install mysql
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirrors.sina.cn
 * extras: mirrors.skyshe.cn
 * updates: mirrors.sina.cn
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql.x86_64 0:5.1.73-5.el6_6 will be installed
--> Processing Dependency: mysql-libs = 5.1.73-5.el6_6 for package: mysql-5.1.73-5.el6_6.x86_64
--> Running transaction check
---> Package mysql-libs.x86_64 0:5.1.71-1.el6 will be updated
---> Package mysql-libs.x86_64 0:5.1.73-5.el6_6 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================================
 Package                 Arch                Version                        Repository         Size
====================================================================================================
Installing:
 mysql                   x86_64              5.1.73-5.el6_6                 base              894 k
Updating for dependencies:
 mysql-libs              x86_64              5.1.73-5.el6_6                 base              1.2 M
            

 1.8更新mysql包

centos程序包管理

#卸载mysql
[[email protected] base]# yum remove mysql
Loaded plugins: fastestmirror, security
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package mysql.x86_64 0:5.1.73-5.el6_6 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================================
 Package             Arch                 Version                         Repository           Size
====================================================================================================
Removing:
 mysql               x86_64               5.1.73-5.el6_6                  @base               2.4 M
Transaction Summary
====================================================================================================
Remove        1 Package(s)
Installed size: 2.4 M
Is this ok [y/N]: y              #命令后面加一个 -y 就一切都是确定安装

        1.9查询: info search  keyword

            yum list:列出所有可用安装或者更新的包。

            yum list updates 列出资源中可以更新的rpm包。

            yum list install 列出可以安装的包。

            yum search 搜索匹配特定字符的rpm包。

            yum provides /etc/fstab 查看特定文件属于那个包。

 

[[email protected] ~]# yum search xz      搜索特定的包
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * extras: mirrors.skyshe.cn
 * updates: centos.ustc.edu.cn
============================================== N/S Matched: xz ===============================================
xz.x86_64 : LZMA compression utilities
xz-devel.i686 : Devel libraries & headers for liblzma
xz-devel.x86_64 : Devel libraries & headers for liblzma
xz-libs.x86_64 : Libraries for decoding LZMA compression
xz-libs.i686 : Libraries for decoding LZMA compression
xz-lzma-compat.x86_64 : Older LZMA format compatibility binaries
  Name and summary matches only, use "search all" for everything.

                             


       2.1包组:

        grouplist

        groupinfo "GRP_NAME"

        groupinstall "GRP_NAME"

        groupremove "GRP_NAME"

    

       2.2仓库:

        repolist [all|enabled|disabled]

        repoinfo [all|enabled|disabled]


       2.2创建一个本地光盘仓库

        1:第一挂载光盘到某个文件夹

            mount  /dev/cdrom  /mnt/

        2:在/etc/yum.repos.d/创建一个扩展名为repo的文件,并进行仓库的属性编辑

            

      

  [cdrom-test]
        name=centos-cdrom-repo
        baseurl=file:///mnt/   光盘挂载的位置
        enable=1  启动仓库
        gpgcheck=1
        gpgkey=file:///mnt/RPM-GPG-KEY-Centos-6  查阅文件证书,在挂载目录下的GPG-KEY下。

        3:编写完仓库属性文件后 清除一下仓库缓存文件 

            yum clean all

        4:yum repolist all 显示所有的仓库文件

     centos程序包管理 



        2.3 创建一个阿里云仓库

            在/etc/yum.repos.d/ 创建阿里云仓库  然后清除缓存 

centos程序包管理

centos程序包管理

        



              

        

 

        

            


    


转载于:https://blog.51cto.com/shunzi5160/1695167

相关文章: