您的当前位置:首页正文

linux yum命令详解

来源:个人技术集锦
linuxyum命令详解

yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum的命令形式一般是如下:yum[options][command][package...]

其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为\"yes\"),-q(不显示安装的过程)等等。[command]为所要进行的操作,[package...]是操作的对象。

部分常用的命令:

自动搜索最快镜像插件:yuminstallyum-fastestmirror安装yum图形窗口插件:yuminstallyumex查看可能批量安装的列表:yumgrouplist

1安装

yuminstall全部安装

yuminstallpackage1安装指定的安装包package1yumgroupinsallgroup1安装程序组group1

2更新和升级

yumupdate全部更新

yumupdatepackage1更新指定程序包package1yumcheck-update检查可更新的程序

yumupgradepackage1升级指定程序包package1yumgroupupdategroup1升级程序组group1

3查找和显示

yuminfopackage1显示安装包信息package1yumlist显示所有已经安装和可以安装的程序包

yumlistpackage1显示指定程序包安装情况package1

yumgroupinfogroup1显示程序组group1信息yumsearchstring根据关键字string查找安装包

4删除程序

yumremove|erasepackage1删除程序包package1yumgroupremovegroup1删除程序组group1yumdeplistpackage1查看程序package1依赖情况

5清除缓存

yumcleanpackages清除缓存目录下的软件包yumcleanheaders清除缓存目录下的headersyumcleanoldheaders清除缓存目录下旧的headers

yumclean,yumcleanall(=yumcleanpackages;yumcleanoldheaders)清除缓存目录下的软件包及旧的headers

比如,要安装游戏程序组,首先进行查找:

#:yumgrouplist

可以发现,可安装的游戏程序包名字是”GamesandEntertainment“,这样就可以进行安装:

#:yumgroupinstall\"GamesandEntertainment\"

所有的游戏程序包就自动安装了。在这里GamesandEntertainment的名字必须用双引号选定,因为linux下面遇到空格会认为文件名结束了,因此必须告诉系统安装的程序包的名字是“GamesandEntertainment”而不是“Games\"。

此外,还可以修改配置文件/etc/yum.conf选择安装源。可见yum进行配置程序有多方便了吧。更多详细的选项和命令,当然只要在命令提示行下面:manyum

yumgroupinstall\"KDE(KDesktopEnvironment)\"yuminstallpirutk3bmikmod

yumgroupinstall\"ServerConfigurationTools\"yumgroupinstall\"SoundandVideo\"

#yumgroupinstall\"GNOMEDesktopEnvironment\"yumgroupinstall\"LegacySoftwareSupport\"yumgroupinstall\"DevelopmentLibraries\"yumgroupinstall\"DevelopmentTools\"#yumgroupinstall\"WindowsFileServer\"yumgroupinstall\"SystemTools\"yumgroupinstall\"XWindowSystem\"yuminstallphp-gd

yuminstallgd-devel

yumgroupinstall\"ChineseSupport\"

#yuminstallsamba-common//该执行会一起安装samba-client#yuminstallsambayuminstallgccyuminstallcppyuminstallgcc-c++yuminstallncursesyuminstallncurses-develyuminstallgd-develphp-gdyuminstallgd-develyuminstallgccyuminstallcppyuminstallgcc-c++yuminstallncursesyuminstallncurses-develyuminstallgd-develphp-gdyuminstallgd-develyuminstallzlib-devel

yuminstallfreetype-develfreetype-demosfreetype-utilsyuminstalllibpng-devellibpng10libpng10-develyuminstalllibjpeg-develyuminstallImageMagick

yuminstallphp-gdyuminstallflex

yuminstallImageMagick-devel

#yuminstallsystem-config-bind

#yumgroupinstall\"DNSNameServer\"//安裝bind及bind-chroot套件yumgroupinstall\"MySQLDatabase\"'

yumcleanall

-----------------------------------------------------------------------------------------------------------装了个fedoralinux不能用中文输入是一件很棘手的事,连搜解决方案都没法搜。只能勉强用几个拼音碰碰运气,看Google能不能识别了。而我就遇见了这样的事。解决方案:

yuminstallscim*-y

yum命令详解:

Redhat和Fedora的软件安装命令是rpm,但是用rpm安装软件最大的麻烦就是需要手动寻找安装该软件所需要的一系列依赖关系,超级麻烦不说,要是软件不用了需要卸载的话由于卸载掉了某个依赖关系而导致其他的软件不能用是非常恼人的。令人高兴的是,Fedora终于推出了类似于ubuntu中的apt的命令yum,令Fedora的软件安装变得简单容易。Yum有以下特点:

