码迷,mamicode.com
首页 > 系统相关 > 详细

Linux软件包管理

时间:2015-10-28 15:49:15      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:在线安装   编译器   软件包   yum   linux.   rpm   

    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  #不用修改

 

本文出自 “阿填的博客” 博客,请务必保留此出处http://laizetian.blog.51cto.com/10728827/1707177

Linux软件包管理

标签:在线安装   编译器   软件包   yum   linux.   rpm   

原文地址:http://laizetian.blog.51cto.com/10728827/1707177

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!