代码改变世界

Linux软件包管理

2013-09-03 15:23  hduhans  阅读(264)  评论(0)    收藏  举报

  引言:分别介绍了基于Reahat的Linux的软件包管理RPM和YUM(二进制包安装)和基于Debian的Linux软件包管理APT

 

一、二进制软件包安装()

(一) RPM软件包管理。RPM对软件包依赖关系解决的比较糟糕。

1、卸载软件包。

   语法:rpm -e 软件包名

         --nodeps  强行卸载软件包,不管软件包依赖包

   范例:rpm -e sudo   --卸载软件包sudo

2、安装软件包。

   语法:rpm -ivh 软件包全名

   选项:1) --excludedocs   --不安装软件包中的文档文件

      2) --prefix=Path    --将软件包安装到Path指定路径下,如:--prefix=/home/hduhans/programfiles

      3) --test   --只对软件包进行测试,并不实际安装

      4) --replacepkgs   --覆盖安装

      5) --replacefiles  --安装时忽略冲突文件

      6) --nodeps  --忽略软件包对其他包的依赖性,

   范例:1) mkdir /mnt/cdrom

          mount /dev/cdrom /mnt/cdrom   --挂载光盘镜像到文件/mnt/cdrom,挂载后/mnt/cdrom文件夹就可以显示光盘的信息

      cd /mnt/cdrom/CentOS

      rpm -ivh sudo-1.7.2pl-5.el5.X86_64.rpm

3、查询软件包。

   语法:1) rpm -q 软件包名   --查询指定软件包是否安装,例:rpm -q sudo,查询sudo软件包是否安装

      2) rpm -qa   --查询所有已安装的软件包,例:rpm -qa | grep sudo,查询所有已安装的软件包中包含sudo关键字的记录

      3) rpm -qf  文件路径|命令   --查询文件隶属的软件包,例:① rpm -qf /etc/services,查询/etc/services文件隶属的软件包  ② rpm -qf /bin/ls,查询ls命令隶属的软件包

      4) ① rpm -qi 软件包名   --查询系统已安装的某软件包信息,例:rpm -qi sudo,查询已安装的sudo软件包信息

      ② rpm -qip 软件包全名路径    --查询某软件包的详细信息,例:rpm -qip /mnt/cdrom/CentOS/sudo-1.7.2pl-5.el5.X86_64.rpm,查看此软件包的详细信息

      5) ① rpm -ql  软件包名    --查询软件包在系统中安装了哪些文件,例:rpm -ql sudo,查看sudo软件包在系统中安装了哪些文件

      ② rpm -qlp 软件包全名路径    --查询软件包将安装哪些文件至系统,例:rpm -qlp /mnt/cdrom/CentOS/sudo-1.7.2pl-5.el5.X86_64.rpm,查看此软件包将会在系统中安装哪些文件

      6)  rpm -qc 软件包名   --查询软件包配置文件

4、升级软件包。

   语法:rpm -Uvh 新软件包名

5、校验软件包。

   语法:rpm -V 软件包名

   范例:rpm -V sudo   --校验sudo软件包,如无任何提示信息,则说明软件包未经任何修改,提示信息说明如下。

   说明:①S -文件大小被改变 ②5 - 文件的MD5校验值改变,说明文件内容改变 ③T -文件创建或修改时间发生变化  ④M -文件的权限发生变化 ⑤U -文件的所属者被改变 ⑥G -文件的所属组被改变 ⑦D -设备文件改变 ⑧L -连接文件改变

6、提取软件包文件,rpm2cpio命令。

   语法:rpm2cpio 软件包全名路径 | cpio -idv 提取文件名

   范例:rpm2cpio /mnt/cdrom/CentOS/initscripts-8.45.30-2.el5.centos.x86_64.rpm | cpio -idv ./etc/inittab   --从光盘镜像文件中提取/etc/inittab文件到当前目录

注:当不小心删除重要的配置文件时,可通过此命令恢复。

 

(二) YUM软件包管理。优点:1) 自动解决软件包依赖关系 2) 方便的软件包升级。

1、安装软件包。

   语法:yum install 软件包名

        -y  所有提示均自动通过

   范例:yum install sudo   --yum会自动去互联网查找sudo镜像信息,下载,并提示是否安装

2、升级软件包。

   语法:1) yum check-update 软件包名   --检测是否存在新版本可升级的软件包

      2) yum update 软件包名   --升级软件包

3、查询软件包。

   语法:1) yum list    --列出所有软件包信息

      2) yum info 软件包   --列出某个软件包的详细信息,如yum info sudo

4、卸载软件包。

   语法:rpm remove 软件包    

 

二、源代码软件包安装

1、安装软件包。文件夹内含执行文件configure。

   范例:① tar -zxf httpd-2.4.6.tar.gz    --可用wget命令下载文件

      ② cd httpd-2.4.6

      ③ ./configure --prefix=/usr/local/apache

      ④ make   --编译

      ⑤ make install   --安装

 

三、脚本安装。无configure。

    范例:① tar -zxf webmin.1.650.tar.gz   

       ② cd webmin.1.650

       ③ vi README

       ④ ./setup.sh

 

四、APT软件包管理(Debian系列,如Ubuntu)

1、搜索软件包:apt-cache search 

2、软件包信息:apt-cache show

3、安装软件包:apt-get install (reinstall、-f)

4、删除软件包:apt-get remove (autoremove、--purge)

5、更新软件源:apt-get update

6、更新已安装包:apt-get upgrade