Linux下的软件安装与管理
源码安装一般有以下几个步骤组成: 下载解压源码 -->分析安装平台环境(configure)-->编译安装软件(make、make install)
Linux常用的软件包类型或格式有:可执行的RPM与DEB、源代码形式的gzip与bzip2压缩包。
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― RPM(RedHat Package Manager),红帽软件包工具
1.安装与卸载RPM包 对于rpm软件包的安装,可以使用<rpm -i 软件包名称>来进行安装,但是该命令默认选项为静默式安装,如果想要了解安装过程中的消息,使用-v来显示详细的信息,-h来显示安装进度(安装进度以#表示);
对于rpm软件包的卸载,可以使用<rpm -e 软件包名称>来进行卸载;
对于rpm软件包的升级,可以使用<rpm -U 软件包名称>,rpm会删除旧版本的软件(仅保留配置文件),再安装新的软件版本。
2.软件包的信息查询 <rpm -q>: -q:查看软件包是否已经安装 -qa:查询系统中已经安装的所有软件 -qi:查询指定安装包的详细信息 -qc:查询指定软件的配置文件 -ql:查询指定软件的安装路径与文件列表 -qf:查询指定文件为哪个软件所安装 选项可以组合,如:rpm -qpi xxx,使用rpm-q的格式进行查询仅针对已经安装的软件,如果你希望知道某个尚未安装的软件包的详细信息,则可以使用rpm-qp的方式查询。
3.安全认证 RPM提供的验证功能可以随时追踪软件的状态,当软件被人篡改时,rpm -v会提示该软件哪些状态被修改,未被篡改的不会显示。
rpm -V命令可能显示出的提示字符及含义: 5:MD5值已经改变 S:文件大小已经改变 L:链接文件源已经改变 T;文件最后修改时间已经改变 D:设备改变 U:用户发生变化 G:组发生变化 M:包括权限与类型在内的模式已经改变 ?:不可读的文件
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― YUM(Yellowdog Updater Modified):
Yellowdog是一款发行版linux,使用rpm作为默认的程序包管理工具,很好的解决了RPM所面临的软件包依赖关系。使用YUM安装软件时至少需要一个YUM源,YUM源就是一个存放有很多RPM软件的文件夹,用户可以HTTP、FTP或本地文件夹的方式询问YUM源。 yum的配置: yum的配置文件由主配置文件/etc/yum.conf、资源库配置目录/etc/yum.repo.d。centos6.7的默认YUM源定义文件就存放在 /etc/yum.repos.d/目录下,我们可以自行定义任意可以使用的YUM源,但文件名的扩展名必须是.repo,CentOS-Base.repo vim打开: [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
/etc/yum.config的相关内容 [main] cachedir=/var/cache/yum/$basearch/$releasever#cachedir:yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum。 keepcache=0 debuglevel=2#debuglevel:除错级别,0──10,默认是2貌似只记录安装和删除记录 logfile=/var/log/yum.log exactarch=1#exactarch,有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设为1,则如你安装了一个i386的rpm,则yum不会用1686的包来升级 obsoletes=1 gpgcheck=1#gpgchkeck=有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认是检查的。 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release
几个变量 $releasever,发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。 $arch,cpu体系,如i686,athlon等 $basearch,cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha
.repo文件该如何定义: [repositoryid] name=Full name of repository baseurl=schema1://hostname/PATH/TO/REPODATA schema2://hostname/PATH/TO/REPODATA schema3://hostname/PATH/TO/REPODATA schema4://hostname/PATH/TO/REPODATA schema: http[s]、ftp、nfs:网络服务器指向 file:本地服务器指向 #mirrorlist=mirror_url enabled={0|1},0表示禁用此仓库指向,1表示启用;如果没有enabled语句,默认为启用状态; gpgcheck={0|1},0表示不进行程序包认证,1表示认证;如果为1,需要指定认证所需要的公钥文件,需要使用gpgkey语句; gpgkey=schema://hostname/PATH/TO/PUBLIC_KEY_FILE 例子:gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever
failovermethod={roundrobin|priority} 故障倒换方法: roundrobin:随机查找,默认的方法; priority:按照顺序依次选择 enablegroups={1|0} cost=num,默认所有仓库的开销值都是1000;
一般的repo指向内容: [repoid] name= baseurl= #mirrorlist= enbaled=1 gpgcheck=0 #gpgkey=
YUM的相关命令: yum [选项] [指令] [软件包...] 选项: -y:执行非交互式安装,安装过程中所有的提示回答yes
-quiet:安静模式,在某一次yum执行过程中,没有任何信息输出到stdout;
-enablerepo=repoidglob -disablerepo=repoidglob 在某一次yum执行过程中明确的规定启用或禁用某个repository指向;在使用了这样的选项之后,仓库指向文件中的enabled语句的作用将失效;
-noplugins: 在某一次yum执行过程中,明确指出不使用任何插件;
--nogpgcheck: 在某一次yum执行过程中,明确指出不验证程序包完整性,在仓库指向文件中的gpgcheck=1语句会失效;
指令: * install package1 [package2] [...] 安装程序包 注意: 1.如果只是给出程序包名称,yum搜索所有仓库,并找到最新版本缓存安装; 2.如果给出程序包的名称及版本,则查找安装指定版本的程序包; 3.如果给出的程序包是完整的程序包名,则只是查找某一个程序包; 4.程序包名称可以使用globbing,(* ? [] [^])
* update [package1] [package2] [...] * update-to [package1] [package2] [...] * check-update * upgrade [package1] [package2] [...] * upgrade-to [package1] [package2] [...] * downgrade package1 [package2] [...] 程序包升级或降级: 程序包不同版本之间的更迭;
* remove | erase package1 [package2] [...] 卸载程序包:
* list [...] yum list LIST OPTIONS LIST OPTIONS: all: 显示所有的程序包,包括已经安装的和尚未安装但可用的; 注意: anaconda:CentOS系统的安装器,在安装操作系统的时候一并安装的程序包; installed:显示所有已经安装的程序包; available:显示所有尚未安装但可以安装的程序包; updates:显示所有可以升级更新的程序包;
* info [...] yum info LIST OPTIONS LIST OPTIONS: all: 显示所有的程序包,包括已经安装的和尚未安装但可用的; 注意: anaconda:CentOS系统的安装器,在安装操作系统的时候一并安装的程序包; installed:显示所有已经安装的程序包; available:显示所有尚未安装但可以安装的程序包; updates:显示所有可以升级更新的程序包;
name[globbing]
* provides | whatprovides feature1 [feature2] [...] 查看指定的特性是由哪个程序包提供的;
* clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] 清理本地缓存信息
* makecache 构建缓存
* groupinstall group1 [group2] [...] * groupupdate group1 [group2] [...] * grouplist [hidden] [groupwildcard] [...] * groupremove group1 [group2] [...] * groupinfo group1 [...] 程序包组的管理命令:
* search string1 [string2] [...] 根据关键字进行匹配,默认情况下,搜索程序包名称及汇总信息; 模糊搜索
* shell [filename] 给yum提供一个交互式命令的操作界面
* localinstall rpmfile1 [rpmfile2] [...] (maintained for legacy reasons only - use install) * localupdate rpmfile1 [rpmfile2] [...] (maintained for legacy reasons only - use update) 实现本地程序包安装,即:不依赖于软件仓库,直接对rpm格式包文件进行操作; 这两个命令已经被停用,使用install和update取代;
* reinstall package1 [package2] [...] 重新安装
* deplist package1 [package2] [...] 显示每个程序包所有的依赖关系;
* repolist [all|enabled|disabled] 列表显示yum仓库的元数据信息 在没有给出后面的参数的时候,默认为enabled;
* version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]
* history [info|list|packages-list|packages-info|summary|addon- info|redo|undo|rollback|new|sync|stats] 查看yum事务的历史; 安装、升级、卸载等操作的时候,yum会开启事务;
* load-transaction [txfile] 重新启动已经停止的事务;
* check
* help [command]
几个不错的官方的文件服务器或者镜像站点:http://mirrors.aliyun.comhttp://mirrors.sohu.comhttp://mirrors.163.comhttps://mirrors.tuna.tsinghua.edu.cnhttp://mirrors.hust.edu.cn (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|