前天想安装Drupal的最新版本(6.0),目前服务器的软件环境足以支撑,但某些配置并非推荐版本。官方站点Recommended: Apache ;PHP 5.2 or higher;MySQL 4.1 or MySQL 5.0。Required: PHP version 4.3.5 or higher。而我目前的配置版本是:FreeBSD 6.1 Release; Apache/2.0.55; PHP/4.4.2;MySQL 4.1.16, PHP部分不甚理想,需要升级。再查相关网站,其它软件也都有了相应的升级。干脆,除了MySQL,其它的都升升吧。先从最基础的操作系统FreeBSD入手。
我日常办公和个人应用的电脑跟随主流,都是Windows XP,至今未体验过FreeBSD的桌面。两年前装服务器时借助Google,稀里糊涂算是把FreeBSD+Apache+PHP+MySQL给搞定了,很多操作是边查资料边进行,知其然不知其所以然。这个组合非常稳定,后来几乎没再进行过别的操作,现在要升级,很多资料还得重新查,真后悔当初没做些备忘。所以从现在开始,要做好记录工作。下面是升级FreeBSD 6.1-Release到6.3-STABLE的部分备忘。
步骤(我操作时是以子非鱼所写的步骤为蓝本,建议参考官方网站的手册部分,有更详细的解释):
# 1. ‘cd /usr/src' (or to the directory containing your source tree)
`make update' (cvsup src,ports,doc,define in /etc/make.conf) (在这里make update节省了操作环节,非常方便,但是需要设置make.conf,需对系统有深入的了解。我用的是更笨拙的方法,进入/usr/share/examples/cvsup目录,修改cvs-supfile, stable-supfile和ports-supfile,然后cvsup -g -L 2 每个supfile更新代码)
# 2. `make buildworld' (编译系统)
# 3. `make buildkernel KERNCONF=YOUR_KERNEL_HERE' (default is GENERIC). (编译核心YOUR_KERNEL_HERE改为自己修改过的核心的名字,我的是MYKERNEL)
# 4. `make installkernel KERNCONF=YOUR_KERNEL_HERE' (default is GENERIC). (编译、安装核心在编译系统之后、安装系统之前的意义,据某个网友的说法是,新系统在后安装才可以往前兼容支持老核心配置)
# 5. `reboot' (in single user mode: boot -s from the loader prompt). (这个环节曾让我迟迟不敢下手,因为要求启动的时候进入单用户状态。我是通过SSH远程登录,不在服务器旁,怎么去操作?后来猜测,进入单用户状态的意图大概是防止其他用户登录,影响make installworld,这个是小概率事件,应该可以忽略吧?于是就抱着听天由命的态度敲了回车键,结果?以下的步骤可以照常进行)
# 6. `mergemaster -p' (加p<千万注意是小写啊>参数的意义是进入Pre-buildworld mode. Compares only files known to be essential to the success of {build|install}world, including /etc/make.conf.只对比那些为了保证编译安装系统成功所必需的文件)
# 7. `cd /usr/src'
`make installworld' (安装编译好的新系统)
# 8. `mergemaster' (这个步骤可让我吃了大亏!对比修改安装新文件的代码,一个一个地来,好麻烦!好浪费时间!系统升级当然是要新文件了。真正需要我修改合并的文件只有两个:hosts和inetd.conf,其中有我原先对系统的设定。需要删除的文件好像只有一个?抱歉,忘了文件名,提示说是不删掉有危险哦,我感觉是危言耸听。^_^下次如果再升级,我估计会粗暴地改名/etc为/etc_old,然后直接拷贝/usr/src/etc为/etc,然后修改hosts和inetd.conf<对远程操作用户来说,修改第二个文件很重要,以免再启动时不能SSH登录,那就抓瞎了>,虽然官方手册上说:“如果想要手工更新,但不要只是从 /usr/src/etc 把文件复制到 /etc 就了事。有些文件是必须先‘安装’的。 这是因为 /usr/src/etc 目录并 不是 想像的那样是 /etc 目录的一个复制。事实上,有些是文件是 /etc 有的,而 /usr/src/etc 里边没有。”其中说到的/etc 有的而 /usr/src/etc 里边没有的文件,大概就一个吧?属于需要删除的而非需要添加安装的,所以我这个门外汉觉得可以忽略不计。^_^)
#9、'make delete-old' (删除旧文件)
# 10. `reboot' (重新启动,大功告成!)
官方手册中说:“不要使用 make world: 许多较早的文档推荐使用 make world 来完成这项工作。 这样做会跳过一些必要的步骤,因此只有在您知道自己在做什么的时候才可以这样做。 几乎所有的情况下 make world 都是不应该做的事情, 您应该使用这里描述的方法。” 我搜索到的资料中有相当多的文章介绍的都是用make world,幸好后来及时阅读了官方手册。make world应该也没错,但那或许是老版本老皇历了。注意版本差别,什么时候都别忘了有官方网站。

评论
发表新评论