以vsftpd为例,讨论linux下面如何管理软件包。

    xiaoxiao2021-12-01  19

    [html]  view plain  copy  print ? 以vsftpd为例,讨论linux下面如何管理软件包,原文地址 http://my.chinaunix.net/space.php?uid=14762370&do=blog&id=100681             Linux下面安装软件包的介绍      在linux系统中管理软件包有两种方法,第一种就是利用yum的方式来管理软件包。第二种就是利用rpm的方法来管理软件包。Yum与rpm的区别在于rpm在安装软件包的时候解决不了软件包依赖性关系,而yum在安装软件包的时候很好的解决了软件包的依赖性关系,很强大。             下面首先来讲解利用yum来管理软件包。      Yum介绍      Yum全称为 Yellow dog Updater, Modified(软件包管理器)      主要功能是更方便的添加/删除/更新RPM包, yum很好的解决了linux下面安装软件包的依赖性关系。很强大哦! 他能便于管理大量系统的更新问题  ,能同时设置多个资源库(Repository),而且使用起来十分的方便。             如果想使用yum的方式来安装软件包,那么必须配置yum仓库。      关于yum仓库的配置方法可以参考:      http://blog.chinaunix.net/u3/111899/showart_2197778.html             1.      利用yum的方式来安装软件包      #yum  -y  install   vsftpd      -y            不用交互式      Install       安装      Vsftpd     需要安装软件包(这个是软件包,而不是软件包的rpm文件名)      [root@localhost ~]#       [root@localhost ~]# yum -y install vsftpd      Loaded plugins: rhnplugin, security      This system is not registered with RHN.      RHN support will be disabled.      Cluster                                                       | 1.3 kB     00:00           Cluster/primary                                          | 6.5 kB     00:00           Cluster                                                                   32/32      ClusterStorage                                           | 1.3 kB     00:00           ClusterStorage/primary                              | 8.8 kB     00:00           ClusterStorage                                                            39/39      Server                                                       | 1.3 kB     00:00           Server/primary                                          | 732 kB     00:00           Server                                                                2292/2292      VT                                                           | 1.3 kB     00:00           VT/primary                                               | 9.0 kB     00:00           VT                                                                        36/36      Setting up Install Process      Resolving Dependencies      --> Running transaction check      ---> Package vsftpd.i386 0:2.0.5-16.el5 set to be updated      Cluster/filelists                                          | 110 kB     00:00           ClusterStorage/filelists                              |  11 kB     00:00           Server/filelists                                          | 2.3 MB     00:00           VT/filelists                                               |  26 kB     00:00           --> Finished Dependency Resolution             Dependencies Resolved             ================================================================================       Package          Arch           Version                 Repository        Size      ================================================================================      Installing:       vsftpd           i386           2.0.5-16.el5            Server           140 k             Transaction Summary      ================================================================================      Install           1 Package(s)               Update        0 Package(s)               Remove       0 Package(s)                      Total download size: 140 k      Downloading Packages:      vsftpd-2.0.5-16.el5.i386.rpm                             | 140 kB     00:00           Running rpm_check_debug      Running Transaction Test      Finished Transaction Test      Transaction Test Succeeded      Running Transaction        Installing     : vsftpd                                                   1/1              Installed:        vsftpd.i386 0:2.0.5-16.el5                                                                 Complete!      [root@localhost ~]#      这样我们就利用yum的方式安装成功了ftp服务。             2.      利用yum的方式来安装本地软件包      #yum -y install dovecot-1.0.7-7.el5.i386.rpm      [root@localhost ~]#       [root@localhost ~]# ls      anaconda-ks.cfg  dovecot-1.0.7-7.el5.i386.rpm  install.log         server.repo      Desktop          grub.conf                     install.log.syslog      [root@localhost ~]# yum -y install dovecot-1.0.7-7.el5.i386.rpm       Loaded plugins: rhnplugin, security      This system is not registered with RHN.      RHN support will be disabled.      Setting up Install Process      Examining dovecot-1.0.7-7.el5.i386.rpm: dovecot-1.0.7-7.el5.i386      Marking dovecot-1.0.7-7.el5.i386.rpm to be installed      Resolving Dependencies      --> Running transaction check      ---> Package dovecot.i386 0:1.0.7-7.el5 set to be updated      --> Processing Dependency: libmysqlclient.so.15 for package: dovecot      --> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15) for package: dovecot      --> Processing Dependency: libpq.so.4 for package: dovecot      --> Running transaction check      ---> Package mysql.i386 0:5.0.77-3.el5 set to be updated      --> Processing Dependency: perl(DBI) for package: mysql      ---> Package postgresql-libs.i386 0:8.1.11-1.el5_1.1 set to be updated      --> Running transaction check      ---> Package perl-DBI.i386 0:1.52-2.el5 set to be updated      --> Finished Dependency Resolution             Dependencies Resolved             ================================================================================       Package           Arch   Version             Repository                   Size      ================================================================================      Installing:         dovecot                i386   1.0.7-7.el5         /dovecot-1.0.7-7.el5.i386   3.6 M      Installing for dependencies:       mysql                    i386    5.0.77-3.el5         Server                             4.8 M       perl-DBI               i386    1.52-2.el5            Server                             605 k       postgresql-libs       i386   8.1.11-1.el5_1.1   Server                             196 k             Transaction Summary      ================================================================================      Install            4 Package(s)               Update         0 Package(s)               Remove        0 Package(s)                      Total size: 9.1 M      Total download size: 5.5 M      Downloading Packages:      (1/3): mysql-5.0.77-3.el5.i386.rpm                                 | 4.8 MB     00:00           (2/3): postgresql-libs-8.1.11-1.el5_1.1.i386.rpm             | 196 kB     00:00           (3/3): perl-DBI-1.52-2.el5.i386.rpm                               | 605 kB     00:00           --------------------------------------------------------------------------------      Total                                                               7.3 MB/s | 5.5 MB     00:00           Running rpm_check_debug      Running Transaction Test      Finished Transaction Test      Transaction Test Succeeded      Running Transaction        Installing     : perl-DBI                                                  1/4         Installing     : mysql                                                       2/4         Installing     : postgresql-libs                                          3/4         Installing     : dovecot                                                    4/4              Installed:        dovecot.i386 0:1.0.7-7.el5                                                                 Dependency Installed:        mysql.i386 0:5.0.77-3.el5                perl-DBI.i386 0:1.52-2.el5              postgresql-libs.i386 0:8.1.11-1.el5_1.1                   Complete!      [root@localhost ~]#      安装本地软件包的意义在于如果我们从互联网上面下载了一个rpm软件包,这个软件包用rpm方式安装可能会提示有依赖性关系,这个时候可以使用本地安装的方式来安装,因为我们的yum仓库有可能会解决这个包的依赖性关系。      但是这个后面接的是一个软件包rpm文件名,而不是软件包。             3.      利用yum使用组的方式来安装软件包      我们如何去查询那些组是可以安装的呢,      使用下面这条命令      #yum  grouplist      [root@localhost ~]#       [root@localhost ~]# yum grouplist      Loaded plugins: rhnplugin, security      This system is not registered with RHN.      RHN support will be disabled.      Setting up Group Process      Cluster/group                                                 | 101 kB     00:00           ClusterStorage/group                                     | 105 kB     00:00           Server/group                                                 | 1.0 MB     00:00           VT/group                                                      | 103 kB     00:00           Installed Groups:         Administration Tools         Editors         FTP Server         GNOME Desktop Environment         Graphical Internet         Graphics         Legacy Network Server         Mail Server         MySQL Database         Network Servers         Office/Productivity         Printing Support         Server Configuration Tools         Sound and Video         System Tools         Text-based Internet         X Window System      Available Groups:         Authoring and Publishing         Cluster Storage         Clustering         DNS Name Server         Development Libraries         Development Tools         Engineering and Scientific         GNOME Software Development         Games and Entertainment         Java Development         KDE (K Desktop Environment)         KDE Software Development         Legacy Software Development         Legacy Software Support         News Server         OpenFabrics Enterprise Distribution         PostgreSQL Database         Virtualization         Web Server         Windows File Server         X Software Development      Done      [root@localhost ~]#      在这个命令里面显示的软件包都是可以使用组的方式来安装的。      下面我们利用组的方式来安装。      # yum -y groupinstall "DNS Name Server"      [root@localhost ~]#       [root@localhost ~]# yum -y groupinstall "DNS Name Server"      Loaded plugins: rhnplugin, security      This system is not registered with RHN.      RHN support will be disabled.      Setting up Group Process      Resolving Dependencies      --> Running transaction check      ---> Package bind.i386 30:9.3.6-4.P1.el5 set to be updated      ---> Package bind-chroot.i386 30:9.3.6-4.P1.el5 set to be updated      --> Finished Dependency Resolution             Dependencies Resolved             ================================================================================       Package            Arch        Version                     Repository     Size      ================================================================================      Installing:       bind                   i386        30:9.3.6-4.P1.el5           Server        978 k       bind-chroot        i386        30:9.3.6-4.P1.el5           Server         44 k             Transaction Summary      ================================================================================      Install           2 Package(s)               Update        0 Package(s)               Remove       0 Package(s)                      Total download size: 1.0 M      Downloading Packages:      (1/2): bind-9.3.6-4.P1.el5.i386.rpm                          | 978 kB     00:00           (2/2): bind-chroot-9.3.6-4.P1.el5.i386.rpm               |  44 kB      00:00           --------------------------------------------------------------------------------      Total                                                         2.9 MB/s | 1.0 MB     00:00           Running rpm_check_debug      Running Transaction Test      Finished Transaction Test      Transaction Test Succeeded      Running Transaction        Installing     : bind                                                         1/2         Installing     : bind-chroot                                              2/2              Installed:        bind.i386 30:9.3.6-4.P1.el5         bind-chroot.i386 30:9.3.6-4.P1.el5                     Complete!      [root@localhost ~]#      我们知道安装DNS服务需要安装三个包,而我们利用组的方式来安装软件包,系统会自动的安装所有DNS服务需要的软件包,很方便。             4.      利用yum的方式来卸载软件包      #yum  -y  remove  vsftpd      [root@localhost ~]#       [root@localhost ~]# yum -y remove vsftpd      Loaded plugins: rhnplugin, security      This system is not registered with RHN.      RHN support will be disabled.      Setting up Remove Process      Resolving Dependencies      --> Running transaction check      ---> Package vsftpd.i386 0:2.0.5-16.el5 set to be erased      --> Finished Dependency Resolution             Dependencies Resolved             ================================================================================       Package         Arch          Version                 Repository          Size      ================================================================================      Removing:       vsftpd            i386          2.0.5-16.el5            installed          285 k             Transaction Summary      ================================================================================      Install           0 Package(s)               Update        0 Package(s)               Remove       1 Package(s)                      Downloading Packages:      Running rpm_check_debug      Running Transaction Test      Finished Transaction Test      Transaction Test Succeeded      Running Transaction        Erasing        : vsftpd                                                   1/1              Removed:        vsftpd.i386 0:2.0.5-16.el5                                                                 Complete!      [root@localhost ~]#      卸载的时候也是接软件包,而不是软件包的rpm文件名。             5.      利用yum的方式来更新软件包      #yum  update      [root@localhost ~]#       [root@localhost ~]# yum update      Loaded plugins: rhnplugin, security      This system is not registered with RHN.      RHN support will be disabled.      Skipping security plugin, no data      Setting up Update Process      No Packages marked for Update      [root@localhost ~]#      这个是更新全部的软件包      #yum  update  vsftpd      [root@localhost ~]#       [root@localhost ~]# yum update vsftpd      Loaded plugins: rhnplugin, security      This system is not registered with RHN.      RHN support will be disabled.      Skipping security plugin, no data      Setting up Update Process      No Packages marked for Update      [root@localhost ~]#      这个更新指定的软件包(也是接软件包)      #yum  check-update      [root@localhost ~]#       [root@localhost ~]# yum check-update      Loaded plugins: rhnplugin, security      This system is not registered with RHN.      RHN support will be disabled.      Skipping security plugin, no data      [root@localhost ~]#      这个检查可更新的软件包。             6.      利用yum来查询软件包      #yum  search  vsftpd      [root@localhost ~]#       [root@localhost ~]# yum search vsftpd      Loaded plugins: rhnplugin, security      This system is not registered with RHN.      RHN support will be disabled.      =============================== Matched: vsftpd ================================      vsftpd.i386 : vsftpd - Very Secure Ftp Daemon      [root@localhost ~]#      这个是查询指定的软件包      #yum  list  all      列出系统中所有的软件,包括安装的和未安装的。      #yum  list  all  | grep vsftpd      [root@localhost ~]#       [root@localhost ~]# yum list all |grep vsftpd      This system is not registered with RHN.      RHN support will be disabled.      vsftpd.i386                             2.0.5-16.el5              installed           [root@localhost ~]#      通过查询,可以看到,vsftpd已经安装了。这个命令也很好用。      #yum list available       查询系统中没有安装的软件包      #yum list installed      查询系统中安装的软件包      #yum info vsftpd      [root@localhost ~]#       [root@localhost ~]# yum info vsftpd      Loaded plugins: rhnplugin, security      This system is not registered with RHN.      RHN support will be disabled.      Installed Packages      Name          : vsftpd      Arch            : i386      Version        : 2.0.5      Release       : 16.el5      Size             : 285 k      Repo          : installed      Summary    : vsftpd - Very Secure Ftp Daemon      URL           : http://vsftpd.beasts.org/      License       : GPL      Description: vsftpd is a Very Secure FTP daemon. It was written completely from                        : scratch.             [root@localhost ~]#      查询软件包的详细信息。      #yum whatprovides /etc/inittab      [root@localhost ~]#       [root@localhost ~]# yum whatprovides /etc/inittab       Loaded plugins: rhnplugin, security      This system is not registered with RHN.      RHN support will be disabled.      initscripts-8.45.30-2.el5.i386 : The inittab file and the /etc/init.d scripts.      Repo        : Server      Matched from:      Filename    : /etc/inittab                           initscripts-8.45.30-2.el5.i386 : The inittab file and the /etc/init.d scripts.      Repo        : installed      Matched from:      Other       : Provides-match: /etc/inittab                           [root@localhost ~]#      这个是查询某个文件是属于那个包的。      #yum clean all       清除缓存信息      Yum的使用方法到这里就基本完成了。             下面首先讲解利用rpm来管理软件包。      Rpm介绍      Rpm的全称为RedHat package manager(红帽软件包管理器),虽然rpm的方式并不可以解决软件包的依赖性关系,但是rpm的查询方式也是非常的强大的。             1.      利用rpm的方式来安装软件包      #rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm      [root@localhost ~]#       [root@localhost ~]# ls | grep vsftpd-2.0.5-16.el5.i386.rpm       vsftpd-2.0.5-16.el5.i386.rpm      [root@localhost ~]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm       Preparing...  ########################################### [100%]      1:vsftpd       ########################################### [100%]      [root@localhost ~]#      -v  h    输出选项      利用rpm安装软件包一定是接软件包的rpm文件名。      #rpm -Fvh vsftpd-2.0.5-16.el5.i386.rpm      #rpm -Uvh vsftpd-2.0.5-16.el5.i386.rpm      这两条命令的区别在于      -Fvh    原来安装了软件包就更新,没有安装就不管。只更新。      -Uvh   原来安装了软件包就更新,没有安装就自动安装。             2.      利用rpm的方法来卸载软件包      #rpm  -evh  vsftpd      [root@localhost ~]#       [root@localhost ~]# rpm -e vsftpd      [root@localhost ~]#      用rpm卸载软件包的时候要注意后面只可以接软件包。             3.      利用rpm重新安装软件包      # rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm -- replacepkgs      [root@localhost ~]#       [root@localhost ~]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm --replacepkgs       Preparing...  ########################################### [100%]      1:vsftpd       ########################################### [100%]      [root@localhost ~]#      # rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm -- force      这两条命令的作用都是一样的,都是重新安装软件包,它们的区别在于—replacepkgs在系统正常运行的时候可以使用这个,但是在修复模式下面只可以使用—force。             在利用rpm安装软件包的时候,可以使用url的方式来安装软件包。      #rpm –ivh ftp://192.168.0.254/pub/Server/vsftpd-2.0.5-16.el5.i386.rpm             4.      利用rpm来查询软件包      #rpm  -qa       查询系统中所有已经安装的软件包      #rpm  -qa  | grep  vsftpd      [root@localhost ~]#       [root@localhost ~]# rpm -qa | grep vsftpd      vsftpd-2.0.5-16.el5      [root@localhost ~]#      查询vsftpd这个软件包有没有安装      #rpm  -q  vsftpd      查询vsftpd这个软件包有没有安装,和上面一样。      #rpm  -qf  /etc/inittab      [root@localhost ~]#       [root@localhost ~]# rpm -qf /etc/inittab       initscripts-8.45.30-2.el5      [root@localhost ~]#      查询文件是属于那个软件包的。      # rpm –qpi  dovecot-1.0.7-7.el5.i386.rpm      [root@localhost ~]#       [root@localhost ~]# rpm -qpi dovecot-1.0.7-7.el5.i386.rpm       Name        : dovecot                       Relocations: (not relocatable)      Version     : 1.0.7                            Vendor: Red Hat, Inc.      Release     : 7.el5                            Build Date: Tue 25 Nov 2008 12:47:16 AM CST      Install Date: (not installed)               Build Host: hs20-bc1-2.build.redhat.com      Group       : System Environment/Daemons    Source RPM: dovecot-1.0.7-7.el5.src.rpm      Size           : 3730313                     License: LGPL      Signature   : DSA/SHA1, Wed 10 Dec 2008 08:42:34 PM CST, Key ID 5326810137017186      Packager   : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>      URL         : http://www.dovecot.org/      Summary  : Dovecot Secure imap server      Description :      Dovecot is an IMAP server for Linux/UNIX-like systems, written with security      primarily in mind.  It also contains a small POP3 server.  It supports mail      in either of maildir or mbox formats.      [root@localhost ~]#      查询一个没有安装软件包的信息。      #rpm  -ql  vsftpd      查询vsftpd这个服务产生了那些文件。      #rpm -ivh --nodeps dovecot-1.0.7-7.el5.i386.rpm      去掉软件包的依赖性关系,但是前提是你已经知道了去掉依赖性关系后的软件包,你的服务也没有问题。             5.      rpm的校验      #rpm  -V  vsftpd      校验rpm软件包是否有问题。      #rpm  -Vp vsftpd-2.0.5-16.el5.i386.rpm      和上面一样,也是校验rpm软件包是否有问题。      #rpm  -Va        校验所有的rpm软件包。      # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release      利用rpm第一次安装软件包的时候必须导入这个gpg-key。             6.      利用rpm来升级内核      #rpm -ivh kernel-PAE-2.6.18-164.el5.i686.rpm      [root@localhost ~]#       [root@localhost ~]# ls | grep kernel      kernel-PAE-2.6.18-164.el5.i686.rpm      [root@localhost ~]# rpm -ivh kernel-PAE-2.6.18-164.el5.i686.rpm       Preparing...      ########################################## [100%]      1:kernel-PAE ########################################### [100%]      [root@localhost ~]#       这样我们的内核就安装成功了。      安装成功内核以后,我们可以去/boot/grub/grub.conf文件中定义从新内核启动。             在linux下面软件包管理讨论就到这里了。  
    转载请注明原文地址: https://ju.6miu.com/read-679264.html

    最新回复(0)