*可以同时配置多个资源库(Repository)*简洁的配置文件(/etc/yum.conf)

*自动解决增加或删除rpm包时遇到的倚赖性问题

*使用方便

*保持与RPM数据库的一致性

yum,是YellowdogUpdaterModified的简称,起初是由yellowdog这一发行版的开发者TerraSoft研发,用python写成,那时还叫做yup(yellowdogupdater),后经杜克大学的Linux@Duke开发团队进行改进,遂有此名。yum的宗旨是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决。yum的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http或ftp站点,也可以是本地软件池,但必须包含rpm的header,header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些header并加以分析,才能自动化地完成余下的任务。

1.yum的配置信息

yum的一切配置信息都储存在一个叫yum.conf的配置文件中,通常位于/etc目录下,这是整个yum系统的重中之重,我在的F9中查看了这一文件,大家一起来看下:[hanlong@localhostF9常用文档]$sudomore/etc/yum.conf[main]

cachedir=/var/cache/yumkeepcache=0debuglevel=2

logfile=/var/log/yum.logexactarch=1obsoletes=1gpgcheck=1plugins=1

metadata_expire=1800

#PUTYOURREPOSHEREORINseparatefilesnamedfile.repo#in/etc/yum.repos.d

下面简单的对这一文件作简要的说明:

cachedir:yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum。

debuglevel:除错级别,0──10,默认是2

logfile:yum的日志文件,默认是/var/log/yum.log。

exactarch,有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设为1,则如你安装了一个i386的rpm,则yum不会用686的包来升级。

gpgchkeck=有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认好像也是检查的。

2.yum的使用了

首先用yum来升级软件,yum的操作大都须有超级用户的权限,当然可以用sudo。yumupdate,这一步是必须的,yum会从服务器的header目录下载rpm的header,放在本地的缓存中,这可能会花费一定的时间,但比起yum给我们带来方便,这些时间的花费又算的了什么呢?header下载完毕,yum会判断是否有可更新的软件包,如果有,它会询问你的意见,是否更新,还是说y吧,把系统始终uptodate总是不错的,这时yum开始下载软件包并使用调用rpm安装,这可能要一定时间,取决于要更新软件的数目和网络状况,万一网络断了,也没关系,再进行一次就可以了。升级完毕,以后每天只要使用yumcheck-update检查一下有无跟新,如果有,就用yumupdate进行跟新,时刻保持系统为最新,堵住一切发现的漏洞。用yumupdatepackagename对某个单独包进行升级。

现在简单的把yum软件升级的一些命令罗列一下:

(更新:我在安装wine的时候是用rpm一个一个安装的,先安装以来关系,然后在安装wine的主包,但是刚刚在论坛上发现来一个好的帖子,就yum的本地安装。参数是-localinstall

$yumlocalinstallwine-*

这样的话,yum会自动安装所有的依赖关系,而不用rpm一个一个的安装了,省了好多工作。

还有一个与他类似的参数:$yumlocalupdatewine-*

如果有wine的新版本,而且你也下载到来本地,就可以这样本地更新wine了。)

1.列出所有可更新的软件清单命令:yumcheck-update

2.安装所有更新软件命令:yumupdate

3.仅安装指定的软件命令:yuminstall

4.仅更新指定的软件命令:yumupdate

5.列出所有可安裝的软件清单命令:yumlist

3.使用yum安装和卸载软件

有个前提是yum安装的软件包都是rpm格式的。

安装的命令是,yuminstallxxx,yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断

删除的命令是,yumremovexxx,同安装一样,yum也会查询数据库,给出解决依赖关系的提示。

1.用YUM安装软件包命令:yuminstall2.用YUM删除软件包命令:yumremove

4.用yum查询想安装的软件

我们常会碰到这样的情况,想要安装一个软件,只知道它和某方面有关,但又不能确切知道它的名字。这时yum的查询功能就起作用了。你可以用yumsearchkeyword这样的命令来进行搜索,比如我们要则安装一个InstantMessenger,但又不知到底有哪些,这时不妨用yumsearchmessenger这样的指令进行搜索,yum会搜索所有可用rpm的描述,列出所有描述中和messeger有关的rpm包,于是我们可能得到gaim,kopete等等,并从中选择。

有时我们还会碰到安装了一个包,但又不知道其用途,我们可以用yuminfopackagename这个指令来获取信息。1.使用YUM查找软件包命令:yumsearch2.列出所有可安装的软件包命令:yumlist

3.列出所有可更新的软件包

命令:yumlistupdates4.列出所有已安装的软件包命令:yumlistinstalled

5.列出所有已安装但不在YumRepository內的软件包命令:yumlistextras6.列出所指定的软件包

