📄 0220upgrade.htm
字号:
在今日 (2006/08/10) 能够安装的最新核心版本是 2.6.9-34.0.2.EL ,所以上面的第一个 title
才会是这样的设定资料,要记得与你的环境符合啊(如果你不是使用 4.3 来升级)!如果忘记上面各项资料的意义,
请参考『<a href="../linux_basic/0510osloader.php">鸟哥的 Linux 私房菜 基础篇 boot loader</a> 』的介绍啊!
如果设定好了这个开机资讯,嘿嘿!请重新开机试看看吧! ^_^<br /><br />
基本上这样已经处理完毕了!也就是说,你的系统应该是由 FC1 顺利的转成 CentOS 4.3 才对!
不过,有些小细节你依旧需要注意喔∶<br />
<ul><span class=text_import2>
<li>观察您的系统是否有启动原有的服务,亦可利用 chkconfig --list;
<li>如果你的旧系统曾有使用 tarball 的方式来安装软体,则升级完毕后你必须要重新安装一次该软体;
<li>系统可能会产生很多的 .rpmnew 的档案,请使用 locate 搜寻,并且重新处理设定档。
</span></ul>
毕竟之前的版本太旧了,所以 RPM 升级时会将新套件的设定档存成 *.rpmnew ,
你最好不要使用旧的设定档,而是以新的设定档来重新修改比较好!这样服务的运作应该会比较顺畅一些啊!
到此为止,恭喜您啊! ^_^<br />
</div>
</div>
</div>
<hr /><a NAME="apt"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">Debian 的 apt 自动升级∶以 B2D 为例</span><br />
<div class=block1>
APT 最早是 debian 这个社群的 Linux distribution 用来作为套件管理的一项机制,
后来实在很方便又好用,所以就被利用来做为其他 distributions 的线上升级管理机制了!
所以你会在很多地方看到有 FC 系列的 APT 伺服器、或者是自订的 APT 伺服器等等的。
这个 APT 的使用与 yum 很类似呐!同样也是透过套件的表头分析后,然后与系统本身资料比对,
因此同样也克服了属性相依的困扰了,非常方便!底下我们就分别来谈一谈吧!<br /><br />
<hr /><a NAME="apt_config"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">APT 的设定档</span><br />
<div class=block2>
如同前面提到的 yum 一样,既然是线上升级,那么我们自然得要找到相对应的伺服器棉!
而一般有提供 apt 服务的 distributions 事实上他们都已经做好设定档内相关的伺服器选择了,
例如 B2D 就是一个例子。<span class=text_import2>不过,
如果你是使用类似 Red Hat 9, Fedora Core Release 等版本的话,
可能由于种种原因让你不能将该主机升级到类似 CentOS 等较新的版本时,那你就可以尝试到底下的网站找找看
APT 主机了</span>∶<br />
<ul><li><a href="http://apt.freshrpms.net/" target="_blank">http://apt.freshrpms.net/</a></li></ul>
找到属于你的 Linux 版本后,安装 apt 就可以使用 apt 伺服器所提供的套件升级机制棉!
底下赶紧谈一谈,那么如何处理 APT 的设定档呢?
APT 的设定档都放在 /etc/apt 目录下,而在该目录下,规范 APT 主机的设定则放到 /etc/apt/sources.list 当中。
以 B2D 为例,他的 sources.list 是这样的∶<br />
<table class="term"><tr><td class="term"><pre>
<span class=term_hd>1. 先处理 APT 伺服器来源的设定资料∶</span>
[root@linux ~]# <span class=term_command>vi /etc/apt/sources.list</span>
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
<span class=term_say># 上面的格式是这样的∶
# <deb 的标头格式> <APT伺服器网址> <相对网址路径> <目录一> <目录二> ...</span>
</pre></td></tr></table>
其实设定档的内容很简单,第一个栏位指的是『用哪一种套件管理员』的意思,主要有 deb 以及 rpm 还有
rpm-src 等,deb 是 debian 专属的套件管理方式啦! ^_^!第二栏以后就得要一起看才行!
以上表的第一行为例,其实他是说,提供 deb 的网址有三个,分别是∶<br />
<ul>
<li>ftp://debian.tnc.edu.tw/pub/debian/stable/main
<li>ftp://debian.tnc.edu.tw/pub/debian/stable/non-free
<li>ftp://debian.tnc.edu.tw/pub/debian/stable/contrib
</ul>
这样看懂了吗?第二栏与第三栏要加在一起,那就是个完整的伺服器网址!
后面接的几个资料则是在该网址底下的数个目录,那就很容易看懂了吧! ^_^
应该是不难啦~如果您是使用 b2d 的话,那恭喜你!不用修改就能用 apt 棉! ^_^<br />
<div style="padding: 10 0 10 0 ;" align="right"><table width="90%"><tr><td><b>Tips:</b><br /><span style="font-style: italic; color : darkgreen"> 事实上, /etc/apt/apt.conf 还可以提供其他额外的设定喔,例如使用 Proxy
以及规范下载后的套件在安装完毕后应该进行的处理步骤,举例来说,是否需要将该套件移除!
你应该要使用 man apt.conf 查询一下该档案的用法喔!
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div> </div>
<hr /><a NAME="apt_cmd"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">实际使用 APT</span><br />
<div class=block2>
APT 的使用也实在是很简单!只要利用 apt-get 即可!不过,不同于 yum 每次都会进行 RPM 档案表头的分析,
APT 则是将套件表头的下载与实际的安装分成两个动作分别执行,先来谈一谈 apt-get 这个指令的用法吧!<br />
<a name="apt-get"></a>
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>apt-get [-qy] [-c config_file] [更新项目] [套件名称]</span>
<span class=term_say>参数∶
-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 ∶移除某个套件啊!</span>
<span class=term_hd>范例一∶进行套件标头更新后,进行整体套件的更新动作</span>
[root@linux ~]# <span class=term_command>apt-get update</span>
下载:1 ftp://debian.tnc.edu.tw stable/main Packages [3349kB]
下载:2 http://ftp2.de.debian.org sarge/volatile/main Packages [3893B]
<span class=term_say>.....中间省略.....</span>
读取 3868kB 用了 24s (159kB/s)
读取套件清单中... 完成
[root@linux ~]# <span class=term_command>apt-get dist-upgrade</span>
读取套件清单中... 完成
了解套件依存关系中... 完成
筹画升级套件中...完成
下列的套件都将被【删除】∶
blt-common ettercap-plugins libgdbmg1-dev
下列的【新】套件都将被安装∶
dictionaries-common ettercap-common <span class=term_say>.....后面省略.....</span>
下列的套件都将维持旧版本:
fontconfig libxft-dev libxft2 libxft2-dbg <span class=term_say>.....后面省略.....</span>
下列的套件都将更新:
apache apache-common apache-utils apache2 <span class=term_say>.....后面省略.....</span>
更新 105 个套件,新安装 32 个套件,删除 3 个套件,另不更新 7 个套件。
需要下载 122MB 的档案。
解压缩后将消耗 39.6MB 的空间。
继续执行吗? 是按 [Y] 键,否按 [n] 键 <span class=term_command>y</span>
下载: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]
<span class=term_say>.....中间省略.....</span>
读取 122MB 用了 11m47s (172kB/s)
正在预先设定套件 ...
(正在读取资料库 ... 系统目前总共安装有 112550 个档案和目录。)
正预备替换 libc6-dev 2.3.2.ds1-22 (使用 .../libc6-dev_2.3.2.ds1-22sarge3_i386.deb)
正在解压缩替换的套件档 libc6-dev ...
<span class=term_say>.....中间省略.....</span>
Please *restart* your Apache2 !
Y/N ?
<span class=term_command>y</span>
<span class=term_say>.....中间省略.....</span>
[root@linux ~]# <span class=term_command>apt-get clean</span>
<span class=term_say># 这个动作会将刚刚下载的几个 deb 的套件给他移除!节省硬碟空间!</span>
</pre></td></tr></table>
请记得,<span class=text_import2>那个 update 的参数并不是在进行更新,
而是在进行伺服器与用户端的套件表头清单更新而已,
但这个动作相当重要,如果你没有作这个动作的话,你的套件就不会更新了</span>!
在 apt-get update 后,再使用 apt-get dist-upgrade
这样就能够将整个系统给他升级了!很快乐吧!不过,由于我们没有加上『-y』这个参数,
所以在上表当中,我们会老是需要输入一些有的没有的指令,
这样的话,就不适合作为背景的自动升级了!所以,如果你想要在背景以 crontab
的方法自动的帮你升级的话,在 B2D 的环境下使用∶<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>vi /etc/crontab</span>
<span class=term_write>40 5 * * * root /usr/bin/apt-get update && /usr/bin/apt-get -y dist-upgrade</span>
</pre></td></tr></table>
这样每天的凌晨 5:40 就会自动的进行整体升级,而且会主动的克服相依属性的问题喔!
另外,除了完整的将套件给他全部升级之外,我们还可以利用 apt 伺服器的功能来进行查询的动作喔!
这个时候就得要 apt-cache 来帮忙了!<br />
<a name=apt-cache></a>
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>apt-cache [搜寻项目]</span>
<span class=term_say>参数∶
[搜寻项目]∶apt-cache 可以搜寻 apt 所列出的套件标头资料喔!可用项目有∶
pkgnames∶列出本系统上面的所有套件名称!!有点类似 (rpm -qa);
dump ∶列出所有的套件标头以及其相关的相依属性套件!
search ∶后面可接要搜寻的字串,例如 apt-cache search postfix
show ∶后面接套件名称,可以显示出该套件的主要内容的描述!
showpkg ∶列出后面所接套件的相依属性以该其套件提供的相关功能!
depends ∶可以列出与后面所接套件有相依属性或者是冲突的相关资料!</span>
<span class=term_hd>范例一∶找出与 grep 有关的套件</span>
[root@linux ~]# <span class=term_command>apt-cache search grep</span>
<span class=term_say>.....前面省略.....</span>
grep - GNU grep, egrep and fgrep
grep-dctrl - Grep Debian package information
<span class=term_say>.....后面省略.....</span>
[root@linux ~]# <span class=term_command>apt-cache show grep</span>
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 ~]# <span class=term_command>apt-cache depends grep</span>
grep
特别依存关系: libc6
冲突: <rgrep>
</pre></td></tr></table>
瞧!利用 apt-cache 就能够找到很多有用的资讯!包括利用 show 这个参数也能够将该套件重要的项目给他列出来!
以上面的 grep 这个套件为例, apt-cache 就列出很多例如版本资讯、冲突资讯 (conflicts) 等等,
尤其是描述 (Description
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -