在Linux平台下,软件包的类型可以划分为两类:源码包、二进制包。
源码包:即程序软件的源代码(一般也叫Tarball,即将软件的源码以tar打包后再压缩的资源包)。
二进制包:如 Red Hat发行版的.rpm包,Debian发行版的.deb包。
源码包安装的主要步骤
RPM包也叫系统默认包,二进制包。RPM是 Redhat Package Manager,是有红帽公司开发的套件管理程序。
RPM在系统光盘
libmicrohttpd-0.9.33-2.el7.i686.rpm
libmicrohttpd-0.9.33-2.el7.x86_64.rpm
1、i386、i586、i686与Noarch
i386—几乎所有的X86平台,不论是旧的pentum或者是新的pentum-IV与K7系统CPU,都可以正常工作,i指得是Intel兼容的CPU,至于386就是CPU的等级。
i586—就是586等级的计算机,包括pentum第一代MMX CPU,AMD的K5,K6系统CPU(socket7插脚)等CPU都是这个等级。
i686—pentum 2 以后的Intel系统CPU及K7以后等级的CPU都属于这个686等级。
Noarch—代表跟硬件体系结构无关。不管是 x86、PowerPC,Sparc 或者 Alpha 系统。
x86: 一般意义上的32位Intel处理器
x86_64: 一般意义上的64位Intel处理器
树形依赖a->b->c
环形以来a->b->c->a
模块依赖(库文件依赖),查询网站:www.rpmfind.net
库文件依赖(依赖个文件)
[root@Redhat7 Packages]# rpm -ivh mysql-connector-odbc-5.2.5-6.el7.x86_64.rpm
警告:mysql-connector-odbc-5.2.5-6.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
错误:依赖检测失败:
libodbc.so.2()(64bit) 被 mysql-connector-odbc-5.2.5-6.el7.x86_64 需要
libodbcinst.so.2()(64bit) 被 mysql-connector-odbc-5.2.5-6.el7.x86_64 需要
[root@Redhat7 Packages]# rpm -ivh libodbc.so.2(没有这个包)
通过www.rpmfind.net查询
包全名:安装,升级,包名:查询,卸载。
rpm –ivh
i install 安装
v verbose 显示详细信息
h hash 显示进度
--nodeps 不检测依赖性(谨慎使用)
[root@Redhat7 Packages]# rpm -ivh http
httpcomponents-client-4.2.5-5.el7_0.noarch.rpm
httpcomponents-core-4.2.4-6.el7.noarch.rpm
httpd-2.4.6-40.el7.x86_64.rpm (主包)
httpd-devel-2.4.6-40.el7.x86_64.rpm
httpd-manual-2.4.6-40.el7.noarch.rpm
httpd-tools-2.4.6-40.el7.x86_64.rpm
错误的依赖性
[root@Redhat7 Packages]# rpm -ivh httpd-2.4.6-40.el7.x86_64.rpm
警告:httpd-2.4.6-40.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
错误:依赖检测失败:
/etc/mime.types 被 httpd-2.4.6-40.el7.x86_64 需要
httpd-tools = 2.4.6-40.el7 被 httpd-2.4.6-40.el7.x86_64 需要
libapr-1.so.0()(64bit) 被 httpd-2.4.6-40.el7.x86_64 需要
libaprutil-1.so.0()(64bit) 被 httpd-2.4.6-40.el7.x86_64 需要
[root@Redhat7 Packages]# rpm -ivh httpd-tools-2.4.6-40.el7.x86_64.rpm
警告:httpd-tools-2.4.6-40.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
错误:依赖检测失败:
libapr-1.so.0()(64bit) 被 httpd-tools-2.4.6-40.el7.x86_64 需要(依赖库文件)
libaprutil-1.so.0()(64bit) 被 httpd-tools-2.4.6-40.el7.x86_64 需要 (依赖库文件)通过网站查找
[root@Redhat7 Packages]# rpm -ivh apr-1.4.8-3.el7.x86_64.rpm
警告:apr-1.4.8-3.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:apr-1.4.8-3.el7 ################################# [100%]
[root@Redhat7 Packages]# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm
警告:apr-util-1.5.2-6.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:apr-util-1.5.2-6.el7 ################################# [100%]
[root@Redhat7 Packages]# rpm -ivh httpd-tools-2.4.6-40.el7.x86_64.rpm
警告:httpd-tools-2.4.6-40.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:httpd-tools-2.4.6-40.el7 ################################# [100%]
[root@Redhat7 Packages]# rpm -ivh httpd-2.4.6-40.el7.x86_64.rpm
警告:httpd-2.4.6-40.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
错误:依赖检测失败:
/etc/mime.types 被 httpd-2.4.6-40.el7.x86_64 需要
[root@Redhat7 Packages]# rpm -ivh mailcap-2.1.41-2.el7.noarch.rpm
警告:mailcap-2.1.41-2.el7.noarch.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mailcap-2.1.41-2.el7 ################################# [100%]
[root@Redhat7 Packages]# rpm -ivh httpd-2.4.6-40.el7.x86_64.rpm
警告:httpd-2.4.6-40.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:httpd-2.4.6-40.el7 ################################# [100%]
总结使用rpm太不人性化。
[root@Redhat7 Packages]# rpm -ivh httpd-
httpd-2.4.6-40.el7.x86_64.rpm (安装完成)
httpd-manual-2.4.6-40.el7.noarch.rpm(安装完成)
httpd-devel-2.4.6-40.el7.x86_64.rpm
httpd-tools-2.4.6-40.el7.x86_64.rpm(安装完成)
rpm安装就是解决依赖性,无限安装
Rpm -Uvh 包全名
-U upgrade 升级
rpm –evh 报名
-e (erase) 卸载
v verbose 显示详细信息
h hash 显示进度
--nodeps不检查依赖性
[root@Redhat7 Packages]# rpm -evh httpd-tools
错误:依赖检测失败:
httpd-tools = 2.4.6-40.el7 被 (已安裝) httpd-2.4.6-40.el7.x86_64 需要
[root@Redhat7 Packages]# rpm -evh httpd-manual
准备中... ################################# [100%]
正在清理/删除...
1:httpd-manual-2.4.6-40.el7 ################################# [100%]
强制卸载(谨慎使用)
[root@Redhat7 Packages]# rpm -evh --nodeps httpd-tools
准备中... ################################# [100%]
正在清理/删除...
1:httpd-tools-2.4.6-40.el7 ################################# [100%]
rpm –q 包名 查询包是否安装
rpm –qa 查询所有安装的包
rpm –i 查询软件信息
-l:列出软件包中所有的文件列表和软件所安装的目录(list)
-f:查询文件属于那个包
-R:查询软件包依赖的包
[root@Redhat7 ~]# rpm -q nautilus
nautilus-3.14.3-7.el7.x86_64
比较常用的方式
[root@Redhat7 ~]# rpm -qia | grep httpd
Name : httpd
Source RPM : httpd-2.4.6-40.el7.src.rpm
URL : http://httpd.apache.org/
[root@Redhat7 ~]# rpm -qa | grep httpd
httpd-2.4.6-40.el7.x86_64
[root@Redhat7 ~]# rpm -qilla | grep httpd
/usr/share/setroubleshoot/plugins/httpd_can_sendmail.py
/usr/share/setroubleshoot/plugins/httpd_can_sendmail.pyc
/usr/share/setroubleshoot/plugins/httpd_can_sendmail.pyo
/usr/share/setroubleshoot/plugins/httpd_write_content.py
/usr/share/setroubleshoot/plugins/httpd_write_content.pyc
/usr/share/setroubleshoot/plugins/httpd_write_content.pyo
Name : httpd
Source RPM : httpd-2.4.6-40.el7.src.rpm
URL : http://httpd.apache.org/
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
[root@Redhat7 ~]# rpm -qif /usr/share/httpd/icons/small/burst.gif
Name : httpd
Version : 2.4.6
Release : 40.el7
Architecture: x86_64
Install Date: 2019年07月30日 星期二 00时08分10秒
Group : System Environment/Daemons
Size : 3876648
License : ASL 2.0
Signature : RSA/SHA256, 2015年09月30日 星期三 21时29分50秒, Key ID 199e2f91fd431d51
Source RPM : httpd-2.4.6-40.el7.src.rpm
Build Date : 2015年09月17日 星期四 21时08分35秒
Build Host : x86-024.build.eng.bos.redhat.com
Relocations : (not relocatable)
Packager : Red Hat, Inc.
Vendor : Red Hat, Inc.
URL : http://httpd.apache.org/
Summary : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensibl
[root@Redhat7 ~]# rpm -qR httpd
/etc/mime.types
system-logos >= 7.92.1-1
httpd-tools = 2.4.6-40.el7
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
yum是什么yum = Yellow dog Updater, Modified。
主要功能是更方便的添加/删除/更新RPM包.。
它能自动解决包的倚赖性问题.。
它能便于管理大量系统的更新问题。
yum的命令形式一般是如下:yum [options] [command] [package ...]
其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
[command]为所要进行的操作,[package ...]是操作的对象。
【设置本地镜像作为yum源】
1、mkdir /mnt/cdrom
2 mount /dev/cdrom /mnt/cdrom #挂着镜像,光盘
3 mkdir /redhatiso
4 cp -Rf /mnt/cdrom/* /redhatiso #将光盘内的内容copy到某个路径下
5 vi /etc/yum.repos.d/rhel-debuginfo.repo #编辑repo文件
添加一下内容:
[iso7.2]
name=iso7.2
baseurl=file:///redhatiso
enable=1
gpgcheck=0
1.列出所有可更新的软件清单命令:yum check-update
2.更新所有软件命令:yum update
3.仅安装指定的软件命令:yum install
4.仅更新指定的软件命令:yum update
5.列出所有可安裝的软件清单命令:yum list
6.删除软件包命令:yum remove
7.查找软件包 命令:yum search
8.清除缓存命令:
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
[root@Redhat7 ~]# yum info httpd.x86_64
已加载插件:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
已安装的软件包
名称 :httpd
架构 :x86_64
版本 :2.4.6
发布 :40.el7
大小 :3.7 M
源 :installed
简介 : Apache HTTP Server
网址 :http://httpd.apache.org/
协议 : ASL 2.0
描述 : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1
查找http开头的文件包
[root@Redhat7 ~]# yum list | grep http
search搜索服务器上所有和关键字相关的包
# yum search perl //在包名称、包描述等中搜索
Yum –y install 包名
- install 安装
-y 自动回复yes
自动安装 名字包含pam的包
[root@Redhat7 ~]# yum install *pam* -y
yum update 全部更新
yum update package1 更新指定程序包package1
[root@Redhat7 ~]# yum update gcc –y
在服务器中尽量不卸载,稳定第一
yum remove pam-devel
yum remove pam-devel –y 自动删除
如何确定安装出错
安装过程停止,并出现error,waring,或no的提示
[root@Redhat7 en-software]# mkdir /en-software
[root@Redhat7 en-software]# tar -zvxf rlwrap-0.37.tar.gz
进入解压缩目录
[root@Redhat7 en-software]# cd rlwrap-0.37/
它能设置源程序来适应各种不同的操作系统平台,并且根据不同的系统来产生相应的makefile文件,Makefile 规定了用什么编译器、编译参数等信息。从而可以使你的源代码能在不同的操作系统平台上被编译出来。比如它会检测你是不是有CC或GCC。
[root@Redhat7 rlwrap-0.37]# ./configure –prefix=/en-software/ rlwrap
configure: error:
You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build
this program!
安装readline
[root@Redhat7 rlwrap-0.37]# yum install *readline* -y
成功
configure: creating ./config.status
config.status: creating Makefile
config.status: creating filters/Makefile
config.status: creating doc/Makefile
config.status: creating src/Makefile
config.status: creating doc/rlwrap.man
config.status: creating config.h
config.status: executing depfiles commands
Now do:
make (or gmake) to build rlwrap
make check for instructions how to test it
make install to install it
也可以指定安装位置(一定要指定安装位置)
./configure –prefix=/en-software/ rlwrap
执行make 就是将源码编译成可以执行的文件,但是并没有安装。
最后一步安装文件
安装成功
[root@Redhat7 en-software]# rlwrap
安装的说明文档在解压缩目录中大写的INSTALL
[root@Redhat7 rlwrap-0.37]# cat INSTALL
PREREQUISITES
To build rlwrap, you'll need an ANSI C compiler (gcc will certainly
do) and GNU readline 4.2 or later. rlwrap should compile on most
unices and unix-like environments like linux, the BSDs, OS/X, solaris,
HP/UX, QNX, AIX and cygwin (special thanks to PolarHome for their
"dinosaur zoo" of ageing Unix systems!)
INSTALLATION
./configure
make
make install
make unistall:卸载已经安装的程序。
make clean:删除由make命令产生的文件
最后一步删除源码包的文件夹