命令:yumlist7.使用YUM获取软件包信息命令:yuminfo8.列出所有软件包的信息命令:yuminfo

9.列出所有可更新的软件包信息命令:yuminfoupdates10.列出所有已安裝的软件包信息命令:yuminfoinstalled

11.列出所有已安裝但不在YumRepository內的软件包信息命令:yuminfoextras12.列出软件包提供哪些文件命令:yumprovides

5.清除YUM缓存

yum会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yumclean指令进行清除,更精确的用法是yumcleanheaders清除header,yumcleanpackages清除下载的rpm包,yumcleanall清除所有

1.清除缓存目录(/var/cache/yum)下的软件包命令:yumcleanpackages

2.清除缓存目录(/var/cache/yum)下的headers命令:yumcleanheaders

3.清除缓存目录(/var/cache/yum)下旧的headers命令:yumcleanoldheaders

4.清除缓存目录(/var/cache/yum)下的软件包及旧的headers

命令:yumclean,yumcleanall(=yumcleanpackages;yumcleanoldheaders)

以上所有命令参数的使用都可以用man来查看:1、安装图形版yumex:yuminstallyumex。2、安装额外的软件仓库:rpm.livna.org的软件包仓库:

rpm-ivhhttp://livna-dl.reloumirrors.net…ease-7-2.noarch.rpm

freshrpms.net的软件包仓库:

rpm–ivhhttp://ftp.freshrpms.net/pub/fre…1.1-1.fc.noarch.rpm3、安装最快源yuminstallyum-fastestmirror

资源真的是非常丰富,从Centos到Ubuntu,ISO镜像、升级包,应有尽有,上交的兄弟们真是幸福,羡慕啊。不过还好,我们好歹也算是在教育网内,凑合着也可以沾点光,下载一些。

网址为:ftp://ftp.sjtu.edu.cn/

相应的yum的repo为[updates]

name=Fedoraupdates

baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/updates/$releasever/$basearch/enabled=1gpgcheck=0[fedora]

name=Fedora$releasever-$basearch

baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/releases/$releasever/Everything/$basearch/os/enabled=1gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedorafile:///etc/pki/rpm-gpg/RPM-GPG-KEY

如果在机器上安装了apt管理器,则相应的源为

repomdftp://ftp.sjtu.edu.cn/fedora/linux/updates/$(VERSION)/$(ARCH)/

repomd

ftp://ftp.sjtu.edu.cn/

fedora/linux/releases/$(VERSION)/Everything/$(ARCH)/os/

这与前面yum的源的格式上有一些差别,需要加以注意。

下面介绍一下fedora下安装scim1.什么输入法适合我?

fcitx和scim是目前比较好的输入法,但是他们的特点不同,fcitx只能输入中文,而scim可以根据需要,利用不同的码表达到中英日…等等各种语言的输入问题。如果你只懂中文,或者只会输入英文&中文,那么fcitx是一个不错的选择,因为它漂亮,小巧,实用。如果你还需要输入日文或者其他语言,那么你因该安装scim。通过合理的配置,他能够让

你像在windows里面一样,想输入什么语言就能输入什么语言,同一种语言想用什么输入法就用什么输入法。Scim的扩充性很强,而且比较稳定,我就是选择的是scim.

2.安装一个新输入法前需要哪些准备?

如果你选择fcitx或者scim,那么我建议你删除系统自带的中文输入法。方法如下:rpm–qa|grepiiimf|xargsrpm–erpm–qa|grepChinput|xargsrpm–e

如果有哪一行提示rpm:nopackagesgivenforerase那表示本身你的系统里面没有该

输入法,不用担心,继续往下看就行了。

说明:rpm–qa是列出所有安装的rpm包,grepiiimf是选择出其中名字含有iiimf的那些包,xargsrpm–e的意思是把前面列出的这些包删除掉。Xargs的作用就是把前面通过|传过来的数据作为下面命令的参数。这就好比一个过滤器,首先是放着所有的安装包,然后grep以后,只留下了含有某些特定关键字的rpm包,然后通过xargs和rpm–e的组合运用,把剩下的这些含有某特定关键字的包删掉。这样就达到了删除该输入法及相关包的目的。下面的Chinput也是如此,在此不再重复。如果你还安装了其他输入法,比如你原来装的是fcitx,现在想装scim,那么你最好模仿上面的样子把fcitx删除,方法就是把iiimf的位置改成fcitx就可以了。

在安装新输入法之前,最好这样做一下,因为多种输入法同时存在一个系统中没有什么好处,你只可能去用一个,而且他们同时存在可能有的时候会出现问题,想想也知道,会互相竞争嘛。所以在此以后,你应该保证系统里面已经没有中文输入法了。通过类似以下方式验证:whereisfcitxwhereisscimwhereisminiChinput…

