快速建站服务器,公司注册资金一览表,微信 网站 收费标准,软件开发工具有哪些在Linux系统下#xff0c;对于软件包的管理有多种机制#xff0c;有源代码方式、RPM软件包管理方式以及YUM软件管理方式#xff0c;本篇随笔将详细讲解CentOS下源代码形式安装软件以及RPM软件包管理机制 一、源代码形式 首先我们先来看一下源代码的方式。我们知道#xff0…在Linux系统下对于软件包的管理有多种机制有源代码方式、RPM软件包管理方式以及YUM软件管理方式本篇随笔将详细讲解CentOS下源代码形式安装软件以及RPM软件包管理机制 一、源代码形式 首先我们先来看一下源代码的方式。我们知道在开源的环境下大多数的开源软件都是以源代码的形式来发布通常将源代码打包成tar.gz的归档压缩文件发布到网上供我们下载使用。但是我们下载下来的源代码方式我们还不能够直接使用不像在windows系统上直接下载下来可执行的二进制文件我们需要将下载好的源码编译成可执行的二进制文件才能运行使用源代码形式安装流程一般如下 ①./configure 检查编译环境、相关库文件以及配置参数并生成makefile ②make 将源代码编译成可执行的二进制文件 ③make install 安装编译好的可执行文件 基本上所有以源代码形式发布的软件都是按照以上流程来进行安装大家可能觉得其实步骤就这三个安装过程非常简单!其实不然通常以源代码形式发布的软件在对其进行①、②步操作时往往会出很多很多的问题比如说编译过程中缺少所需的库文件或者说编译源码时又需要依赖A文件编译A文件时可能又需要用到B文件这样我们需要花大量时间去找这些依赖的问题同时如果一个软件特别大的话我们在将其编译过程中要等待非常久的时间。所以说其实源代码形式的安装软件并不是我们想象的那么简单但是为什么源代码形式的软件管理还一直存在呢必然也有其优点因为我们的源码都要通过编译成可执行的二进制文件才行所以说它适用于各种操作系统平台我只需要在各个操作系统平台上对其源码进行编译即可运行起来了。 总结一下 源代码形式的缺点操作复杂、编译时间长、极易出现错误 源代码形式的优点适用于所有的操作系统、可定制 二、RPM软件包管理 因为源代码方式安装软件终究还是比较麻烦所以说现在出现了许多代替源码方式安装的软件管理机制。RPM就是其中一个RPMredhat Package Manager是为了方便软件管理使用所开发的一套开源软件格式它的设计目标有以下几个 ①使用简单 通过 rpm 命令就可以完成rpm软件的安装 ②以单一软件包格式发布.rpm文件 我们可以看到rpm软件包都只有一个以.rpm的文件(rpm软件包管理机制要求软件包必须以.rpm结尾) ③可升级 rpm软件包是可以升级的比如说我下载好了一个新版本的rpm软件我们只需要通过 rpm -u 命令即可升级 ④追踪依赖关系 rpm软件包管理机制可以追踪软件之间的依赖关系这样在安装时就会非常的方便 ⑤保存软件基本信息 ⑥软件验证功能 ⑦支持多平台 支持多平台并不是说一个rpm软件可以在多个操作系统平台上运行而是说该软件会针对多个平台发布不同的rpm软件包 RPM软件包常用的命名规范如下 xiaoluo-1.1.0-5.el6.x86_64.rpm 其中xiaoluo就是我们的软件名字1.1.0-5是该软件的版本号el6.x86_64这两个部分是指我们该rpm包的运行平台的操作系统版本。例如el6就表示是针对于RHEL6的发现版本我们使用的是什么版本的Linux操作系统我们就要去下载对应的rpm版本x86_64表示是运行在64位上的系统。 RPM的基础命令 rpm的使用方式非常简单常用的一些命令如下 安装软件rpm -i xiaoluo-1.1.0-5.el6.x86_64.rpm 卸载软件rpm -e xiaoluo 升级形式安装rpm -U xiaoluo-1.1.0-5.el6.x86_64.rpm 常用参数 -v 显示详细信息 -h 显示文本进度条 例如我们这里安装一个tigervnc的rpm软件包实验一下 [rootxiaoluo home]# rpm -ivh tigervnc-1.1.0-5.el6.x86_64.rpm // 通常我们一般安装时跟上 -ivh参数来显示安装的详细信息
Preparing... ########################################### [100%]1:tigervnc ########################################### [100%] 安装过程根据软件包的大小以及机器的配置时间会不应相同我们发现我们的这个rpm已经就安装好了。 如果我们要将其卸载的话也非常的简单通过 rpm -e 软件名字 即可卸载了如 [rootxiaoluo 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 命令即可查看 [rootxiaoluo home]# rpm -qa
java-1.6.0-openjdk-devel-1.6.0.0-1.50.1.11.5.el6_3.x86_64
qimageblitz-0.0.4-1.el6.x86_64
gnome-python2-gnomevfs-2.28.0-3.el6.x86_64
perl-ExtUtils-ParseXS-2.2003.0-129.el6.x86_64
iscsi-initiator-utils-6.2.0.873-2.el6.x86_64
libhbaapi-2.2.6-1.el6.x86_64
perl-BSD-Resource-1.29.03-3.el6.x86_64
sane-backends-1.0.21-3.el6.x86_64
gtkspell-2.0.16-1.el6.x86_64
libbonobo-2.24.2-5.el6.x86_64
evolution-data-server-doc-2.28.3-16.el6.noarch
libhbalinux-1.0.14-1.el6.x86_64
kde-l10n-British-4.3.4-5.el6.noarch
perl-CGI-3.51-129.el6.x86_64********************************此处省略N个字******************************************** 如果我们需要查看刚才安装好的 tigervnc 软件的详细信息通过 rpm -qi tigervnc 命令即可查看 [rootxiaoluo home]# rpm -qi tigervnc
Name : tigervnc Relocations: (not relocatable)
Version : 1.1.0 Vendor: CentOS
Release : 5.el6 Build Date: 2013年02月23日 星期六 06时28分42秒
Install Date: 2013年05月20日 星期一 20时43分01秒 Build Host: c6b9.bsys.dev.centos.org
Group : User Interface/Desktops Source RPM: tigervnc-1.1.0-5.el6.src.rpm
Size : 659349 License: GPLv2
Signature : RSA/SHA1, 2013年02月24日 星期日 01时39分36秒, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem http://bugs.centos.org
URL : http://www.tigervnc.com
Summary : A TigerVNC remote display system
Description :
Virtual Network Computing (VNC) is a remote display system which
allows you to view a computing desktop environment not only on the
machine where it is running, but from anywhere on the Internet and
from a wide variety of machine architectures. This package contains a
client which will allow you to connect to other desktops running a VNC
server. 如果我们需要查看当前操作系统文件下某一个文件夹是属于哪个rpm包的我们可以通过 rpm -qf filename 命令来进行查看 [rootxiaoluo home]# rpm -qf /usr/share/mysql/
mysql-libs-5.1.67-1.el6_3.x86_64 如果我们需要查看指定的rpm软件包所包含的文件可以通过 rpm -ql packagename 命令来进行查看 [rootxiaoluo home]# rpm -ql tigervnc/usr/bin/vncviewer
/usr/share/applications/vncviewer.desktop
/usr/share/doc/tigervnc-1.1.0
/usr/share/doc/tigervnc-1.1.0/LICENCE.TXT
/usr/share/doc/tigervnc-1.1.0/README.txt
/usr/share/icons/hicolor
/usr/share/icons/hicolor/16x16
/usr/share/icons/hicolor/16x16/apps
/usr/share/icons/hicolor/16x16/apps/tigervnc.png
/usr/share/icons/hicolor/24x24
/usr/share/icons/hicolor/24x24/apps
/usr/share/icons/hicolor/24x24/apps/tigervnc.png
/usr/share/icons/hicolor/48x48
/usr/share/icons/hicolor/48x48/apps
/usr/share/icons/hicolor/48x48/apps/tigervnc.png
/usr/share/locale/de/LC_MESSAGES/tigervnc.mo
/usr/share/locale/fr/LC_MESSAGES/tigervnc.mo
/usr/share/locale/pl/LC_MESSAGES/tigervnc.mo
/usr/share/locale/ru/LC_MESSAGES/tigervnc.mo
/usr/share/locale/sk/LC_MESSAGES/tigervnc.mo
/usr/share/locale/sv/LC_MESSAGES/tigervnc.mo
/usr/share/man/man1/vncviewer.1.gz 我们看到安装 tigervnc 这个rpm软件时其包含了以上这么多的文件内容 以上这几个rpm查询命令都是对已经安装好的rpm软件进行查询如果我们有一个rpm的软件包但是还没有对其进行安装我又想查看其软件信息以及软件所包含的文件内容那又怎么办呢直接加上一个参数 p 即可例如 我要查看 zip-3.0-1.el6.x86_64.rpm 这个rpm软件包的信息我们可以通过 rpm -qip zip-3.0-1.el6.x86_64.rpm 这个命令来进行查看 [rootxiaoluo home]# rpm -qip zip-3.0-1.el6.x86_64.rpm
Name : zip Relocations: (not relocatable)
Version : 3.0 Vendor: CentOS
Release : 1.el6 Build Date: 2010年11月11日 星期四 23时26分40秒
Install Date: (not installed) Build Host: c6b3.bsys.dev.centos.org
Group : Applications/Archiving Source RPM: zip-3.0-1.el6.src.rpm
Size : 823612 License: BSD
Signature : RSA/8, 2011年07月03日 星期日 13时07分05秒, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem http://bugs.centos.org
URL : http://www.info-zip.org/Zip.html
Summary : A file compression and packaging utility compatible with PKZIP
Description :
The zip program is a compression and file packaging utility. Zip is
analogous to a combination of the UNIX tar and compress commands and
is compatible with PKZIP (a compression and file packaging utility for
MS-DOS systems).Install the zip package if you need to compress files using the zip
program. 我如果想看下 zip-3.0-1.el6.x86_64.rpm 这个rpm软件在安装后会产生哪些文件可以使用 rpm -qlp zip-3.0-1.el6.x86_64.rpm 命令即可 [rootxiaoluo home]# rpm -qlp zip-3.0-1.el6.x86_64.rpm /usr/bin/zip
/usr/bin/zipcloak
/usr/bin/zipnote
/usr/bin/zipsplit
/usr/share/doc/zip-3.0
/usr/share/doc/zip-3.0/CHANGES
/usr/share/doc/zip-3.0/LICENSE
/usr/share/doc/zip-3.0/README
/usr/share/doc/zip-3.0/README.CR
/usr/share/doc/zip-3.0/TODO
/usr/share/doc/zip-3.0/WHATSNEW
/usr/share/doc/zip-3.0/WHERE
/usr/share/doc/zip-3.0/algorith.txt
/usr/share/man/man1/zip.1.gz
/usr/share/man/man1/zipcloak.1.gz
/usr/share/man/man1/zipnote.1.gz
/usr/share/man/man1/zipsplit.1.gz RPM软件验证命令 rpm -K software.rpm 验证rpm文件 rpm -V softname 验证已安装的软件 RPM软件包管理还具有验证功能因为在开源的软件里源代码都是开放的我们从网上下载的软件可以被一些不法分子在里面植入了一些木马程序这样就会损害我们的操作系统。所以为了安全起见现代操作系统都加入了对软件的验证功能。 验证通常是使用非对称的加密算法所以就需要一个密钥。一般的RPM软件包里面都加入了密钥如果没有加入我们可以通过 rpm --import RPM-GPG-KEY-CentOS-6 命令手动加入即可。 验证rpm文件我们可以使用 rpm -K software.rpm 命令例如我们要验证刚才的 zip-3.0-1.el6.x86_64.rpm [rootxiaoluo home]# rpm -K zip-3.0-1.el6.x86_64.rpm zip-3.0-1.el6.x86_64.rpm: rsa sha1 (md5) pgp md5 OK 验证以后发现该软件是没有问题的。 验证已安装的软件我们可以使用 rpm -V softname 命令例如我要验证一下安装的 mysql 软件就可以使用如下命令 [rootxiaoluo home]# rpm -V mysql
[rootxiaoluo home]# 如果没有出现任何错误就表示该软件是完整的没有被修改。 我们使用的RHEL以及CentOS等Linux系统其软件包的安装维护都是通过RPM软件包来进行管理的我们也看到使用RPM软件包来对软件进行管理非常的方便。 【注意】但是我们需要清楚一个问题就是RPM软件包管理并不会给我们自动的解决软件包直接的依赖关系我们在安装这个rpm包时如果需要依赖其它的rpm包就需要将所依赖的rpm包同时安装才行那么有什么方法可以自动解决软件包的依赖关系呢在下一篇随笔里面我将进行详细的记录、讲解 本篇随笔主要记录了在Linux系统下安装软件的两种方式一个是源代码形式的安装另一个就是我们RPM软件包的形式安装在后续的学习过程中将继续记录自己学习Linux的点点滴滴 您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态。 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内容有任何疑问, 可以通过评论或发邮件的方式联系我: 501395377qq.com / lzp501395377gmail.com