五天学redhat之
其实这个要放在系统安装完之后的第一篇!明明是刚做完系统,RHEL本身是付费的,我们没有现在更新的权利,要好多$呀!!那么我们为了解决这个问题,可以做一个本地YUM源,就是安装rpm的库.。redhat跟centos用的是rpm的包管理工具,而debian,ubuntu系列的是用deb作为包管理工具。我们这里重点的是rpm,yum. rpm(rpm package manager)rpm包管理工具。那RPM仅适用用RPM格式来打包的软件。RPM可以集成来linux发行版(redhat),也可以独立以应用软件发行(gentoo).
rpm历史:rpm最早是redhat公司搞出来的东西,那redhat上应用。发展到现在已经应用到了很多GNU/linux的发行版中。
RPM原名其实是(redhat package manager)后来才更名至 (rpm package manager)
rpm的内容其实很多,我仅提供一些资源方便大家深入学习。
redhat doc:developent part2
rpm repo : http://rpm.pbone.net/ //下载rpm包
rpm site: rpm 文档区
我们只先记住几个最常用的命令:
# rpm -qa | grep vsftpd
vsftpd-2.2.2-11.el6.x86_64 //查找包是否被安装
# rpm -ql vsftpd-2.2.2-11.el6.x86_64 //然后根据上一步的输出,来查看这个包里面到底有神东西。这个输出的东西太多了我找一个少的。
我要查看某个文件是属于那个rpm包的。
# rpm -qf /etc/passwd
setup-2.8.14-16.el6.noarch
//再看这个包里面是什么东西。里面装的都是系统很重要的配置文件!!!
# rpm -ql setup-2.8.14-16.el6.noarch
/etc/aliases
/etc/bashrc
/etc/csh.cshrc
/etc/csh.login
/etc/environment
/etc/exports
/etc/filesystems
/etc/fstab
/etc/group
/etc/gshadow
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/inputrc
/etc/motd
/etc/mtab
/etc/passwd
/etc/printcap
/etc/profile
/etc/profile.d
/etc/protocols
/etc/securetty
/etc/services
/etc/shadow
/etc/shells
/usr/share/doc/setup-2.8.14
/usr/share/doc/setup-2.8.14/COPYING
/usr/share/doc/setup-2.8.14/uidgid
/var/log/lastlog
安装RPM包
apm -ivh xxx.rpm
我提供一个思路,要整体学习RPM最后的建议是先用好基本命令,然后学会使用YUM工具,最后学会自己打包RPM。完成RPM包的制作。那样就有最直观的应用,不会过于在命令上纠结了。
Yum:yellow dog update .该系统基于rpm和一个reopdata的数据列表的库。yum可以调用多个库来解决依赖关系,获取rpm数据和需要安装的软件包。这个是学习RPM的很好的工具。
1. rpm 的前端程序
2. 用来解决软件包的依赖关系
3. 可以再多个库之间定位软件包
4. up2date的替代工具
但是你要明白,yum只是代替rpm工具来做事,装的还是rpm包,只是他的功能给我们用的人带了很多的方便。安装,删除软件。包括制作本地的yum源,网络更新的yum,而且他的命令风格跟RPM很相似。
那么我们从装完机器开始!
第一步:因为redhat是付费版的没办法RHN在线更新,那我们就用yum做一个本地更新的yum源。
前提是要把光盘挂在到/mnt下面:# mount Documents/rhel-server-6.2-x86_64-dvd.iso /mnt -o loop
然后运行:
cat >/etc/yum.repos.d/base.repo<<EOF
name=rhel
baseurl=file:///mnt/Server
gpgcheck=0
EOF
更新repo
# yum list//会读取repo文件的内容,将数据库记入到yum中。
然后我更新一下 看看有没有包要更新
# yum check-update
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
Updating certificate-based repositories.
base | 4.0 kB 00:00
我安装一个小程序
# yum install tightvnc
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
Updating certificate-based repositories.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package tigervnc.x86_64 0:1.0.90-0.17.20110314svn4359.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository
Size
================================================================================
Installing:
tigervnc x86_64 1.0.90-0.17.20110314svn4359.el6 base 260 k
Transaction Summary
================================================================================
Install 1 Package(s)
Total download size: 260 k
Installed size: 651 k
Is this ok : y
Downloading Packages:
tigervnc-1.0.90-0.17.20110314svn4359.el6.x86_64.rpm | 260 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : tigervnc-1.0.90-0.17.20110314svn4359.el6.x86_64 1/1
Installed products updated.
Installed:
tigervnc.x86_64 0:1.0.90-0.17.20110314svn4359.el6
Complete!
#
整个的安装过程是 加载插件,启动验证,启动安装,解决依赖,下载安装包,确定安装,安装测试,安装成功。整个过程看上面的输出大体就知道什么样的情况了,再说明一下:包的信息大家要注意哦,arch,repo,version等。
安装完之后,如果要检查此包是否有更新,那么:
# yum check-update
如果有tightvnc
yum update tightvnc // package_name
那更新所有就是
直接yum update就可以了。
找你想要的包
有现成的包名给你当然好装了,但是如果要你找包,找到了再装,或者是已经装了某个包,但不知道名字。
第二个功能强大一点,只要跟tftp有关的包都会被列出来,而第一个的话就列出包名含有tftp的。
# yum search tftp
# yum search all tftp
这是我经常用的命令,列出所有的包,然后在查找。
# yum list | grep tftp
tftp.x86_64 0.49-7.el6 @base
tftp-server.x86_64 0.49-7.el6 @base
这个命令支持正则表达式
# yum list abrt-addon\* abrt-plugin\*
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
Updating certificate-based repositories.
Installed Packages
abrt-addon-ccpp.x86_64 2.0.4-14.el6 @anaconda-RedHatEnterpriseLinux-201009221801.x86_64/6.2
abrt-addon-kerneloops.x86_64 2.0.4-14.el6 @anaconda-RedHatEnterpriseLinux-201009221801.x86_64/6.2
abrt-addon-python.x86_64 2.0.4-14.el6 @anaconda-RedHatEnterpriseLinux-201009221801.x86_64/6.2
#
再来几个常用的命令
# yum list installed
# yum list all
//列出已经安装的安装包
# yum list installed "krb?-*"
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
Updating certificate-based repositories.
Installed Packages
krb5-libs.x86_64 1.9-22.el6 @anaconda-RedHatEnterpriseLinux-201009221801.x86_64/6.2
krb5-workstation.x86_64 1.9-22.el6 @anaconda-RedHatEnterpriseLinux-201009221801.x86_64/6.2
//列出可用的,的安装包。
# yum list available gstreamer\*plugin\*
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
Updating certificate-based repositories.
Available Packages
gstreamer-plugins-bad-free.i686 0.10.19-2.el6 base
gstreamer-plugins-base.i686 0.10.29-1.el6 base
gstreamer-plugins-base-devel.i686 0.10.29-1.el6 base
gstreamer-plugins-base-devel.x86_64 0.10.29-1.el6 base
gstreamer-plugins-good.i686 0.10.23-1.el6 base
特别说一下,yum还有一个功能就是包组的管理。这个很好用的。比如说,我要装一个apache服务器,那么我要装很多个包,但是我如果用包组进行安装的话,只需要安装一个包组所有的依赖包都会全部安装上去。
安装KDE桌面
# yum -v grouplist kde\*
Not loading "rhnplugin" plugin, as it is disabled
Not loading "blacklist" plugin, as it is disabled
Loading "product-id" plugin
Loading "refresh-packagekit" plugin
Loading "security" plugin
Loading "subscription-manager" plugin
Not loading "whiteout" plugin, as it is disabled
Updating certificate-based repositories.
Config time: 0.065
Yum Version: 3.2.29
Setting up Group Process
rpmdb time: 0.001
group time: 0.163
Available Groups:
KDE 桌面 (kde-desktop)
Done
yum groupinstall group_name
yum groupinstall groupid
yum install @group
~]# yum groupinstall "KDE Desktop"
~]# yum groupinstall kde-desktop
~]# yum install @kde-desktop
用以上任何的一个命令都可以安装哦。
查看包的信息
在查找依赖的时候 ,最麻烦的就是版本的问题了,什么库要大于哪个哪个,要去找对应版本的包。
# yum info tftp
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
Updating certificate-based repositories.
Installed Packages
Name : tftp
Arch : x86_64
Version : 0.49
Release : 7.el6
Size : 45 k
Repo : installed
From repo : base
Summary : The client for the Trivial File Transfer Protocol (TFTP)
URL : http://www.kernel.org/pub/software/network/tftp/
License : BSD
Description : The Trivial File Transfer Protocol (TFTP) is normally used only
: for booting diskless workstations. The tftp package provides the
: user interface for TFTP, which allows users to transfer files to
: and from a remote machine. This program and TFTP provide very
: little security, and should not be enabled unless it is expressly
: needed.
这个命令跟rpm -q --info package_name,的输出的很相似的。
还有一个命令。
# yumdb info tftp
Loaded plugins: product-id, refresh-packagekit
tftp-0.49-7.el6.x86_64
checksum_data = 1d617eb42497772e4663232d84413e1b98270cd2d6ada61549c2d8b14a270f2f
checksum_type = sha256
command_line = -y install dhcp xinetd tftp vsftp nfs
from_repo = base
from_repo_revision = 1321545989
from_repo_timestamp = 1321546519
installed_by = 0
reason = user
releasever = 6Server
列出的是数据库里面的信息。这个没怎么用过。
删除包及包组。
这个很简单,把install 或者groupinstall 改成remove 或者groupremove就可以了。
~]# yum groupremove "KDE Desktop"
~]# yum groupremove kde-desktop
~]# yum remove @kde-desktop
这几个命令都可以完成KDE的删除。
差不多这些命令,如果都能掌握就能完成常的包的管理,要实现一些高级的功能,文档部分已经给出链接,可以自己做一做RPM包,有公网IP的朋友可以试着搭建一个共享的yum源等等,还有一些命令的高级选项,都是要我们不断的去积累实践才能吸收。更高级的东西,知识储备我也不够只能跟大家分享这么多。我不提倡被命令,那样很痛苦。要体会他们取这个名字的用意,然后你就知道原来是这样子,嘿嘿。
页:
[1]