3.输入法是何时被系统调用的?

很多人不知道输入法到底什么时候被load进来,不知道这个当然就不知道为什么有的时候呼不出输入法(因为可能根本没有调入)当然也不会知道如何配置能够符合自己的要求。大家都知道,linux下面比较常用的有两个桌面系统,gnome和kde,这都无所谓,他们其实都是架在X系统之上的。简单的说X系统就是一个最核心,也是最底层的桌面系统,gnome也好,kde也罢,或者其他的什么fvwm之类的,都只不过是X系统和用户之间的另一层软件而已。所以要想达到不管使用什么桌面系统,都能调入输入法,就是要在X系统启动的时候,让输入法也启动起来,那么这样之后,无论你使用的是gnome还是kde或者其他什么桌面,都能够调入输入法。因为当轮到他们启动的时候,X系统已经启动好了,输入法已经被系统调入了。那么X系统又是如何启动的呢?让我们从startx开始说起。无论你用什么桌面系统,都是通过startx启动的,那么startx究竟是什么呢?一个应用程序还是一个脚本文件?为什么它能够启动各种桌面系统,并且能够按照相应的配置文件来设置呢?带着疑问,我在console里面输入whereisstartx.

在找到了存放startx的路径以后,用编辑器打开它发现原来是一个脚本文件。这个脚本文件的内容可能根据发行版不同,会有差异,如果你懂一些shell的语言,那么你可以尝试看看,不一定要全部看懂,但是你大致看过以后会发现最后有一个xinit的命令,然后跟着一些参数。我尝试在console下面输入xinit(注意,不要在图形界面下做此操作)发现图形界面启动拉,但是很丑陋,什么功能都没有,鼠标可以动,还有一个可以输入命令的小窗口。怎么退出来?ctrl+alt+backspace.原来如此,startx只是一个脚本,里面通过对一系列配置文件的分析设置,最终利用xinit命令启动图形界面。不管是kde还是gnome,都是在这个脚本中完成的。那么让我们再打开startx脚本看看里面还做了些什么。你仔细看看,会发现有一个东西很显眼,就是/etc/X11/xinit/xinitrc,这个xinitrc好像很眼熟,在配置输入法的其他贴中总是看到,这里出现了肯定是里面运行了这个脚本。再看其他的一些东西,其实都是利用shell配置出一个xinit启动的参数,用来配置桌面系

统用的,不用管它。目前已知的就是startx的时候它会去执行一个/etc/X11/xinit/xinitrc的脚本,让我们打开来看看里面有什么。

打开一看,其中一段我觉得最有价值,是一个for循环,他依次执行了/etc/X11/xinit/xinitrc.d/下面的所有脚本。你可以耐心的找一下,一定可以发现。那么这个目录里面有些什么内容呢?有一个文件看名字就知道和输入相关,他叫xinput。等等,让我们理一下,是怎么从startx到xinput的。

首先是执行startx这个脚本文件,里面他会执行xinitrc这个脚本,然后xinitrc脚本里面的,叫xinput。OK,我们继续,打开xinput看看。

4.安装软件包

rpm-Uvhscim-0.8.2-1.i586.rpm

rpm-Uvhscim-chinese-0.2.6-1.i586.rpm

5.修改配置文件

接下来重要的一步就是,修改一下/etc/X11/xinit/xinitrc.d/xinput文件,让SCIM在X启动的时候也启动。我看到网上很多文章也说过,但总是不得要领,经过自己试验,最简单的就是把xinput文件里的Chinput全部替换为SCIM,chinput替换为scim,保存重启X就可以了。zh_CN*)

if[-e/usr/bin/scim];thenXIM=\"SCIM\"

elif[-e/usr/X11R6/bin/xcin];thenexportLC_CTYPE=zh_CN.GB2312XIM=\"xcin-zh_CN.GB2312\"fi

;;

..............................SCIM)

XIM_PROGRAM=scimXIM_ARGS=\"-d\";;

然后修改/etc/gtk-2.0/gtk.immodules,找到这一行:

\"xim\"\"XInputMethod\"\"gtk20\"\"/usr/share/locale\"\"ko:ja:zh\"改为:

\"xim\"\"XInputMethod\"\"gtk20\"\"/usr/share/locale\"\"en:ko:ja:zh\"

可能表示输入英文时也使用该输入法

安装完毕后运行scim-setup,将输入法的切换键改为ctrl+space

因篇幅问题不能全部显示,请点此查看更多更全内容