1.Linux系统下软件包的核源和源制作方法和过程
2.yum和apt-get的区别详解
3.CentOS 7升级内核的三种方式(yum/rpm/源码)
Linux系统下软件包的制作方法和过程
总的情况下Linux下软件安装主要有三种方式:
一种是源码安装,需要用户自己手动编译
另一种是码r码包RPM包(RedHat Linux Packet Manager),通过RPM命令就可以实现安装
还有一种为*.bin文件,安装方法与Windows下的核源和源安装过程类似
通常情况下Linux 安装软件主要通过以下两种方式
① 文件名形如xxx.i.rpm ,软件包以二进制形式发布.
② 文件名形如xxx.tar.gz ,软件包多以源码的形式发布.
Linux软件包管理可以分为三类:二进制包的管理,源代码包的码r码包管理,脚本安装
另外值得注意的核源和源是目前存在各种Linux的发行版获取和安装软件的方式也有很多例如
redhat/centos的yum安装(有专门的镜像源)
Ubuntu/Fedora/Debian的sudo apt-get适用于deb包进行管理安装
也有的软件是通过刻盘加密的形式然后进行安装的(例如cnyunwei)
在系统运维管理人员方面也有通过ssh、C/C++语言或者py执行的码r码包kmeans源码一些软件命令进行自动化管理的应用,这里就不做详细介绍了。核源和源
下面有一张图可以清晰地表示linux软件应用的码r码包架构关系:
在Linux启动的时候。首先会启动内核(kernel),核源和源内核是码r码包一段计算机程序,这个程序直接管理管理硬件,核源和源包括CPU、码r码包内存空间、核源和源硬盘接口、码r码包网络接口等等。核源和源所有的计算机操作都要通过内核传递给硬件。我们可以看到,Linux利用kernel实现软硬件的对话。通过系统调用的这个重要的接口,Linux将上层的应用与下层的kernel完全分离开,为程序员隐藏了底层的复杂性(相应的,也提高了上层应用的可移植性)。当我们在升级kernel的时候,也可以保持系统调用的语句不变,从而让上层应用不感受到下层的改变。库函数利用系统调用创造出模块化的功能,而shell则提供了一个用户界面,并让我们可以利用shell的语法编写脚本,以整合程序。有了这些思想我们可以快速地了解linux的软件应用的安装和工作原理,也因此为了方便和获取更多企业应用我们需要在linux系统上开发并且通过源码编译的方式制作各种软件包从而为信息化时代服务。
本文主要介绍源码安装与RPM包的安装
源码包和商业软件包根据各个公司或作者的实际情况出发(可以是tar等格式的压缩包,也可以是bin的源程序,可以是已经编译好了的直接拿来运行的文件,也可以是光盘虚拟化文件等其他介质来制作发布的iso文件等)封装成一种特定的格式发布从而进行相应的软件服务。其实通过yum或者make install命令安装的软件在系统都会自动生成rpm包(只是参数和功能模块差异和严谨的)
简介:
RPM(RedHat Package Manager,红帽子软件包管理器)用于软件包的安装、查询、智能dns源码升级、校验、卸载,以及生成.rpm格式的软件包 RPM的使用前
挂载linux系统(centos4为例)的安装光盘,当然也可在网上下载免费的RPM包.
# mount/dev/cdrom ---挂载光盘
# cd/media/cdrom/CentOS/RPMS ---进入光盘中RPM包的目录(可以通过#mount命令来查看光盘的挂载点一般会在最后一行显示)
# ls
一、源码包安装
1、*.src.rpm形式的源代码软件包
用法:
安装: rpm –rebuild *.src.rpm
cd /usr/src/dist/RPMS
Rpm –ivh *.rpm
卸载: rpm –e packagename
2、.tar.gz,*.tgz,*.bz2形式软件包的安装
首先进行解压,命令如下
tar zxvf *.tar.gz
tar xvfz *.tgz
tar xvfj *.tar.bz2
解压之后进入解压目录,然后进行以下操作(一般情况,具体看软件包的文件名)
配置:./configure
编译:make
安装:make install
卸载:make uninstall
源码安装有一定的难度,不同的软件可能有不同的安装,一般在解压之后应该先阅读说明文档,按照说明进行安装,上面说的只是一般情况。
二、RPM包安装
RPM安装包格式是由Redhat公司提出的,大大的简化了Linux下软件的安装,首先介绍一下通用选项。
-v:显示附加信息
-vv:显示调试信息
--root directory:让RPM以directory作为根目录,这样预安装程序和后安装程序都会安装到这个目录下。
1、安装:rpm –i file.rpm
Options:
h:安装时输出hash记号
test:只对安装进行测试,不真正安装
--persent:以百分比形式显示安装进度
--excludedocs:不安装软件包中的文档
--replacepkgs:强制重新安装
--replacefiles:替换属于其它软件包的文件
--force:忽略软件包及文档冲突
--ignorearch:不校验软件包结构
--ignoreos:不检查软件包运行的操作系统
--nodeps:不检查依赖性关系
--noscripts:不运行预安装和后安装脚本程序
2、删除rpm –e pkgname
Option:
--test:只做删除测试,不真正删除
--noscripts:不运行预安装和后安装脚本程序
--nodeps:不检查依赖性
注意:pkgname是软件包的名字,不是rpm包名字,而是安装后软件包的名字,可以用查询命令来查询软件包名。
3、升级rpm–U(或者—upgrade)file.rpm
Option:
基本与安装时的option一样,有几个特殊的:
--oldpackage:允许一个旧版本
4、查询rpm –q(或者--query)
Option:
-p PACKAGE_FILE:查询软件包的文件
-f FIEL:查询FILE属于哪个软件包
-a:查询所有安装的软件包
-ggroup:查询属于group组的软件包
--whatproVidesCAPABILITY:查询提供了CAPABILITY功能的软件包
--whatrequiresCAPABILITY:查询所有需要CAPABILITY功能的软件包
-i:显示软件包的概要信息
-l:显示软件包中的文件列表
-c:显示配置文件列表
-s:显示文件列表
-scripts:显示安装、卸载,校验脚本
--qf:以用户指定的方式查询
--dump:显示每个文件的校验信息
--proVides:显示软件包提供的功能
-R:显示软件包需要的功能
5、校验已经安装的c dll源码软件包 rpm –V(or –verify,or –y)
Option选项与其它命令的类似
6、校验软件包中的文件 rpm –K(or –checksig) file.rpm
Option:
-v:显示版本信息
-vv:显示调试信息
--rcfileFILELIST:设置rpmrc 文件为FILELIST
7、其它RPM选项
--rebuilddb:重建RPM资料库
--initdb:创建一个新的RPM资料库
--quiet:尽可能地减少输出
--help:显示帮助文件
--version:显示RPM当前版本
上面只是对常用选项的总结,具体还有什么问题,可以用man rpm命令进行查看,官方文件永远最好的老师。
三、*.bin格式安装文件的安装
只需双击或单击*.bin文件就可以根据提示安装了,不再敷述。
要想制作一个RPM格式的软件包,需要编写软件包描述文件。其标准命名格式为:软件名-版本号-释出号.spec(现在大多情况下都是直接用:软件名.spec),这个文件,详细描述了有关该软件包的诸多信息,如软件名,版本,类别,说明摘要,创建时要执行什么指令,安装时要执行什么操作,以及软件 包所要包含的文件等等。有了这个文件,RPM就可以制作出相应的包裹文件来。当然现在也有例如Source rpm这样开源的包制作辅助工具只要一个程序源即可通过向导下一步即可制作。
简单的一个制作例子:
其实最好的办法是做个软件包。我记得 rpm 和 debian 都有快速打包的开源软件可以直接拿来使用即可。
eg将nginx的tar包制作为RPM包
1. 下载nginx的源码包
2. 将文件放到/usr/src/redhat/SOURCES/目录下
3. 编写SPEC文件
[root@mail SPECS]# vinginx-0.8..spec
Summary:the first rpmpackage
Name:nginx
Version:0.8
Release:
Vendor:chenwei@corp.the9.com
License:Share
Group:Applications/Text
Source0:nginx-0.8..tar.gz
%description
my test nginx
%prep
tar -zxvf $RPM_SOURCES_DIR/nginx-0.8..tar.gz
%build
cd$RPM_BUILD_DIR/nginx-0.8.
./configure
make
%install
cd$RPM_BUILD_DIR/nginx-0.8.
make install
%clean
rm -rf$RPM_BUILD_DIR/nginx-0.8.
%files
%defattr(-,root,root)
/usr/local/nginx/sbin/nginx
%doc $RPM_BUILD_DIR/nginx-0.8./README
4. 制作RPM包
[root@mail SPECS]#rpmbuild -ba nginx-0.8..spec
若运行没有错误,则产生/usr/src/redhat/RPMS/i/nginx-0.8-.i.rpm和/usr/src/redhat/SRPMS/nginx-0.8-.src.rpm 两个文件。
总结:rpm包如何制作之个人经验
一 RPM介绍
RPM 前是RedHat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;现在应为RPM Package Manager的缩写。在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用; RPM包中除了包括程序运行时所需要的文件,也有其它的文件;一个RPM 包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件包的依赖关系。
RPM可以让用户直接以binary方式安装软件包,并且可替用户查询是否已经安装了有关的库文件;在用RPM删除程序时,它又会聪明地询问用户是否要删除有关的程序。如果使用RPM来升级软件,RPM会保留原先的配置文件,这样用户就不用重新配置新的adp源码下载软件了。RPM保留一个数据库,这个数据库中包含了所有的软件包的资料,通过这个数据库,用户可以进行软件包的查询。RPM虽然是为Linux而设计的,但是它已经移值到SunOS、Solaris、AIX、Irix等其它UNIX系统上了。RPM遵循GPL版权协议,用户可以在符合GPL协议的条件下自由使用及传播RPM。
二 RPM包分类
我个人认为rpm分为两大类,
1 二进制类包,包括rpm安装包(一般分为i和x等几种)和调式信息包等。
2 源码类包,源码包和开发包应该归位此类。
它们之间的关系是,最先我们按rpm打包要求改造软件项目源码,当符合要求之后就可以使用rpmbuild命令来生成不同的rpm包,同时生成的包之间版本是直接对应的,比如相同的源码包将生成完全相同的二进制rpm包。当你在网上查找rpm包时,一般你可以在RPMS目录中找到预编译的二进制包,而源码包则会在SRPMS目录内。
我们这里提到的RPM制作就是指改造软件源代码使之符合RPM打包要求的过程,这也可以等价为RPM源码包的制作过程,因为当你有了源码包就可以直接编译得到二进制安装包和其他任意包。
三 RPM包制作介绍
RPM包的制作,即是RPM源码包的制作。
这里我想说说RPM包工作的原理,这将有助于全面的了解RPM包管理系统的知识。
RPM是为解决源码包不易安装(需要编译)和软件包相互之间依赖(是RPM包管理器可以一定程度解决依赖问题)问题,它通过在探测源码包在build和install阶段的动作获得最终生成的需要安装的系统里的文件,并记录下一些必要的操作(比如安装完成后执行某项操作),然后把此组成为一个整体,当在用户安装此包时把前面获得的hook copyitems源码所有问题和记录的所有操作原原本本的作用的实际系统上。
为一个普通的源码打RPM包,需要下面一些操作,首先需要对项目的Makefile作必要的改造以支持RPM打包操作(实际上此操作不是绝对的,SPEC文档和Makefile的是协调统一工作的,只要他们之间配合好了其他都无所谓,我们一般只是推荐大家尽量按行业标准规范操作而已);其次是针对当前项目撰写SPEC文档,SPEC文档包括了RPM打包过程的操作内容和新生成的RPM包的基本信息等,它的作用对象是打包程序rpmbuild。
四 RPM包制作过程
1 准备打包环境
fedora系统下使用如下命令安装rpmbuild
#yum install rpmbuild
rpmbuild的工作目录如下,
~/rpmbuild
~/rpmbuild/SOURCES
~/rpmbuild/SPECS
~/rpmbuild/BUILD
~/rpmbuild/RPMS
~/rpmbuild/RPMS/i
~/rpmbuild/SRPMS
如果你的用户目录主目录下没有类似目录结构,你可以通过一个工具软件来自动配置和生成,如下。
#yum installrpmdevtools
下了运行自动配置命令自动生成如上目录,并配置一些必要操作。
#rpmdev-setuptree
rpmdev-setuptree命令默认将再当前用户主目录下创建一个RPM构建根目录结构,
如果需要改变次默认位置,可以修改配置文件:~/.rpmmacros中变量_topdir对应的值即可。
一般rpmbuild会在当前用户的主目录下自动建立如上目录结构,如果在你对应用户的构建目录中没有自动建立如上目录,你可以通过手动方式建立。上面目录的使用是这样分配的,SOURCES放置打包资源,包括源码打包文件和补丁文件等;SPECS目录放置SPEC文档;BUILD打包过程中的工作目录;RPMS目录存放生成的二进制包,RPM包根据硬件平台不同分类,i表示生成i结构的包将存放在该目录下;SRPMS目录存放生成的源码包。
2 撰写SPEC文档
SPEC撰写是打包RPM的核心,也算是最难的一步,好在我们可以从参照一个简单的模板文件开始,在可以实现基本功能的基础上再一步一步的扩充文档内容,直至完全达到要求。下面是一个简单的SPEC文档,其中包括了一些说明信息(注:#后面的内容为说明信息),该SPEC文档是对一个测试的软件项目hellorpm写的,hellorpm软件包编译后仅有一个执行文件、一个手册文件和一个项目说文件。
hellorpm.spec文档的内容如下:
-----------------------------------------------------------------------------
#软件包简要介绍
Summary: hellorpm is atest program。
#软件包的名字
Name: hellorpm
#软件包的主版本号
Version:2.2.6
#软件包的次版本号
Release: 1
#源代码包,默认将在上面提到的SOURCES目录中寻找
Source0:%{ name}-%{ version}.tar.gz
#授权协议
License: GPL
#定义临时构建目录,这个地址将作为临时安装目录在后面引用
BuildRoot:%{ _tmppath}/%{ name}-%{ version}-%{ release}-root
#软件分类
Group:Development/Tools
#软件包的内容介绍
%description
The hellorpm programis a test.
#表示预操作字段,后面的命令将在源码代码BUILD前执行
%prep
#构建BUILD环境,将解压源码压缩包到BUILD目录
%setup-q
#BUILD字段,将通过直接调用源码目录中自动构建工具完成源码编译操作
%build
#调用源码目录中的configure命令
./configure
#在源码目录中执行自动构建命令make
make
#安装字段
%install
#调用源码中安装执行脚本
makeDESTDIR=$RPM_BUILD_ROOT install
#文件说明字段,声明多余或者缺少都将可能出错
%files
#设置文件权限属性
%defattr(-,root,root)
#声明/usr/local/bin/hellorpm将出现在软件包中
/usr/local/bin/hellorpm
#声明并设置文件属性
%doc%attr(,root,root) /usr/local/man/man1/hellorpm.1
#同上,声明文档文件
%docREADME
-------------------------------------------------------------------------------
这个文档需要说明的一点:
BuildRoot:%{ _tmppath}/%{ name}-%{ version}-%{ release}-root
上面BuildRoot变量表示的是源码的临时按照目录,rpmbuild就是通过次目录获得将要按照到系统中的所有文件,而在SPEC文档后面make install 命令中的参数DESTDIR=$RPM_BUILD_ROOT即是对该参数的引用,这个参数将传给Makefile文件一告诉自动构建工具应该安装文件那里(实际上我再前文提到过的Makefile需要作一些改造以适应RPM的构建就包括此操作,你的Makefile文件中至少要知道在RPM构建过程中引用此参数的值去控制安装操作的目标)。
如上一个简单的SPEC文档撰写完成,下面把一个名为hellorpm-2.2.6.tar.gz的源码压缩文件放到
rpmbuild根目录下的SOURCES目录下(注,确保此归档文件解压后的目录为hellorpm-2.2.6,否则会有问题)。
到此一个完整的rpm打包环境已经构建完成,下面我们就可以开始构建二进制和源代码RPM包。
3 构建RPM包
构建RPM包是有命令rpmbuild在SPEC的指导下完成。
开始构建操作,首先进入到当前用户的rpmbuild根目录(即上面提到的目录环境)。
#cd ~/rpmbuild/
执行如何命令,-ba表示build all,即生成包括二进制包和源代码包的所有RPM包,下来如果正常的话,rpmbuild将正常退出,同时在RPMS目录和SRPMS目录中将生成对应的RPM包。
#rpmbuild -baSPECS/hellorpm.spec
这里仅仅介绍了一个最简单软件的最简单的RPM的打包操作过程,诸如带有共享文件的需要进行复杂配置的具有复杂依赖关系的等等的项目的打包以及后期的维护,包括补丁的制作我将在下来的时间完成补充更新,今天时间不早了,该休息了!
注:费了大半夜的功夫,搞出这么个令人不满意的文档,我思考着,这样做有多少意义呢?不敢重复发明轮子的,站到巨人的肩膀你才能看得更远,是这样吗?是不是下周开始立个计划,每周至少翻译三篇fedora官网的文档给自己练练手。
yum和apt-get的区别详解
yum和apt-get的区别一般来说著名的linux系统基本上分两大类:
1.RedHat系列:Redhat、Centos、Fedora等
2.Debian系列:Debian、Ubuntu等
RedHat 系列
1 常见的安装包格式 rpm包,安装rpm包的命令是rpm -参数
2 包管理工具 yum
3 支持tar包
Debian系列
1 常见的安装包格式 deb包,安装deb包的命令是dpkg -参数
2 包管理工具 apt-get
3 支持tar包
tar 只是一种压缩文件格式,所以,它只是把文件压缩打包而已。
rpm 相当于windows中的安装文件,它会自动处理软件包之间的依赖关系。
优缺点来说,rpm一般都是预先编译好的文件,它可能已经绑定到某种CPU或者发行版上面了。
tar一般包括编译脚本,你可以在你的环境下编译,所以具有通用性。
如果你的包不想开放源代码,你可以制作成rpm,如果开源,用tar更方便了。
tar一般都是源码打包的软件,需要自己解包,然后进行安装三部曲,./configure, make, make install. 来安装软件。
rpm是redhat公司的一种软件包管理机制,直接通过rpm命令进行安装删除等操作,最大的优点是自己内部自动处理了各种软件包可能的依赖关系。
-------------------------------- *.rpm形式的二进制软件包[centos]
安装:rpm -ivh *.rpm
卸载:rpm -e packgename
rpm -q nginx 查看是否已经安装
升级:rpm -Uvh xxx
查询:
查询所有安装的包: rpm -qa
查询某个包:rpm -qa | grep xxx
rpm -qi xxx
查询软件的安装路径:rpm -ql xxx
rpm -qc xxx
查询某个文件是那个rpm包产生:rpm -qf /etc/yum.conf
rpm -qpi xxx
rpm -qa|grep php 查看已安装的RMP包
安装:rpm -ivh xxx
移除:rpm -e xxx
升级:rpm -Uvh xxx
查询:
查询所有安装的包: rpm -qa
查询某个包:rpm -qa | grep xxx
rpm -qi xxx
查询软件的安装路径:rpm -ql xxx
rpm -qc xxx
查询某个文件是那个rpm包产生:rpm -qf /etc/yum.conf
rpm -qpi xxx
-------------------------------- src.rpm 源代码分发软件包的安装与卸载
Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制代码并进行安装,其优点是配置灵活,可以随意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境,缺点是难度较大,一般不适合初学者使用。
1、*.src.rpm形式的源代码软件包
安装:rpm -rebuild *.src.rpm
cd /usr/src/dist/RPMS
rpm -ivh *.rpm
卸载:rpm -e packgename
说明:rpm rebuild *.src.rpm命令将源代码编译并在/usr/src/dist/RPMS下生成二进制的rpm包,然后再安装该二进制包即可。packgename如前所述。
--------------------------------dpkgubuntu
dpkg -l | grep 'php' 使用dpkg -l 来查看已经安装了的软件
dpkg 是Debian[待宾] Package 的简写。为 Debian 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自Debian的Linux 发行版都使用 dpkg,例如 Ubuntu、Knoppix 等。
以下是一些 Dpkg 的普通用法:
1、dpkg -i package.deb
安装一个 Debian 软件包,如你手动下载的文件。
2、dpkg -c package.deb
列出 package.deb 的内容。
3、dpkg -I package.deb
从 package.deb 中提取包裹信息。
4、dpkg -r package
移除一个已安装的包裹。
5、dpkg -P package
完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。
6、dpkg -L package
列出 package 安装的所有文件清单。同时请看 dpkg -c 来检查一个 .deb 文件的内容。
7、dpkg -s package
显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 .deb 文件中提取的包裹信息。
8、dpkg-reconfigure package
重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。
-------------------------------- 使用yum和apt-get。软件管理方法的升级.
yum的配置文件是/etc/yum.conf
1. 我们来先讲Redhat的yum 这种高级的包管理.
yum install gcc [centos]
更新:yum update
安装:yum install xxx
移除:yum remove xxx
清除已经安装过的档案(/var/cache/yum/):yum clean all
搜寻:yum search xxx
列出所有档案:yum list
查询档案讯息:yum info xxx
#sudo -s
#LANG=C
#yum -y install gcc gcc-c autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel
用YUM安装软件包
yum -y package_name
命令:yum install package_name
用YUM删除软件包
命令:yum remove package_name
yum -y remove httpd
*命令:yum search keyword
列出所有可安装的软件包
命令:yum list
yum list php
*列出所有可更新的软件包
命令:yum list updates
列出所有已安装的软件包
命令:yum list installed
列出所有已安装但不在 Yum Repository 内的软件包
命令:yum list extras
列出所指定的软件包
命令:yum list package_name
yum = Yellow dog Updater, Modified
主要功能是更方便的添加/删除/更新RPM包.
它能自动解决包的倚赖性问题.
它能便于管理大量系统的更新问题
yum特点
可以同时配置多个资源库(Repository)
简洁的配置文件(/etc/yum.conf
自动解决增加或删除rpm包时遇到的倚赖性问题
使用方便
保持与RPM数据库的一致性
yum安装
CentOS 自带(yum-*.noarch.rpm)
#rpm -ivh yum-*.noarch.rpm
在第一次启用yum之前首先需要导入系统的RPM-GPG-KEY:
#rpm --import /usr/share/doc/centos-release-3(4)/RPM-GPG-KEY-CentOS-3(4)
yum指令
注:当第一次使用yum或yum资源库有更新时,yum会自动下载 所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.
rpm包的更新
检查可更新的rpm包
#yum check-update
更新所有的rpm包
#yum update
更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source
大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
#yum upgrade
rpm包的安装和删除
安装rpm包,如xmms-mp3
#yum install xmms-mp3
删除rpm包,包括与该包有倚赖性的包
#yum remove licq
注:同时会提示删除licq-gnome,licq-qt,licq-text
yum暂存(/var/cache/yum/)的相关参数
清除暂存中rpm包文件
#yum clean packages
清除暂存中rpm头文件
#yum clearn headers
清除暂存中旧的rpm头文件
#yum clean oldheaders
清除暂存中旧的rpm头文件和包文件
#yum clearn 或#yum clearn all
注:相当于yum clean packages + yum clean oldheaders
包列表
列出资源库中所有可以安装或更新的rpm包
#yum list
列出资源库中特定的可以安装或更新以及已经安装的rpm包
#yum list mozilla#yum list mozilla
*注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包
列出资源库中所有可以更新的rpm包
#yum list updates
列出已经安装的所有的rpm包
#yum list installed
列出已经安装的但是不包含在资源库中的rpm包
#yum list extras
注:通过其它网站下载安装的rpm包
rpm包信息显示(info参数同list)
列出资源库中所有可以安装或更新的rpm包的信息
#yum info
列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息
#yum info mozilla#yum info mozilla
*注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息
列出资源库中所有可以更新的rpm包的信息
#yum info updates
列出已经安装的所有的rpm包的信息
#yum info installed
列出已经安装的但是不包含在资源库中的rpm包的信息
#yum info extras
注:通过其它网站下载安装的rpm包的信息
搜索rpm包
搜索匹配特定字符的rpm包
#yum search mozilla
注:在rpm包名,包描述等中搜索
搜索有包含特定文件名的rpm包
#yum provides realplay
增加资源库
例如:增加rpm.livna.org作为资源库
安装Livna.org rpms GPG key
#rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY
检查GPG Key
# rpm -qa gpg-pubkey
*显示Key信息
#rpm -qi gpg-pubkey-ab1ec-3f6ed5
(注:如果要删除Key,使用#rpm -e gpg-pubkey-ab1ec-3f6ed5)
yum常用的命令
# yum install xxx 安装xxx软件
# yum info xxx 查看xxx软件的信息
# yum remove xxx 删除软件包
# yum list 列出软件包
# yum clean 清除缓冲和就的包
# yum provides xxx 以xxx为关键字搜索包(提供的信息为关键字)
# yum search xxx 搜索软件包(以名字为关键字)
# yum groupupdate xxx
# yum grouplist xxx
# yum groupremove xxx
这三个都是一组为单位进行升级 列表和删除的操作。。比如 Mysql Database就是一个组会同时操作相关的所有软件包;
# yum update 系统升级
# yum list available 列出所有升级源上的包;
# yum list updates 列出所有升级源上的可以更新包;
# yum list installed 列出已经安装的包;
# yun update kernel 升级内核;
yum常用的源
1) 自动选择最快的源
由于yum中有的mirror速度是非常慢的,如果yum选择了这个mirror,这个时候yum就会非常慢,对此,可以下载fastestmirror插件,它会自动选择最快的mirror:
#yum install yum-fastestmirror
配置文件:(一般不用动)/etc/yum/pluginconf.d/fastestmirror.conf
你的yum镜像的速度测试记录文件:/var/cache/yum/timedhosts.txt
(2)使用图形界面的yum
如果觉得命令行的yum不方便,那么可以使用图形化的yumex,这个看起来更方便,因为可以自由地选择软件仓库:
#yum install yumex
然后在系统工具中就可以看到yum extender了。实际上系统自带的添加/删除程序也可以实现图形化的软件安装,但有些yumex的功能它没有。
2.讲讲Ubuntu中的高级包管理方法apt-get
配置文件/etc/apt/sources.list
对于Server版, 推荐使用aptitude来查看,安装、删除deb包
sudo apt-get install aptitude
然后执行 sudo aptitude 进入管 理
也可以使用命令:
aptitude update 更新可用的包列表
aptitude upgrade 升级可用的包
aptitude dist-upgrade 将系统升级到新的发行版
aptitude install pkgname 安装包
aptitude remove pkgname 删除包
aptitude purge pkgname 删除包及其配置文件
aptitude search string 搜索包
aptitude show pkgname 显示包的详细信息
aptitude clean 删除下载的包文件
aptitude autoclean 仅删除过期的包文件
考虑到系统的兼容性,并且上面的东东比较都大,不找最新版本了,直接用apt-get install XXX 来安装.因为我们的Ubuntu是dailyBulid的,所以光盘的内容基本上都是最新的了,无需重新下载.一定要最新版本的话,不妨先apt-get update 来更新一下软件的仓库,然后再 apt-get install.
常用的APT命令参数:
apt-cache search package 搜索包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package - - reinstall 重新安装包
sudo apt-get -f install 修复安装-f = fix-missing
sudo apt-get remove package 删除包
sudo apt-get remove package - - purge 删除包,包括删除配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends package 了解使用依赖
apt-cache rdepends package 是查看该包被哪些包依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖
CentOS 7升级内核的三种方式(yum/rpm/源码)
在 CentOS 使用过程中,可能需要升级内核以获得性能优化、安全补丁或其他新功能。然而,确保所有程序都支持最新内核版本是关键。本文将介绍三种主要的 CentOS 内核升级方式:使用 yum、rpm 包或源码编译。
**一、通过 yum 安装最新内核
**CentOS 7 中,从内核 3.1 升级至 4.4(具体版本为 4..8),可以通过 yum 工具来完成。首先,导入仓库源并查看可安装的软件包,选择是 ML(mainline stable)还是 LT(long term support)版本。安装新内核后,使用命令调整启动顺序,确保系统在下次启动时使用新内核。
**二、使用 rpm 包安装特定版本内核
**以安装 LT 内核版本 4. 为例,先在 ELRepo 源中查找版本。对于较旧版本内核,可能需要手动下载。下载所需的 rpm 包后,使用 rpm 命令安装新内核。确认已安装的内核版本,并通过设置启动顺序确保系统下次启动时使用新内核。
**三、源码安装内核
**最小化安装 CentOS 7 ,然后准备安装环境。使用 home 下的 kernelbuild 目录创建内核编译目录。从清华大学镜像站获取内核源码,确保下载的是最新版本。解压内核源码,并执行 make 命令进行编译。根据实际需求配置内核选项,然后安装内核并设置启动顺序。
**四、卸载和降级内核
**如果已经安装了较新的内核版本,再安装较旧版本时可能会遇到冲突。可以通过查看当前系统内核版本,列出所有内核并删除不需要的版本来解决。务必在卸载前确认当前系统是否可以正常运行,以免影响系统稳定性。
通过以上方法,可以灵活地在 CentOS 系统中升级、定制或管理内核版本,以适应不同场景的需求。