利用网络来直接进行在线的升级行为!
[root@linux ~]# vi /etc/yum.repos.d/CentOS-Base.repo [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch &repo=os&cc=tw # 注意!上面两行是同一行! gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 #released updates [update] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch &repo=updates&cc=tw # 注意!上面两行是同一行! gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 ......(底下省略)..... |
[root@linux ~]# yum [option] [工作项目] [套件] 参数: option:主要的参数,包括有: -y :当 yum 询问用户的意见时,主动回答 yes 而不需要由键盘输入; --installroot=/some/path :安装在其他的路径,而不在目前目录树的架构中; 对于创建虚拟机相当有帮助!不过,一般用户应该用不到。 [工作项目]:由于不同的使用条件,而有一些选择的项目,包括: install :指定安装的套件名称,所以后面需接『 套件名称 』 update :进行整体升级的行为;当然也可以接某个套件,仅升级一个套件; remove :移除某个套件,后面需接套件名称; search :搜索某个套件或者是重要关键字; list :列出目前 yum 所管理的所有的套件名称与版本,有点类似 rpm -qa; info :同上,不过有点类似 rpm -qai 的运行结果; clean :下载的文件被放到 /var/cache/yum ,可使用 clean 将他移除, 可清除的项目:packages | headers | metadata | cache 等; 另外,在[工作项目]部分还可以具有整个群组套件的安装方式,如下所示: grouplist :列出所有可使用的『套件组』,例如 Development Tools 之类的; groupinfo :后面接 group_name,则可了解该 group 内含的所有套件名; groupinstall:这个好用!可以安装一整组的套件群组,相当的不错用! 更常与 --installroot=/some/path 共用来安装新系统 groupupdate :升级整个套件群组; groupremove :移除某个套件群组; 范例一:搜索 CentOS 的更新主机上是否有 RAID 磁盘数组相关套件? [root@linux ~]# yum search raid .....前面省略..... mdadm.i386 1.6.0-3 base Matched from: mdadm controls Linux md devices (software RAID arrays) mdadm is used to create, manage, and monitor Linux MD (software RAID) .....后面省略..... # 看到否?输出数据的特殊字体那一行就显示了你可以安装的套件名称然后你可以这样: [root@linux ~]# yum info mdadm Name : mdadm Arch : i386 Version: 1.6.0 Release: 3 Size : 84 k Repo : base Summary: mdadm controls Linux md devices (software RAID arrays) Description: .....后面省略..... # 瞧一瞧啊!套件的版本名称、数据大小、还有该套件出处 (base)! # 需要注意看的是 Summary 与 Description 这两个注意事项内容! |
范例二:安装某个套件吧!以 mdadm 为例: [root@linux ~]# rpm -q mdadm package mdadm is not installed # 鸟哥的主机并没有安装这个玩意儿~所以底下开始安装先! [root@linux ~]# yum install mdadm Setting up Install Process Setting up repositories update 100% |=========================| 951 B 00:00 base 100% |=========================| 1.1 kB 00:00 addons 100% |=========================| 951 B 00:00 extras 100% |=========================| 1.1 kB 00:00 # 上面这个阶段在读取 RPM 文件的档头数据; --> Populating transaction set with selected packages. Please wait. ---> Downloading header for mdadm to pack into transaction set. mdadm-1.6.0-3.i386.rpm 100% |=========================| 8.2 kB 00:00 ---> Package mdadm.i386 0:1.6.0-3 set to be updated --> Running transaction check # 上面这个阶段则是在下载文件以及准备更新的阶段 Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: mdadm i386 1.6.0-3 base 84 k Transaction Summary ============================================================================= Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 84 k Is this ok [y/N]: y # 至于这个阶段则在分析相依属性,并且让用户确认下载开始 wnloading Packages: (1/1): mdadm-1.6.0-3.i386 100% |=========================| 84 kB 00:00 Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: mdadm ######################### [1/1] Installed: mdadm.i386 0:1.6.0-3 Complete! # 最终则下载与安装的结果! |
[root@linux ~]# yum clean packages
Cleaning up Packages
2 packages removed
|
[root@linux ~]# yum -y update
|
范例三:查找与安装『套件群组』 [root@linux ~]# yum grouplist Installed Groups: Administration Tools Authoring and Publishing Compatibility Arch Support .....中间省略..... Available Groups: Development Tools XFCE-4.2 .....中间省略..... Done # 看到没!上面就列出来你已经安装的套件群组,还有尚可安装的其他套件群组, # 真是非常的方便!那么如何知道 Development Tools 里面有啥咚咚? [root@linux ~]# yum groupinfo "Development Tools" Group: Development Tools Required Groups: <==所需要的相依属性数据 Development Libraries Default Metapkgs: <==缺省内部所需要的中继套件 Emacs Optional Metapkgs: <==最好还含有这些套件较佳 Ruby XEmacs .....中间省略..... Mandatory Packages: <==一些所需要的套件数据 pkgconfig gcc-ppc32 make gcc autoconf .....中间省略..... Default Packages: gcc-g77 cscope .....中间省略..... Optional Packages dejagnu ElectricFence gcc-gnat .....中间省略..... # 总共会列出来这个『套件群组』内含有的各项数据,如果你需要安装的话,就可以: [root@linux ~]# yum groupinstall "Development Tools" |
例题:请设置一下工作调度,让你的 centOS 可以每天自动更新系统 答:
40 5 * * * root yum -y update && yum clean packages这样就可以自动更新了, 时间订在每天的凌晨 5:40 ,并且更新完成后会主动的将下载的套件数据移除喔! |
1. 先修改 /etc/yum.conf [root@linux ~]# vi /etc/yum.conf .....前面省略..... # 直接在文件的最底下加入这一行来增加一些额外的功能: plugins=1 2. 再修改 /etc/yum.repos.d/CentOS-Base.repo [root@linux ~]# vi /etc/yum.repos.d/CentOS-Base.repo # 内容与『 yum 的设置档』说明相同,请回到本小节的最前面查阅该设置 |
[root@linux ~]# yum upgrade
|
0. 前处理:先准备好你的数据,以及删除不需要的数据 [root@linux ~]# yum clean packages headers # 先删除原本的 yum 数据,因为 FC1 使用的也是 yum , # 所以最好先将之前 FC1 的 yum 数据删除,比较不会有问题; |
1. 安装升级所需要的 RPM 文件: [root@linux ~]# rpm --import \ > http://ftp.isu.edu.tw/pub/Linux/CentOS/4.3/os/i386/RPM-GPG-KEY-centos4 [root@linux ~]# rpm -Uvh centos-release-4-3.2.i386.rpm [root@linux ~]# rpm -Uvh centos-yumconf-4-4.5.noarch.rpm [root@linux ~]# rpm -ivh --force --nodeps kernel-2.6.9-34.EL.i686.rpm # 在这个动作时,由于我们的内核并非是 CentOS ,所以这个动作会发生一些错误, # 先不要理他,待会儿的动作再重新处理即可。 [root@linux ~]# rpm -ivh --force --nodeps udev-039-10.12.EL4.i386.rpm |
2. 移除会有冲突的 2.4 版内核,连同其原代码 [root@linux ~]# rpm -qa | grep kernel kernel-2.4.22-1.2197.nptl kernel-2.4.22-1.2115.nptl kernel-2.4.22-1.2199.nptl kernel-source-2.4.22-1.2197.nptl kernel-source-2.4.22-1.2199.nptl .....其他省略..... [root@linux ~]# rpm -e kernel-source-2.4.22-1.2199.nptl [root@linux ~]# rpm -e kernel-source-2.4.22-1.2197.nptl [root@linux ~]# rpm -e kernel-2.4.22-1.2115.nptl [root@linux ~]# rpm -e kernel-2.4.22-1.2197.nptl [root@linux ~]# rpm -e kernel-2.4.22-1.2199.nptl # 反正就是找到内核与内核原代码的套件后,就将他移除!记得套件名为: # kernel 与 kernel-source ,其他的不用动! [root@linux ~]# rpm --rebuilddb |
3. 规范设置档 [root@linux ~]# vi /etc/yum.upgrade [main] cachedir=/var/cache/yum debuglevel=2 logfile=/var/log/yum.log pkgpolicy=newest distroverpkg=fedora-release installonlypkgs=kernel kernel-smp kernel-hugemem kernel-unsupported tolerant=1 exactarch=1 plugins=1 [upgrade] name=CentOS-4.3 - upgrade baseurl=http://ftp.isu.edu.tw/pub/Linux/CentOS/4.3/os/i386/ [update] name=CentOS-4.3 - Updates baseurl=http://ftp.isu.edu.tw/pub/Linux/CentOS/4.3/updates/i386/ |
4. 开始升级的动作: [root@linux ~]# yum -y -t -c /etc/yum.upgrade upgrade |
5. 重新安装内核,并处理 RPM 数据库与更新其他套件 [root@linux ~]# rpm -ivh --force --nodeps kernel-2.6.9-34.EL.i686.rpm [root@linux ~]# rpm --rebuilddb [root@linux ~]# yum update |
6. 设置开机设置档 [root@linux ~]# vi /boot/grub/menu.lst default=0 timeout=10 splashimage=(hd0,0)/boot/grub/splash.xpm.gz title CentOS (2.6.9-34.0.2) root (hd0,0) kernel /boot/vmlinuz-2.6.9-34.0.2.EL ro root=/dev/hda1 hdd=ide-scsi rhgb initrd /boot/initrd-2.6.9-34.0.2.EL.img title CentOS (2.6.9-34.EL) root (hd0,0) kernel /boot/vmlinuz-2.6.9-34.EL ro root=/dev/hda1 hdd=ide-scsi rhgb initrd /boot/initrd-2.6.9-34.EL.img |
1. 先处理 APT 服务器来源的设置数据: [root@linux ~]# vi /etc/apt/sources.list deb ftp://debian.tnc.edu.tw/pub/debian/ stable main non-free contrib deb http://security.debian.org/ sarge/updates main contrib non-free deb ftp://debian.tnc.edu.tw/pub1 b2d/ deb http://ftp2.de.debian.org/debian-volatile sarge/volatile main # 上面的格式是这样的: # <deb 的标头格式> <APT服务器网址> <相对网址路径> <目录一> <目录二> ... |
[root@linux ~]# apt-get [-qy] [-c config_file] [更新项目] [套件名称] 参数: -q :不要在屏幕上输出消息,常用在背景环境的运行当中喔! -y :自动在进行 apt-get 时回答 y 的回应; -c :后面接的是设置档,一般系统会主动的以 /etc/apt 内的设置档为依据。 [更新项目]:要 apt-get 进行的工作,主要有这几项: update :就是更新服务器与用户端的套件表头清单,这个动作务必要进行! install :后面需要加上要安装的套件名称才行! upgrade :进行『已安装套件』的完整升级,不过未安装套件则不予安装; dist-upgrade:以 upgrade 相似,但是当新版本的套件有其他相依属性的套件加入时, 单纯的 upgrade 将无法进行安装,此时就得要使用 dist-upgrade 了! clean :清除已经下载到 /var/cache/apt/archives/ 的套件文件。 remove :移除某个套件啊! 范例一:进行套件标头更新后,进行整体套件的更新动作 [root@linux ~]# apt-get update 下载:1 ftp://debian.tnc.edu.tw stable/main Packages [3349kB] 下载:2 http://ftp2.de.debian.org sarge/volatile/main Packages [3893B] .....中间省略..... 读取 3868kB 用了 24s (159kB/s) 读取套件清单中... 完成 [root@linux ~]# apt-get dist-upgrade 读取套件清单中... 完成 了解套件依存关系中... 完成 筹划升级套件中...完成 下列的套件都将被【删除】: blt-common ettercap-plugins libgdbmg1-dev 下列的【新】套件都将被安装: dictionaries-common ettercap-common .....后面省略..... 下列的套件都将维持旧版本: fontconfig libxft-dev libxft2 libxft2-dbg .....后面省略..... 下列的套件都将更新: apache apache-common apache-utils apache2 .....后面省略..... 更新 105 个套件,新安装 32 个套件,删除 3 个套件,另不更新 7 个套件。 需要下载 122MB 的文件。 解压缩后将消耗 39.6MB 的空间。 继续运行吗? 是按 [Y] 键,否按 [n] 键 y 下载:1 ftp://debian.tnc.edu.tw stable/main libc6-dev 2.3.2.ds1-22sarge3 [2535kB] 下载:2 http://security.debian.org sarge/updates/main login 1:4.0.3-31sarge8 [576kB] .....中间省略..... 读取 122MB 用了 11m47s (172kB/s) 正在预先设置套件 ... (正在读取数据库 ... 系统目前总共安装有 112550 个文件和目录。) 正预备替换 libc6-dev 2.3.2.ds1-22 (使用 .../libc6-dev_2.3.2.ds1-22sarge3_i386.deb) 正在解压缩替换的套件档 libc6-dev ... .....中间省略..... Please *restart* your Apache2 ! Y/N ? y .....中间省略..... [root@linux ~]# apt-get clean # 这个动作会将刚刚下载的几个 deb 的套件给他移除!节省硬盘空间! |
[root@linux ~]# vi /etc/crontab 40 5 * * * root /usr/bin/apt-get update && /usr/bin/apt-get -y dist-upgrade |
[root@linux ~]# apt-cache [搜索项目] 参数: [搜索项目]:apt-cache 可以搜索 apt 所列出的套件标头数据喔!可用项目有: pkgnames:列出本系统上面的所有套件名称!!有点类似 (rpm -qa); dump :列出所有的套件标头以及其相关的相依属性套件! search :后面可接要搜索的字符串,例如 apt-cache search postfix show :后面接套件名称,可以显示出该套件的主要内容的描述! showpkg :列出后面所接套件的相依属性以该其套件提供的相关功能! depends :可以列出与后面所接套件有相依属性或者是冲突的相关数据! 范例一:找出与 grep 有关的套件 [root@linux ~]# apt-cache search grep .....前面省略..... grep - GNU grep, egrep and fgrep grep-dctrl - Grep Debian package information .....后面省略..... [root@linux ~]# apt-cache show grep Package: grep Essential: yes Priority: required Section: base Installed-Size: 660 Maintainer: Ryan M. Golbeck <rmgolbeck@debian.org> Architecture: i386 Version: 2.5.1.ds1-4 Provides: rgrep Pre-Depends: libc6 (>= 2.3.2.ds1-4) Conflicts: rgrep Filename: pool/main/g/grep/grep_2.5.1.ds1-4_i386.deb Size: 170290 MD5sum: 68196ad14b098b0eb4b91f4a7cfa8ff2 Description: GNU grep, egrep and fgrep 'grep' is a utility to search for text in files; it can be used from the command line or in scripts. Even if you don't want to use it, other packages on your system probably will. [root@linux ~]# apt-cache depends grep grep 特别依存关系: libc6 冲突: <rgrep> |
[root@linux ~]# apt-get install zlibc
|