显示标签为“软件管理器”的博文。显示所有博文
显示标签为“软件管理器”的博文。显示所有博文

2014年4月21日星期一

Linux 下的软件管家 YUM

    yum 是透过分析 RPM 的标头资料后, 根据各软件的相关性制作出属性相依时的解决方案,然后可以自动处理软件的依赖属性问题,以解决软件安装或移除与升级的问题。

    举个形象的例子:你要安装 NetBeans 集成开发环境,你首先要 rpm 命令先安装 JDK ,然后才能够成功安装 NetBeans 。如果用 YUM 命令,系统会自动先帮你安装 JDK,再帮你安装 NetBeans 。

    注释:关于 RPM机制 参考这儿:http://woqilin.blogspot.com/2014/02/linux.html

    简单来说,它相当于360软件管家、腾讯电脑管家。不同的是,YUM 是通过命令行来管理的。

利用 yum 进行查询


[root@www ~]# yum [option] [查询工作项目] [相关参数]
选项与参数:
[option]:主要的选项,包括有:
  -y :当 yum 要等待使用者输入时,这个选项可以自动提供 yes 的回应;
  --installroot=/some/path :将该软件安装在 /some/path 而不使用预设路径
[查询工作项目] [相关参数]:这方面的参数有:
  search  :搜寻某个软件名称或者是描述 (description) 的重要关键字;
  list    :列出目前 yum 所管理的所有的软件名称与版本,有点类似 rpm -qa;
  info    :同上,不过有点类似 rpm -qai 的执行结果;
  provides:从文件去搜寻软件!类似 rpm -qf 的功能!

范例一:搜寻磁碟阵列 (raid) 相关的软件有哪些?
[root@www ~]# yum search raid
....(前面省略)....
mdadm.i386 : mdadm controls Linux md devices (software RAID arrays)
lvm2.i386 : Userland logical volume management tools
....(后面省略)....
# 在冒号 (:)  左边的是软件名称,右边的则是在 RPM 内的 name 设定 (软件名)
# 瞧!上面的结果,这不就是与 RAID 有关的软件吗?如果想了解 mdadm 的软件内容呢?

范例二:找出 mdadm 这个软件的功能为何
[root@www ~]# yum info mdadm
Installed Packages      <==这说明该软件是已经安装的了
Name   : mdadm          <==这个软件的名称
Arch   : i386           <==这个软件的编译架构
Version: 2.6.4          <==此软件的版本
Release: 1.el5          <==释出的版本
Size   : 1.7 M          <==此软件的文件总容量
Repo   : installed      <==容器回报说已安装的
Summary: mdadm controls Linux md devices (software RAID arrays)
Description:            <==看到否?这就是 rpm -qi 
mdadm is used to create, manage, and monitor Linux MD (software RAID)
devices.  As such, it provides similar functionality to the raidtools
package.  However, mdadm is a single program, and it can perform
almost all functions without a configuration file, though a configuration
file can be used to help with some common tasks.


范例三:列出 yum 服务器上面提供的所有软件名称
[root@www ~]# yum list
Installed Packages <==已安装软件
Deployment_Guide-en-US.noarch            5.2-9.el5.centos       installed
Deployment_Guide-zh-CN.noarch            5.2-9.el5.centos       installed
Deployment_Guide-zh-TW.noarch            5.2-9.el5.centos       installed
....(中间省略)....
Available Packages <==还可以安装的其他软件
Cluster_Administration-as-IN.noarch      5.2-1.el5.centos       base
Cluster_Administration-bn-IN.noarch      5.2-1.el5.centos       base
....(底下省略)....
# 上面提供的意义为:『 软件名称   版本   在那个容器内 』

范例四:列出目前服务器上可供本机进行升级的软件有哪些?
[root@www ~]# yum list updates  
Updated Packages
Deployment_Guide-en-US.noarch            5.2-11.el5.centos      base
Deployment_Guide-zh-CN.noarch            5.2-11.el5.centos      base
Deployment_Guide-zh-TW.noarch            5.2-11.el5.centos      base
....(底下省略)....
# 上面就列出在那个容器内可以提供升级的软件与版本!

范例五:列出提供 passwd 这个文件的软件有哪些
[root@www ~]# yum provides passwd
passwd.i386 : The passwd utility for setting/changing passwords using PAM
passwd.i386 : The passwd utility for setting/changing passwords using PAM
# 找到!就是上面的这个软件提供了 passwd 这个程序!


上一篇:Linux 的软件管理器

2014年2月14日星期五

Linux 的软件管理器

    Linux 有类似 Windows 控制面板下面的“添加或删除程序”软件管理器。在 Linux 上面至少就有两种常见的这方面的软件管理器,分别是 Red Hat 的 RPM 与 Debian 的 dpkg 。

dpkg

    这个机制最早是由Debian Linux 社群所开发出来的,透过dpkg 的机制, Debian 提供的软体就能够简单的安装起来,同时还能提供安装后的软体资讯,实在非常不错。 只要是衍生于Debian 的其他 Linux distributions 大多使用dpkg 这个机制来管理软体的, 包括B2D, Ubuntu 等等。

RPM 

   这个机制最早是由Red Hat 这家公司开发出来的,后来实在很好用,因此很多distributions 就使用这个机制来作为软体安装的管理方式。 包括Fedora, CentOS, SuSE 等知名的开发商都是用它。



distribution 代表 软件管理机制 使用命令 在线升级机制(命令)
Red Hat/Fedora RPM rpm, rpmbuild YUM (yum)
Debian/Ubuntu DPKG dpkg APT (apt-get)

下面我们来谈谈软件管理机制 RPM ,在线升级的方式为 yum 的相关说明。

RPM 与 SRPM

    RPM 全名是『 RedHat Package Manager 』简称则为 RPM 。顾名思义,当初这个软体管理的机制是由 Red Hat 这家公司发展出来的。 RPM 是一种以数据库记录的方式来将你所需要的软件安装到你的 Linux 系统的一套管理机制。

优点:


  • 由于已经编译完成并且打包完毕,所以软体传输与安装上很方便 (不需要再重新编译);
  • 由于软体的资讯都已经记录在 Linux 主机的资料库上,很方便查询、升级与卸载。


劣势:


  • 软件安装的环境必须与打包时的环境需求一致或相当;
  • 需要满足软件的依赖属性需求;
  • 卸载时需要特别小心,最底层的软件不可先移除,否则可能造成整个系统的问题!


    SRPM 是什么呢?顾名思义,它是 Source RPM 的意思,也就是这个 RPM 文件里面含有源代码。SRPM 所提供的软件内容并没有经过编译。安装该软件时必须要:


  • 先将该软件以 RPM 管理的方式编译,此时 SRPM 会被编译成为 RPM 文件;
  • 然后将编译完成的 RPM 文件安装到 Linux 系统当中。



文件格式文件名格式直接安装与否內含程序类型可否修改参数并编译
RPMxxx.rpm已编译不可
SRPMxxx.src.rpm不可未编译的源代码


下一篇:RPM 软件管理程序命令详解