免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 21756 | 回复: 26
打印 上一主题 下一主题

[FreeBSD] 《FreeBSD新手快速入门》第3篇__FreeBSD6.2架设之服务器系统升级 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-25 13:43 |只看该作者 |倒序浏览
《FreeBSD新手快速入门》第3篇__FreeBSD6.2架设之服务器系统升级
-------------------------------------------------------------------------------------
FreeBSD6.2架设之服务器系统升级

FreeBSD6.2 Configure HowTo

Mongolia



Index:
  • 简介
  • 本文目标
  • Step 1安装软件包
  • Step 2使用Axel加速你的下载
  • Step 3Ports-tree
  • Step 4Src
  • Step 5管理已安装的软件包
  • F.A.Q.
  • Links to other sources


简介





系统安装完成后,最好经常连接官方或镜像服务器。进行系统补丁升级和Ports更新。以增加系统安全性,并且能够安装到比较新版本的软件。



本文目标





通过对本文的学习,您可以知道如何安装软件包,更新Ports-tree,更新系统源代码,管理已安装的软件包

·FreeBSD下安装软件包的几种方法。

·FreeBSD下的下载程序。

·升级Ports-tree

·更新FreeBSD的源代码。

·卸载已安装的程序,更新已安装的程序。


[ 本帖最后由 freemongolia 于 2007-11-25 13:54 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-11-25 13:44 |只看该作者



Step 1 FreeBSD下安装软件包.






·pkg_add方式安装软件包。

·Ports方式安装软件包。

·源代码方式安装软件包。

跟随下面步骤进行远程软件包的安装.
FreeBSD下可以使用多种方法安装软件包,即可以使用pkg_add方式安装,也可以使用Ports方式安装,还可以下程序源码进行编译安装。不同的安装方式有不向的特点,有的省时间、快速;有点定制性高可以根据自己需要进行选择。

pkg_add方式安装

pkg_add方式安装方法1、用户预先下载编译好的需要进行安装的软件包,一般是*.tbz *.tgz格式的软件包。直接使用pkg_add+软件包名称,安装即可。可以使用-v参数显示安装过程。源程序可以从各大FTP站点(比如ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/)或各发行光盘中找到。

pkg_add+软件包名称安装。此处以安装lsof-4.79D.tbz为例

下载并显示lsof-4.79D.tbz软件包

Shell:
cd /root

ls
.cshrc
.k5login
.profile

.history
.login
lsof-4.79D.tbz
进行安装pkg_add -v lsof-4.79D.tbz (参数-v显示安装过程信息),安装完成可以输入rehash刷新。

Shell:

cd /root
pkg_add -v lsof-4.79D.tbz
pkg_add方式安装方法2、用户不需要下载软件包,直接在安装时输入pkg_add -r和软件包的名称,系统将自动查找并下载、安装软件包(参数-r的作用是,使系统自动决定软件包的版本,格式并进行下载软件安装)。用户设定PACKAGESITE
这个环境变量,选择距离最近的FTP服务器,可以加速下载安装过程。在上一篇的用户shellPACKAGESITE
这个环境变量,此处不再设定。

pkg_add -r+软件包名称安装(系统自动解决依赖关系)此处以安装wget为例

不需要指定版本及格式,直接输入安装命令pkg_add -r wget即可。系统会自动连接服务器进行下载,并且自动解决依赖关系。

Shell:

cd /root
pkg_add -r wget
rehash
显示安装完的程序位置

Shell:

whereis wget
wget: /usr/local/bin/wget /usr/local/man/man1/wget.1.gz /usr/ports/ftp/wget
使用Ports方式安装软件包

Ports中进入软件包名称安装目录,执行make install clean进行安装(系统自动解决依赖关系) 此处以fastest_cvsup为例进行安装

查找fastest_cvsupPorts中的具体位置

Shell:
cd /usr/ports/
make search key=fastest_cvsup
Port:fastest_cvsup-0.2.9_4

Path:/usr/ports/sysutils/fastest_cvsup

Info:Finds fastest CVSup server


B-deps: perl-5.8.8
R-deps: perl-5.8.8
进入fastest_cvsup所在的Ports中的目录,执行make install clean进行安装,安装后执行rehash命令刷新;

Shell:

cd /usr/ports/sysutils/fastest_cvsup/
make install clean
rehash

注:安装过程中出现配置选项,可以根据需要进行选择。

Options for fastest_cvsup 0.2.9_4

[X]

ROUNDTRIP

Build with round-trip patch


Ports中安装软件时,可以有以下几个参数。

make showconfig(用来查看可以有哪些配置选项)

Shell:
cd /usr/ports/sysutils/fastest_cvsup/
make showconfig
===> The following configuration options are available for fastest_cvsup-0.2.9_4:
ROUNDTRIP=on "Build with round-trip patch"
===> Use 'make config' to modify these settings
make config(用来进行配置选项)

Shell:
cd /usr/ports/sysutils/fastest_cvsup/
make config

Options for fastest_cvsup 0.2.9_4

[X]

ROUNDTRIP

Build with round-trip patch


make clean(用来进行清除安装后的临时文件)

Shell:
cd /usr/ports/sysutils/fastest_cvsup/
make clean
安装完成后,可以查看安装完的提示信息。或者使用whereis 软件名来查找到具体的安装位置

Shell:
whereis fastest_cvsup
fastest_cvsup: /usr/local/bin/fastest_cvsup /usr/ports/sysutils/fastest_cvsup
Ports安装命令总结
make install 安裝所选定的 Port
make deinstall 移除已安裝的 Port
make reinstall 移除之后再安裝一次
make clean 安裝完毕后移除 make 資料夾下的档案
make distclean 移除安裝后的原始档案,以节省磁碟空间
make rmconfig 移除之前安裝过程中选项的設定


[ 本帖最后由 freemongolia 于 2007-11-25 20:43 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2007-11-25 13:46 |只看该作者
使用源代码进行安装程序
Apache22为例(假设安装路径为/usr/local/apache22)
下载Apache22talball可以使用wgetFreeBSD下载,也可以在Win下载完成再传到FreeBSD机器上。
Shell:
--11:56:40--
http://apache.mirror.phpchina.com/httpd/httpd-2.2.6.tar.gz

=> `httpd-2.2.6.tar.gz'
Resolving apache.mirror.phpchina.com... 60.195.249.77
Connecting to apache.mirror.phpchina.com|60.195.249.77|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6,028,951 (5.7M) [application/x-gzip]
100%[====================================>] 6,028,951
366.54K/s
ETA 00:00
11:56:48 (403.81 KB/s) - `httpd-2.2.6.tar.gz' saved [6028951/6028951]
ls
httpd-2.2.6.tar.gz
解包并指定安装路径,进行配置,安装
Shell:
tar -zxvf httpd-2.2.6.tar.gz
x httpd-2.2.6/test/test_select.c
x httpd-2.2.6/test/time-sem.c
x httpd-2.2.6/test/zb.c
x httpd-2.2.6/VERSIONING
ls
httpd-2.2.6.tar.gz
httpd-2.2.6
lsof-4.79D.tbz
cd httpd-2.2.6
./configure --prefix=/usr/local/apache22 --enable-so --enable-ssl
make
make install
--prefix : 設定 Apache httpd 安裝路径
--enable-so : 告訴 Apache 启动 so 模組, Apache 能够载入 shared modules(例如 PHP)
启动Apache22进行测试
Shell:
/usr/local/apache22/bin/apachectl start
如果出现:
[Wed Nov 21 13:15:50 2007] [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter
kldload accf_http
/usr/local/apache22/bin/apachectl restart
浏览器打开http://youipaddress
显示:
It works!
好了,Apache22安装成功了。

论坛徽章:
0
4 [报告]
发表于 2007-11-25 13:47 |只看该作者

Step 2 FreeBSD下的下载程序.


FreeBSD中安装下载程序axelwget:
安装axel程序
可以使用任意方法安装,如pkg_add或者Ports方式安装。这里使用pkg_add -r axel命令安装

Shell:

pkg_add -r axel


rehash

查看安装程序存放位置

Shell:

whereis axel

axel: /usr/local/bin/axel /usr/local/man/man1/axel.1.gz /usr/ports/ftp/axel

axel程序的使用,axel+要下载的文件的url

Shell:



File size: 1403252 bytes

Opening output file zh-scim-fcitx-3.1.1.tbz

Starting download


[
0%]
.......... .......... .......... .......... ..........
[
18.0KB/s]

安装wget程序

使用Ports方式安装,查找到wget所在目录,进入目录,执行make install clean安装

Shell:

cd /usr/ports/

make search name=wget

cd /usr/ports/ftp/wget

make install clean

使用方式和axel基本一样。wget+下载的程序名称的url

Shell:

cd /root/





[ 本帖最后由 freemongolia 于 2007-11-25 13:58 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-11-25 13:48 |只看该作者
Step 3 Ports-tree.


修改/etc/make.conf,通过axel加速下载:

修改/etc/make.conf,通过axel加速下载,并在编译文件时去除X11相关文件。
备份/etc/make.conf/root/make.conf.bak
Shell:
cp /etc/make.conf /root/make.conf.bak


修改/etc/make.conf添加axel支持,并添加镜像FTP下载站点
Shell:
vi /etc/make.conf


Editor:
FETCH_CMD=axel
FETCH_BEFORE_ARGS= -n 10 -a
FETCH_AFTER_ARGS=
DISABLE_SIZE=yes
MASTER_SITE_OVERRIDE?=\
http://ports.hshh.org/${DIST_SUBDIR}/\
ftp://ftp.tw.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/\
ftp://ftp.jp.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/\
ftp://ftp.freeBSDchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
ftp://ftp.twaren.net/BSD/FreeBSD/distfiles/${DIST_SUBDIR}/
ftp://ftp2.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
ftp://ftp3.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
ftp://ftp7.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
ftp://ftp12.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
ftp://ftp8.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
ftp://ftp9.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
ftp://ftp11.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
ftp://ftp5.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
ftp://ftp4.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
ftp://ftp10.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}
WITHOUT_X11=yes


安装cvsup-without-gui
使用pkg_add -r cvsup-without-gui命令安装。
Shell:
pkg_add -r cvsup-without-gui
rehash


创建/root/scripts目录,创建ports-update.sh文件
创建/root/scripts目录
Shell:
cd /root
mkdir /root/scripts


进入/root/scripts目录,创建ports-update.sh文件
Shell:
cd /root/scripts/
vi /root/scripts/ports-update.sh

内容如下:
Editor:
#!/bin/sh
# updating port
echo "Beginning Ports Update"
/usr/local/bin/cvsup -g -L 2 /etc/ports-supfile
echo "Ports Update Complete"

/root/scripts/ports-update.sh文件添加执行权限
Shell:
cd /root/scripts/
chmod +x /root/scripts/ports-update.sh

论坛徽章:
0
6 [报告]
发表于 2007-11-25 13:50 |只看该作者

复制/usr/share/examples/cvsup/ports-supfile/root/
Shell:

cd /root

cp /usr/share/examples/cvsup/ports-supfile /root/

测试CVSUP服务器哪个离你最近
Shell:

fastest_cvsup -c CN

>>
Speed Daemons:


- 1st: cvsup4.cn.freebsd.org
32.98 ms


- 2st: cvsup.cn.freebsd.org
35.68 ms


- 3st: cvsup5.cn.freebsd.org
50.18 ms


修改ports-supfile文件,选择最近的CVS服务器。(以上测试得知最近的是cvsup4.cn.freebsd.org)
Shell:

cd /root

vi /root/ports-supfile

修改以下部分

修改前:

*default host=CHANGE_THIS.FreeBSD.org

修改后:

*default host=cvsup4.cn.FreeBSD.org


修改前:

# collections,

ports-all

修改后:

# collections,

#ports-all



#ports-audio

#ports-games

#ports-graphics

#ports-x11

#ports-x11-clocks

#ports-x11-fm

#ports-x11-fonts

#ports-x11-servers

#ports-x11-themes

#ports-x11-toolkits

#ports-x11-wm
(备注:修改为# ports-all之后,下面的哪个被加#的就表示不同步不升级,没有加#表示要同步升级)
复制修改好的ports-supfile文件,到/etc/ports-supfile。并且改权限为640只有root用户才可以读写
Shell:

cd /root

cp /root/ports-supfile /etc/ports-supfile

chmod 640 /etc/ports-supfile

正式开始进行Ports-tree升级
执行/root/scripts/ports-update.sh文件,进行同步
Shell:

/root/scripts/ports-update.sh

Beginning Ports Update

Parsing supfile "/etc/ports-supfile"

Shutting down connection to server

Finished successfully

Ports Update Complete
至此系统同步升级完成。



[ 本帖最后由 freemongolia 于 2007-11-27 12:40 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2007-11-25 13:51 |只看该作者
Step 4 FreeBSD升级系统源代码.


FreeBSD下升级系统src:

创建/root/scripts/src-update.sh文件
进入/root/scripts目录,创建src-update.sh文件
Shell:
cd /root/scripts/
vi /root/scripts/src-update.sh
内容如下:
Editor:
#!/bin/sh
# updating source
echo "Beginning Source Update"
/usr/local/bin/cvsup -g -L 2 /etc/stable-supfile
echo "Source Update Complete"
/root/scripts/src-update.sh文件添加执行权限
Shell:
cd /root/scripts/
chmod +x /root/scripts/src-update.sh

复制/usr/share/examples/cvsup/stable-supfile/root/
Shell:
cd /root
cp /usr/share/examples/cvsup/stable-supfile /root/
修改stable -supfile文件,选择最近的CVS服务器。(以上测试得知最近的是cvsup4.cn.freebsd.org)
Shell:
cd /root
vi /root/stable-supfile
修改以下部分
修改前:
*default host=CHANGE_THIS.FreeBSD.org
修改后:
*default host=cvsup4.cn.FreeBSD.org
修改前:
*default release=cvs tag=RELENG_6
修改后:
*default release=cvs tag=RELENG_6_2

复制修改好的stable-supfile文件,到/etc/ stable-supfile。并且改权限为640只有root用户才可以读写
Shell:
cd /root
cp /root/stable-supfile /etc/stable-supfile
chmod 640 /etc/ stable-supfile

正式开始进行系统Src升级
执行/root/scripts/src-update.sh文件,进行同步
Shell:
/root/scripts/src-update.sh
Beginning Source Update
Parsing supfile "/etc/stable-supfile"
Connecting to cvsup4.cn.FreeBSD.org
Shutting down connection to server
Finished successfully
Source Update Complete
至此系统同步升级完成。

论坛徽章:
0
8 [报告]
发表于 2007-11-25 13:52 |只看该作者


Step 5 FreeBSD下的软件包管理.


FreeBSD下的软件包管理:

查看系统内都安装了哪些程序
通过pkg_info命令查询都安装了哪些程序(taball源代码安装的查询不到)
Shell:
pkg_info
cvsup-without-gui-16.1h_2 General network file distribution system optimized for CVS
fastest_cvsup-0.2.9_4 Finds fastest CVSup server
gettext-0.14.5_2
GNU gettext package
libiconv-1.9.2_2
A character set conversion library
linux_base-fc-4_9
Base set of packages needed in Linux mode (for i386/amd64)
lsof-4.79D
Lists information about open files (similar to fstat(1))
perl-5.8.8
Practical Extraction and Report Language
wget-1.10.2
Retrieve files from the Net via HTTP and FTP
把查询到的结果输出到文件,方便进行统计
Shell:
cd /root/
pkg_info > pkg_list.txt
less /root/pkg_list.txt
cvsup-without-gui-16.1h_2 General network file distribution system optimized for CVS
fastest_cvsup-0.2.9_4 Finds fastest CVSup server
gettext-0.14.5_2
GNU gettext package
libiconv-1.9.2_2
A character set conversion library
linux_base-fc-4_9
Base set of packages needed in Linux mode (for i386/amd64)
lsof-4.79D
Lists information about open files (similar to fstat(1))
perl-5.8.8
Practical Extraction and Report Language
wget-1.10.2
Retrieve files from the Net via HTTP and FTP

卸载已安装的软件包
通过pkg_delete命令卸载已安装的软件包(只适用于pkg_add方式和Ports方式安装的软件包)
pkg_delete+软件包名称和版本
Shell:
pkg_delete wget-1.10.2

升级已安装的软件包
升级Ports安装的软件包前,先使用pkg_version命令,用来对比已安装的软件包和Ports Collection中的版本信息。参数v显示详细信息
Shell:
pkg_version -v
axel-1.0b
=
up-to-date with port
cvsup-without-gui-16.1h_2
<
needs updating (port has 16.1h_3)
db41-4.1.25_4
=
up-to-date with port
fastest_cvsup-0.2.9_4
<
needs updating (port has 0.2.9_5)
gettext-0.14.5_2

<
needs updating (port has 0.16.1_3)
libiconv-1.9.2_2
<
needs updating (port has 1.11_1)
linux_base-fc-4_9
<
needs updating (port has 4_10)
lsof-4.79D
=
up-to-date with port
perl-5.8.8
<
needs updating (port has 5.8.8_1)
portupgrade-2.3.1,2
=
up-to-date with port
ruby-1.8.5_3,1
<
needs updating (port has 1.8.6.111,1)
ruby18-bdb-0.6.2
=
up-to-date with port
出现<号说明已安装的程序版本旧了,需要升级。出现=号说明版本是相同的,不需要升级。

在您更新了 Ports 套件之后,
在升级 port 之前,
应查看 /usr/ports/UPDATING
这个文件中介绍了在升级时用户应注意的问题,以及一些可能需要进行的操作。
这可能包括更改文件格式、
配置文件位置的变动,以及与先前版本的兼容性等等。

升级Ports安装的软件方法1、使用portupgrade工具

论坛徽章:
0
9 [报告]
发表于 2007-11-25 13:53 |只看该作者
安装portupgrade程序
Shell:
cd /usr/ports
make search name=portupgrade
cd /usr/ports/ports-mgmt/portupgrade/
make install clean;rehash

Options for portupgrade 2.3.1,2
[X]
BDB4
Use Berkeley DB >=2 as backend
至此portupgrade程序安装完成。

使用portupgrade来更新Ports
扫描已安装的port的列表,最好每次升级前执行一下
Shell:
pkgdb -F

升级所有安装过的Ports使用portupgrade -a命令,如果想要系统要求确认,加参数i (注:portupgrade -a只能升级通过port方式安装的程序)
Shell:
portupgrade -ai

要是想指定优先级,优先升级某一个程序,可以使用参数-R。例如升级(注:portupgrade -a只能升级通过port方式安装的程序)
Shell:
portupgrade -R ruby

升级经由pkg_add方式安装的程序,需要使用portupgrade -P+程序名称命令,系统会在本地查找搜索 PKG_PATH 中指定的本地目录,
如果没有找到,则从远程站点下载。如果远程也没有找到,将使用 ports方式安装。 (如果要禁止使用 port
可以指定 -PP)

Shell:
portupgrade -P cvsup-without-gui

查看系统在安装程序时,都安装哪些文件,放到了哪些地方。使用pkg_info -L 程序名称版本号|less命令
Shell:
pkg_info -L axel-1.0b | less
Information for axel-1.0b:
Files:
/usr/local/man/man1/axel.1.gz
/usr/local/bin/axel
/usr/local/etc/axelrc
/usr/local/share/locale/de/LC_MESSAGES/axel.mo
/usr/local/share/locale/nl/LC_MESSAGES/axel.mo
如查不记得程序版本名称,也可以使用pkg_info | grep -i 程序名称
命令进行查询

Shell:
pkg_info | grep -i axel
axel-1.0b
A download accelerator

使用Ports安装程序,会在/usr/ports/distfiles目录留有源文件,清理此目录,可以使用portsclean -DD 命令。
Shell:
portsclean -C
Cleaning out /usr/ports/*/*/work...
portsclean -DD
Detecting unreferenced distfiles...
[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 22 packages found (-1 +1) (...). done]
Delete /usr/ports/distfiles/automake-1.4-p6.tar.gz
Delete /usr/ports/distfiles/ezm3/ezm3-1.2-FreeBSD4-boot.tar.bz2
Delete /usr/ports/distfiles/ezm3/ezm3-1.2-src.tar.bz2
Delete /usr/ports/distfiles/rpm-3.0.6.tar.gz
Delete /usr/ports/distfiles/ezm3

论坛徽章:
0
10 [报告]
发表于 2007-11-25 13:54 |只看该作者
Step 6 F.A.Q.







Links to other sources





您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP