加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux软件管理之源代码以及RPM软件包管理与YUM软件包管理

发布时间:2022-11-08 12:48:11 所属栏目:Linux 来源:
导读:  在Linux系统下,对于软件包的管理有多种机制,有源代码方式、RPM软件包管理方式以及YUM软件管理方式

  一、源代码形式

  首先我们先来看一下源代码的方式。我们知道,在开源的环境下,大多数的开源软
  在Linux系统下,对于软件包的管理有多种机制,有源代码方式、RPM软件包管理方式以及YUM软件管理方式
 
  一、源代码形式
 
  首先我们先来看一下源代码的方式。我们知道,在开源的环境下,大多数的开源软件都是以源代码的形式来发布,通常将源代码打包成tar.gz的归档压缩文件发布到网上供我们下载使用。但是我们下载下来的源代码方式我们还不能够直接使用,不像在windows系统上直接下载下来可执行的二进制文件,我们需要将下载好的源码编译成可执行的二进制文件才能运行使用,源代码形式安装流程一般如下:
 
  ①./configure检查编译环境、相关库文件以及配置参数并生成makefile
 
  ②make将源代码编译成可执行的二进制文件
 
  ③make install安装编译好的可执行文件
 
  基本上所有以源代码形式发布的软件都是按照以上流程来进行安装,大家可能觉得其实步骤就这三个,安装过程非常简单!其实不然,通常以源代码形式发布的软件,在对其进行①、②步操作时往往会出很多很多的问题,比如说编译过程中缺少所需的库文件,或者说编译源码时又需要依赖A文件,编译A文件时可能又需要用到B文件,这样我们需要花大量时间去找这些依赖的问题,同时如果一个软件特别大的话,我们在将其编译过程中要等待非常久的时间。所以说其实源代码形式的安装软件并不是我们想象的那么简单,但是为什么源代码形式的软件管理还一直存在呢?必然也有其优点,因为我们的源码都要通过编译成可执行的二进制文件才行,所以说它适用于各种操作系统平台,我只需要在各个操作系统平台上对其源码进行编译即可运行起来。
 
  总结一下:
 
  源代码形式的缺点:操作复杂、编译时间长、极易出现错误
 
  源代码形式的优点:适用于所有的操作系统、可定制
 
  二、RPM软件包管理
 
  因为源代码方式安装软件终究还是比较麻烦,所以说现在出现了许多代替源码方式安装的软件管理机制。RPM就是其中一个,RPM(redhat Package Manager)是为了方便软件管理使用所开发的一套开源软件格式,它的设计目标有以下几个:
 
  ①使用简单通过rpm命令就可以完成rpm软件的安装
 
  ②以单一软件包格式发布(.rpm文件)我们可以看到rpm软件包都只有一个以.rpm的文件(rpm软件包管理机制要求软件包必须以.rpm结尾)
 
  ③可升级rpm软件包是可以升级的,比如说我下载好了一个新版本的rpm软件,我们只需要通过rpm -u命令即可升级
 
  ④追踪依赖关系rpm软件包管理机制可以追踪软件之间的依赖关系linux软件源,这样在安装时就会非常的方便
 
  ⑤保存软件基本信息
 
  ⑥软件验证功能
 
  ⑦支持多平台支持多平台并不是说一个rpm软件可以在多个操作系统平台上运行,而是说该软件会针对多个平台发布不同的rpm软件包
 
  RPM软件包常用的命名规范如下:
 
  linux软件源_linux源码中kconfig是什么文件_ipad1软件cydia软件源
 
  centos-release-6-6.el6.centos.12.2.i686.rpm
 
  其中centos-release就是我们的软件名字,6-6是该软件的版本号,el6.centos.12.2.i686这两个部分是指我们该rpm包的运行平台的操作系统版本。例如el6就表示是针对于RHEL6的发现版本,我们使用的是什么版本的Linux操作系统,我们就要去下载对应的rpm版本,i686表示是运行在64位上的系统。
 
  RPM的基础命令:
 
  rpm的使用方式非常简单,常用的一些命令如下:
 
  安装软件:rpm -icentos-release-6-6.el6.centos.12.2.i686.rpm
 
  卸载软件:rpm -ecentos-release
 
  升级形式安装:rpm -Ucentos-release-6-6.el6.centos.12.2.i686.rpm
 
  常用参数:
 
  -v显示详细信息
 
  -h显示文本进度条,以#显示
 
  例如我们这里安装一个tigervnc的rpm软件包实验一下:
 
  [root@xiaoluo home]# rpm -ivh tigervnc-1.1.0-5.el6.x86_64.rpm   // 通常我们一般安装时跟上 -ivh参数,来显示安装的详细信息
  Preparing... ? ? ? ? ? ? ? ?########################################### [100%] ?
  1:tigervnc ? ? ? ? ? ? ? ? ?########################################### [100%]
  安装过程根据软件包的大小以及机器的配置时间会不尽相同,我们发现我们的这个rpm已经就安装好了。
 
  如果我们要将其卸载的话也非常的简单,通过rpm -e 软件名字即可卸载了,如:
 
  [root@xiaoluo home]# rpm -e tigervnc
  这样我们的rpm软件就已经卸载了,同样我们可以使用rpm -U 软件名字来对rpm软件进行升级
 
  RPM常用查询命令:
 
  rpm -qa 列出所有已安装的rpm软件
 
  rpm -qf filename查询指定文件属于哪个rpm包
 
  rpm -qi packagename查询已安装软件包的信息
 
  rpm -ql packagename查询指定软件包包含的文件及路径
 
  rpm -qip software.rpm查询rpm文件的信息
 
  rpm -qilp software.rpm查询rpm文件包含的文件
 
  例如我们要查看当前操作系统上所有已安装的rpm软件,通过rpm -qa命令即可查看
 
  [root@localhost ~]# rpm -qa
  gnome-vfs2-smb-2.24.2-6.el6.i686
  oddjob-0.30-5.el6.i686
  desktop-effects-0.8.4-7.el6.i686
  cloog-ppl-0.15.7-1.2.el6.i686
  NetworkManager-gnome-0.8.1-75.el6.i686
  totem-mozplugin-2.28.6-4.el6.i686
  newt-0.52.11-3.el6.i686
  iputils-20071127-17.el6_4.2.i686
  system-config-keyboard-1.3.1-6.el6.i686
  pygtk2-libglade-2.16.0-3.el6.i686
  audit-2.3.7-5.el6.i686
  ********************************此处省略N个字********************************************
  如果我们需要查看 filesystem 软件的详细信息,通过rpm -qi filesystem命令即可查看:
 
  [root@localhost ~]# rpm -qi filesystem
  Name ? ? ? ?: filesystem ? ? ? ? ? ? ? ? ? Relocations: (not relocatable)
  Version ? ? : 2.4.30 ? ? ? ? ? ? ? ? ? ? ? ? ? ?Vendor: CentOS
  Release ? ? : 3.el6 ? ? ? ? ? ? ? ? ? ? ? ? Build Date: Fri 23 Sep 2011 07:49:00 PM CST
  Install Date: Mon 29 Jun 2015 09:59:16 PM CST ? ? ?Build Host: c6b6.bsys.dev.centos.org
  Group ? ? ? : System Environment/Base ? ? ? Source RPM: filesystem-2.4.30-3.el6.src.rpm
  Size ? ? ? ?: 0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?License: Public Domain
  Signature ? : RSA/SHA1, Mon 26 Sep 2011 12:09:57 PM CST, Key ID 0946fca2c105b9de
  Packager ? ?: CentOS BuildSystem
  URL ? ? ? ? : https://fedorahosted.org/filesystem
  Summary ? ? : The basic directory layout for a Linux system
  Description :
  The filesystem package is one of the basic packages that is installed
  on a Linux system. Filesystem contains the basic directory layout
  for a Linux operating system, including the correct permissions for
  the directories.
  如果我们需要查看当前操作系统文件下某一个文件夹是属于哪个rpm包的,我们可以通过rpm -qf filename命令来进行查看
 
  [root@localhost ~]# rpm -qf /usr/share/mysql
  mysql-libs-5.1.73-3.el6_5.i686
  如果我们需要查看指定的rpm软件包所包含的文件,可以通过rpm -qlpackagename命令来进行查看
 
  [root@localhost ~]# rpm -ql python
 
  /usr/bin/pydoc
 
  /usr/bin/python
 
  /usr/bin/python2
 
  /usr/bin/python2.6
 
  /usr/share/doc/python-2.6.6
 
  /usr/share/doc/python-2.6.6/LICENSE
 
  /usr/share/doc/python-2.6.6/README
 
  /usr/share/man/man1/python.1.gz
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!