Linux中软件包大致可以分为两类:源码包和二进制包。
其中源码包是由C语言编写的开源(可修改)的软件包。源码包在编译安装时可以自由选择功能,卸载时可直接方便删除即可,因为它是编译安装的,所安装的软件可以更兼容本机的硬件平台,更加稳定高效。但是源码包编译安装安装大型软件集合时步骤繁琐容易出错。
二进制包也叫RPM包,它安装方便,通常一个命令就可以搞定一个软件,但是它是经过编译的,看不到源码,更不能进行修改,而且它最大的缺点是安装软件必须解决软件包的依赖关系,yum在线安装解决了这个棘手问题。
源码包的安装
源码包安装在指定位置,一般是/usr/local/software_name/,跟rpm安装在默认的位置不同的是所安装的服务不能通过服务管理器设别,只能用绝对路径管理服务。
安装源码包因为需要编译所以要先在linux中安装C语言编译器GCC。
解压缩源码包(源码包一般放在/usr/local/scr/中),进入解压缩目录开始安装。
安装前先看一下INSTALL文件和README文件。
1、.configure #软件的配置和检查,并将定义好的功能和系统环境的信息写入Makefile文件中
2、make #编译
3、make install #编译安装
RPM软件包安装
rpm命令安装
rpm包的包名格式一般是【名字-版本-发行号-平台.rpm】
rpm包还有二进制格式和源码格式,源码格式跟源码包一样在本机编译,能更好发挥本机的硬件性能。
安装:
rpm -ivh /path/包全名
选项
-i #install安装
-v #verbose 显示详细信息(-vv)
-h #hash 显示进度,以#显示进度,每个#表示2%
--replacepkgs #重新安装,替换原有安装
--force #强行安装,可以实现重装或降级
- - nodeps #不检测依赖性
升级:
rpm -Uvh /path/包全名
-U #升级软件
卸载:
rpm -e 包名
-e erase 卸载
- - nodeps 不检查依赖性
查询:
1.查询是否安装
rpm -q 包名 query是否安装
rpm -qa 包名 查询所有已经安装的rpm包
[root@localhost ~]# rpm -q screen
screen-4.0.3-4.el5
[root@localhost ~]# rpm -qa | head
rmt-0.4b41-4.el5
desktop-backgrounds-basic-2.0-37
man-pages-2.39-15.el5
popt-1.10.2.3-18.el5
libusb-0.1.12-5.1
readline-5.1-3.el5
bzip2-libs-1.0.3-4.el5_2
gdbm-1.8.0-26.2.1
elfutils-libelf-0.137-3.el5
libfontenc-1.0.2-2.2.el5
2.查询软件包详细信息
rpm -qi 包名
-i information查询软件信息
-p package 查询未安装包信息
[root@localhost ~]# rpm -qi screen
Name : screen Relocations: (not relocatable)
Version : 4.0.3 Vendor: CentOS
Release : 4.el5 Build Date: 2011年05月04日 星期三 23时29分00秒
Install Date: 2015年10月25日 星期日 05时17分39秒 Build Host: builder10.centos.org
Group : Applications/System Source RPM: screen-4.0.3-4.el5.src.rpm
Size : 757243 License: GPL2
Signature : DSA/SHA1, 2011年05月05日 星期四 01时13分55秒, Key ID a8a447dce8562897
URL : http://www.gnu.org/software/screen
Summary : 在一个终端机上支持多重登录的屏幕管理器。
Description :
screen 工具允许您在一个终端机上有多重登录。
screen 对于远程登录到一个机器上或通过一个简单
终端来连接的,但又想有多个登录的用户来说
很有用处。
如果您需要一个能够支持在一个终端机上的多重
登录的屏幕管理器,请安装 screen 软件包。
3.查询包中文件呢安装位置
rpm -ql 包名
-l list 列表
-p package 查询未安装包信息
[root@localhost ~]# rpm -q screen
screen-4.0.3-4.el5
[root@localhost ~]# rpm -ql screen
/etc/pam.d/screen
/etc/screenrc
/usr/bin/screen
/usr/share/doc/screen-4.0.3
/usr/share/doc/screen-4.0.3/FAQ
/usr/share/doc/screen-4.0.3/NEWS
/usr/share/doc/screen-4.0.3/README
/usr/share/doc/screen-4.0.3/README.DOTSCREEN
/usr/share/info/screen.info.gz
/usr/share/man/man1/screen.1.gz
/usr/share/screen
/usr/share/screen/utf8encodings
/usr/share/screen/utf8encodings/01
/usr/share/screen/utf8encodings/02
/usr/share/screen/utf8encodings/03
/usr/share/screen/utf8encodings/04
/usr/share/screen/utf8encodings/18
/usr/share/screen/utf8encodings/19
/usr/share/screen/utf8encodings/a1
/usr/share/screen/utf8encodings/bf
/usr/share/screen/utf8encodings/c2
/usr/share/screen/utf8encodings/c3
/usr/share/screen/utf8encodings/c4
/usr/share/screen/utf8encodings/c6
/usr/share/screen/utf8encodings/c7
/usr/share/screen/utf8encodings/c8
/usr/share/screen/utf8encodings/cc
/usr/share/screen/utf8encodings/cd
/usr/share/screen/utf8encodings/d6
/var/run/screen
4.查询系统文件属于哪个rpm包
rpm -qf 系统文件名
-f file查询系统文件属于哪个软件包
5.查询软件包的依赖性
rpm -qR 包名
-R 查询软件包的依赖性requires
[root@localhost ~]# rpm -qR screen
/bin/sh
/bin/sh
/bin/sh
/sbin/install-info
/sbin/install-info
/usr/sbin/groupadd
config(screen) = 4.0.3-4.el5
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3.4)
libc.so.6(GLIBC_2.4)
libcrypt.so.1
libcrypt.so.1(GLIBC_2.0)
libncurses.so.5
libpam.so.0
libpam.so.0(LIBPAM_1.0)
libutempter.so.0
libutil.so.1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
RPM包校验:
rpm -V 已安装的包名
-V 校验指定RPM包中的文件verify
验证内容包括文件大小(S)、文件的类型或文件的权限rwx(M)、文件的MD5校验和(5)、设备的代码(D)、文件路径(L)、文件的属主(所有者U)、属组(G)、文件的修改时间(T)、对应位置没有被修改过 (T)。
RPM包中文件提取:
rpm2cpio 包全名 | cpio -idv .文件绝对路径
将rpm包转换为cpio格式
yum命令安装
常用命令
查看配置文件/etc/yum.repos.d/CentOS-Base.repo(查看网络yum源)
[root@localhost ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base] #容器名称
name=CentOS-5 - Base #容器说明
baseurl= #yum源服务器地址
gpgcheck=1 #RPM数字证书生效与否(1为生效)
gpgkey= #数字证书的公钥文件保存位置
#released updates
[update]
name=CentOS-5 - Updates
baseurl=http://centos.ustc.edu.cn/centos/5/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#packages used/produced in the build but not released
[addons]
name=CentOS-5 - Addons
baseurl=http://centos.ustc.edu.cn/centos/5/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#additional packages that may be useful
[extras]
name=CentOS-5 - Extras
baseurl=http://centos.ustc.edu.cn/centos/5/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-5 - Plus
baseurl=http://centos.ustc.edu.cn/centos/5/centosplus/$basearch/
gpgcheck=1
enabled=0 #容器生效与否,不写或=1为生效,=0为不生效
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#contrib - packages by Centos Users
[contrib]
name=CentOS-5 - Contrib
baseurl=http://centos.ustc.edu.cn/centos/5/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#packages in testing
[testing]
name=CentOS-5 - Testing
baseurl=http://centos.ustc.edu.cn/centos/5/testing/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
查询所有可用软件包列表:
[root@localhost ~]# yum list | head
Loading mirror speeds from cached hostfile
Installed Packages
Deployment_Guide-en-US.noarch 5.2-11 installed
Deployment_Guide-zh-CN.noarch 5.2-11 installed
Deployment_Guide-zh-TW.noarch 5.2-11 installed
GConf2.i386 2.14.0-9.el5 installed
GConf2-devel.i386 2.14.0-9.el5 installed
ImageMagick.i386 6.2.8.0-4.el5_1.1 installed
MAKEDEV.i386 3.23-1.2 installed
Exiting on Broken Pipe
搜索服务器上匹配到的包
[root@localhost ~]# yum search gimp
Loading mirror speeds from cached hostfile
================================= Matched: gimp =================================
glib-devel.i386 : The GIMP ToolKit (GTK+) and GIMP Drawing Kit (GDK) support
: library.
gtk+.i386 : The GIMP ToolKit (GTK+), a library for creating GUIs for X.
gtk+-devel.i386 : Development tools for GTK+ (GIMP ToolKit) applications.
gimp.i386 : GNU Image Manipulation Program
gimp-devel.i386 : GIMP 插件和扩展开发工具包
gimp-libs.i386 : GIMP libraries
gimp-data-extras.noarch : GIMP 的附加文件。
gimp-help.noarch : GIMP 的帮助文件。
gimp-print.i386 : 一组高质量的打印机驱动程序集合。
gimp-print-cups.i386 : 用于 Canon、Epson、HP 及兼容打印机的 CUPS 驱动程序
gimp-print-devel.i386 : 开发使用 gimp-print 的应用程序所需的文件。
gimp-print-plugin.i386 : 用于 gimp-print 的 GIMP 插件
gimp-print-utils.i386 : gimp-print 的工具程序
glib2-devel.i386 : GIMP 工具包 (GTK+) 和 GIMP 绘图包 (GDK) 支持库。
gtk2.i386 : The GIMP ToolKit (GTK+), a library for creating GUIs for X
xsane-gimp.i386 : 一个提供 SANE 扫描仪接口的 GIMP 插件。
yum源安装/升级/卸载(-y 自动进行)
[root@localhost ~]# yum -y install screen
[root@localhost ~]# yum -y update screen #必须指定包名,不然linux会全部升级(包括内核,但是内核不能yum升级)
[root@localhost ~]# yum -y remove screen #yum卸载会卸载很多系统相关的软件,很危险
yum软件组管理
yum grouplist #列出所有可用的软件组列表
yum groupinstall #软件组名 安装指定软件组,组名可以由grouplist查询出来
yum groupremove 软件组名 #卸载指定软件组
[root@localhost ~]# yum grouplist
Setting up Group Process
Loading mirror speeds from cached hostfile
Installed Groups:
GNOME 桌面环境
X 窗口系统
X 软件开发
Yum Utilities
万维网服务器
办公/生产率
图形
图形化互联网
基于文本的互联网
开发工具
开发库
打印支持
拨号联网支持
授权和出版
服务器配置工具
游戏和娱乐
管理工具
系统工具
编辑器
网络服务器
老的网络服务器
老的软件开发
老的软件支持
视频和音频
邮件服务器
Available Groups:
Beagle
DNS 名称服务器
Eclipse
FTP 服务器
FreeNX and NX
GNOME 软件开发
Horde
HyperV
Java开发
KDE 软件开发
KDE (K 桌面环境)
Mono
MySQL 数据库
OpenFabrics 企业版发行
PostgreSQL 数据库
Tomboy
Windows 文件服务器
XFCE-4.4
Xen
基本
工程和科学
新闻服务器
集群
集群存储
Done
光盘yum源搭建
挂载光盘 mount /dev/cdrom /mnt/cdrom
让网络yum源文件失效(把.repo改成.repo.bak)
修改光盘yum源文件
[root@xxx yum.repos.d]# vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom #地址改为光盘挂载地址
#注释掉两个不存在的地址:
# file:///media/cdrom/
# file:///media/cdrecorder
gpgcheck=1 #值改为1
enabled=1 #值改为1使yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS -6 #不用修改