精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● FreeBSD>><新手指南>计划>>FreeBSD完全新手指南[4-配置系统]

主题:FreeBSD完全新手指南[4-配置系统]
发信人: con()
整理人: hahalee(1999-02-19 06:25:40), 站内信件
内容

    1. 配置你的.cshrc文件
    2. 设置更多的虚拟控制台(Virtual Terminals)
    3. 增加一个硬盘
    4. 系统配置文件选项
    5. 添加和安装软件
    6. 怎样安装Linux模拟器

1. 配置你的.cshrc文件

  这是系统自带的.cshrc文件.

  
     #csh .cshrc file

     alias h         history 25
     alias j         jobs -l
     alias la        ls -a
     alias lf        ls -FA
     alias ll        ls -lA
     alias su        su -m

     setenv  EDITOR  vi
     setenv  EXINIT  'set autoindent'
     setenv  PAGER   more

     set path = (~/bin /bin /usr/{bin,games} /usr/local/bin /usr/X11R6/bin)

     if ($?prompt) then
             # An interactive shell -- set some stuff up
             set filec
             set history = 1000
             set ignoreeof
             set mail = (/var/mail/$USER)
             set mch = `hostname -s`
             set prompt = "${mch:q}: {\!} "
             umask 2
     endif

  path语句告诉你的shell哪里能找到你要执行的程序. 它从列出的第一个目录
开始寻找与你输入的命令相匹配的文件. 如果找到就开始执行那个程序.

  它不会在没有列出的目录里寻找可执行文件. 哪怕就在你的当前目录下. 所以
如果你的当前目录没在path的列表里, 即使你要执行的文件就在这里也不能被找
到.

  如果要执行当前目录下的文件, 你得在命令前面加一个"./" . 例如, 你在
/usr/local/www/cgi-bin/目录里要测试一个编好的程序. 它名叫getdata.pl,
你输入getdata.pl, 然而并没有你期待的HTML输出, 你只是得到了一条错误信
息, getdata.pl: Command not found. 这是因为你的path语句里没有包含"."
目录. 要想这个文件被执行你得输入:

./getdata.pl

  现在你会看到期待的HTML. 除非你编的程序有误, 输出的是你所用的编程语言
的错误信息.

一个 TCSH 的例子

  就象前面提及的, tcsh在csh的基础上增加了很多特性使得命令行界面更加易用.
这是一个能够体现出tcsh优越性的.cshrc文件的例子:


     #tcsh .tcshrc file

     alias h         history 25
     alias j         jobs -l
     alias la        ls -a
     alias lf        ls -FA
     alias ll        ls -lF
     #alias su       su -m  -- bad for su'ing to root..

     setenv  EDITOR  vim
     setenv  PAGER   less

     set path = ( ~/bin /usr/local/bin /bin /usr/{bin,games} /usr/sbin /sbin /usr/local/samba/bin /usr/X11R6/bin /usr/local/java/bin .)

     setenv IRCNICK ringzero
     setenv IRCSERVER irc2.magic.ca
     setenv NNTPSERVER news.sentex.ca

     if ($?prompt) then
             # An interactive shell -- set some stuff up
             set filec
             set fignore = .o                # ignore object files for filec
             set showmatch                   # for programming
             set history = 100 
             set savehist = 75               # tcsh version of history..
             set ignoreeof
             set mail = (/var/mail/$USER)
             set prompt="vinyl:{%h}%~ %% "   # tcsh version of above!

             set watch = (1 gabor any mike any adrian any pwardrop any)

             umask 2
     endif

  第一点值得注意的是有关setenv的行. 在这个例子里, 它们设置了使用新的阅读
软件和irc客户端软件的环境变量. 另一个感兴趣的地方是set fignore = .o , 它
使得file completion(set filec)(译者注: 我对tcsh不太熟悉,我猜想这里的file
completion 是指类似bash的命令补齐的东西,但又不敢确定,所以照搬下来了)忽略
结尾是".o"的文件. 如果你是一个C程序员的话这很有用, 因为你要编辑的是一个
".c"文件而不是".o"文件. set showmatch 是 tcsh 特有的另一个file completion
机制. 至于它的用途, 自己试试吧! set prompt 选项为你的shell设置了一个很
友好的提示符. 它会在任何时候显示你的当前目录. 看起来会象这样:

     mark:{123}~ % cd /usr/src
     mark:{124}/usr/src %

  注意波浪号表示你的home目录. 现在你已经知道了很多tsch和csh选项了, 如果想
知道更多,最好的方法是man tcsh! 所有两种shells的特征(比如tcsh的"watch"特征)
都在man page里. 自己去体验一下你所喜欢的那些窍门吧!

        注意:

        如果你更改了你的.cshrc文件, 你可以用source .cshrc来使你的
        变动立即生效!

2. 设置更多的虚拟控制台(Virtual Terminals)

  (译者注: 想来想去还是决定把Virtual Terminals译为虚拟控制台,
   因为记得有人把Pseudo terminals称作虚拟终端的)

  一个虚拟控制台是一个内建在服务器主控制台上的终端. 它使你能同时打开好
几个屏幕, 当然一次只能看到一个. 缺省情况下设置了4个虚拟终端, 但只有3个
能用.按ALT加F2或F3(F1是一开始的那个)可以切换到第二或第三个虚拟控制台. 
现在你会在屏幕上看到登录画面, 这和第一个虚拟控制台看起来没有什么不同. 
按ALT加F1回到原来的屏幕.

  要增加虚拟控制台, 你必须以超级用户身份访问/dev目录. 然后运行MAKEDEV
程序. MAKEDEV是一个shell脚本, 所以你得用sh shell解释器来执行它. 在提示符
下输入:

cd /dev

sh MAKEDEV vty 16

        注意:

        (全部用大写输入MAKEDEV, 大小写有本质的区别)

  这将建立16个虚拟控制台. 它们可以用ALT+F?来访问. (译者注: 但是F键只有12个)
但是在你能使用它们之前你还要在/etc/ttys文件里激活它们. 去到/etc/目录里然后
用vi来编辑/etc/ttys文件.

cd /etc

vi ttys

#
# $Id: ttys,v 1.2 1998/09/02 01:34:57 brian Exp $
# @(#)ttys  5.1 (Berkeley) 4/17/89
#
# name  gettytype  status    comments
#
# This entry needed for asking password when init goes to single-user mode
# If you want to be asked for password, change "secure" to "insecure" here
console noneunknown off secure
#
ttyv0 "/usr/libexec/getty Pc"   cons25  on  secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc"   cons25  on  secure
ttyv2 "/usr/libexec/getty Pc"   cons25  on  secure
#ttyv3  "/usr/X11R6/bin/xdm -nodaemon"  xterm off secure
ttyv3 "/usr/libexec/getty Pc"   cons25  on  secure
ttyv4 "/usr/libexec/getty Pc"   cons25  on  secure
ttyv5 "/usr/libexec/getty Pc"   cons25  on  secure
ttyv6 "/usr/X11R6/bin/xdm -nodaemon"  xterm off secure
# Serial terminals
# The 'dialup' keyword identifies dialin lines to login, fingerd etc.
ttyd0 "/usr/libexec/getty std.9600" dialup  off secure
ttyd1 "/usr/libexec/getty std.9600" dialup  off secure
ttyd2 "/usr/libexec/getty std.9600" dialup  off secure
ttyd3 "/usr/libexec/getty std.9600" dialup  off secure
# Pseudo terminals
ttyp0 none      network   secure
ttyp1 none      network   secure
ttyp2 none      network   secure
ttyp3 none      network
(译者注: 原文里是一个图, 所以用我的/etc/ttys文件来代替)

  如果你运行X window, 必须保留一个关掉的虚拟控制台. 缺省情况下,
ttyv4 是关闭的.

  你要在标着Virtual Terminals的部分添加几行. 如果你制造了16个虚拟
控制台设备, 那么你现在有16个虚拟控制台要配置. 也就是说在/etc/ttys
文件里要有16行有关虚拟控制台的内容; 现在还只有4行. 你可以通过拷贝
粘贴这些行来完成:

ttyv2 "/usr/libexec/getty Pc" cons25 on secure

  把光标移到这行后按yy然后按j使光标下移再按12p来使这行被粘贴12次.现在
你有了ttyv2的12份拷贝, 你得把它们改为二进制数字. 从4开始,然后是5,6,
7,8,9,a,b,c,d,e,f.

  完成后你就在/etc/ttys里配好了从ttyv1 - ttyvf的虚拟控制台.

  在vi里你能用简单的方法来完成替换,把光标移到你要改变的数字上按r键再
输入要替换成的数字,然后按j使光标下移再重复前面的工作.

  结束编辑后按ZZ退出vi. 现在要重起init进程. 以超级用户身份输入:
kill -HUP 1

  现在你的虚拟控制台已经随时待命了.

3. 增加一个硬盘

  先要从物理上安装硬盘. 保证电缆已经接好, 从第一针到电源插头.(注意,
数据线上的红带要与电源线相邻). 再确保有电供给驱动器.

  然后重新启动FreeBSD,FreeBSD在启动的时候会检测出这个驱动器. 如果没有
的话用"-c"参数reboot. 在启动提示符下进入visual config使合适的控制器被
激活. 最可能的情况是你使用的核心是自己建立的并且附加的IDE驱动器以被核
心禁止,或者在一个SCSI被核心禁止的系统上添加第一个SCSI驱动器. 如果控制
器只是被核心*禁用*而不是删除, 只须在visual config里把它激活就行了. 否
则你必须重建核心以加入适当的控制器和驱动.

  如果你错过了启动时的信息, 登录后在提示符下敲dmesg. 这将重现你的启动
信息.

/usr/> dmesg | more

  如果安装的是SCSI驱动器, 要确保驱动器已被SCSI BIOS找到并且用了适当的
SCSI termination.

  一旦所有东西都被找到, 就可以开始FreeBSD下的配置了.

******************************************************************

  要做的第一件事就是清扫干净磁盘上原有的任何东西. 很多硬盘驱动器厂商已
把新的驱动器分好区并且已格式化成DOS FAT文件系统. 在余下的部分, 我们假
设找到的硬盘驱动器是sd1, 也就是电缆上的第二个SCSI驱动器(用SCSI ID 1).
下面是如何清除FAT垃圾:

dd if=/dev/zero of=/dev/rsd1 count=100

  然后要为驱动器准备一个"disk label". 假设你计划整个硬盘都在FreeBSD下
使用:

disklabel -Brw sd1 auto

  *把rsd1和sd1替换成你添加的硬盘,不要在一个正在使用的磁盘上进行这些操作.
这将清除磁盘上的每样东西, 为FreeBSD能使用它做好准备. 一切顺利的话将不需要
使用fdisk.

  如果你计划在FreeBSD下把整个硬盘分成一个区, 那么用刚才 disklabel 建立的
缺省的单一分区就行了, 否则的话你要用disklabel编辑器来创建更小的分区.你也
许需要在磁盘上增加一个交换分区, 例如.

  编辑第一个IDE盘的disklabel:

disklabel -e wd0

# /dev/rwd0c:
type: ESDI
disk: wd0s1     
label: 
flags:
bytes/sector: 512
sectors/track: 51
tracks/cylinder: 13
sectors/cylinder: 663
cylinders: 722
sectors/unit: 479298
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # milliseconds
track-to-track seek: 0  # milliseconds
drivedata: 0 

8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
 a:    65536        0    4.2BSD        0     0     0   # (Cyl.    0 - 98*)
 b:    85936    65536      swap                        # (Cyl.   98*- 228*)
 c:   479298        0    unused        0     0         # (Cyl.    0 - 722*)
 e:    61440   151472    4.2BSD        0     0     0   # (Cyl.  228*- 321*)
 f:   266386   212912    4.2BSD        0     0     0   # (Cyl.  321*- 722*)


  这部分需要动动脑筋,以使那些数字正确. 给一个分区分配容量,较容易的方法是
给你要分配的分区一个通过计算得出的柱面(cylinders)数. size 是分区的扇区数
目. offset 是前一个分区的最后一个扇区. 分区 a 从扇区0开始. 分区必须在你
所分配给分区的柱面的范围内开始和结束. 计算分区大小的方法是, tracks/cylinder
(每柱面的磁道数)乘以sectors/cylinder(每柱面的扇区数)再乘以你分配给分区的
柱面数.(扇区数*磁道数*柱面数=分区大小) 计算offset的方法是, 上个分区的大
小加上个分区的offset.(Size+Offset=下个分区的Offset)

  fstype是你在分区上使用的文件系统的类型. FreeBSD通常使用的文件系统是
4.2BSD. swap是交换文件使用的文件系统. FAT是DOS分区使用的文件系统.分区a
为启动扇区保留,它为空表示不需要启动扇区.

  分区 b 保留作交换文件. 它不能从offset 0开始. 它的前面必须要有一个分
区. 分区 e 可以从offset 0 开始并且可以是任意大小, 所以交换分区可以放在
分区 e 的后面.

  分区 c 不会被改变. 要从分区c开始制造你的文件系统.

  现在要用newfs命令在磁盘创建一个文件系统. 如果你使用的是整个磁盘, 可以
用disklabel 自动建立的c分区.

newfs /dev/rsd1c

  c分区总是整个驱动器 - 所以这种情况下你建立的文件系统也就包括了整个磁盘.

  如果你把磁盘分的更小, 你必须在每个分区上使用newfs来建立文件系统,交换分
区除外.

  最后,你需要mount驱动器. 在这里我们假设你已用mkdir创建了"mount point"
/d2 .

mount /dev/sd1c /d2

  顺利的话, 你可以看到象这样的东西:

     #vinyl % df -k

     Filesystem  1K-blocks     Used    Avail Capacity  Mounted on
     /dev/sd0a       31775    13530    15703    46%    /
     /dev/sd0s1f   1913091  1086207   673837    62%    /usr
     /dev/sd0s1e     29727    12663    14686    46%    /var
     procfs              4        4        0   100%    /proc
     /dev/sd1c     4108717   616594  3163426    16%    /d2

  现在你要在/etc/fstab文件里创建一个条目以使它在每次启动时都被mount.
否则你每次都要手工执行mount. 你要为创建的每个分区建立fstab条目,包括
交换分区.

  此外可以在man page里参考: fstab mount disklabel dmesg dd 和 newfs 


4. 系统配置文件选项

    4.1 重要的启动时初始化选项
    4.2 网络配置子项
    4.3 (其他)网络daemon & NFS选项
    4.4 网络时间服务选项
    4.5 网络信息服务(NIS)选项
    4.6 网络路由选项
    4.7 系统控制台选项
    4.8 其他管理选项
    4.9 Allow local configuration override at the very end here

    注意:

    所有参数都必须括在单引号或双引号里. 多个条目间用空格格开

4.1 重要的启动时初始化选项

swapfile="NO" 

     # 设定交换文件的名字,如果希望使用辅助交换文件的话.
     # Set to name of swapfile if aux swapfile desired.

apm_enable="NO" 

     如果希望激活APM(高级电源管理)设为YES

pccard_enable="NO" 

     要配置PCCARD设备的话设为YES.

pccard_mem="DEFAULT" 

     如果ccard_enable=YES, 这是卡的内存地址.

pccard_ifconfig="NO" 

     以太网pccard的特殊配置(否则 NO).

local_startup="/usr/local/etc/rc.d /usr/X11R6/etc/rc.d" 

     本地启动目录.在启动期间,FreeBSD会搜索某些目录,并执行里面的任何
     程序.有些象Windows里的"启动"文件夹.local_startup选项让你指定那
     些目录在启动期间会被搜索.可以列多个目录,中间用空格格开.它们将按
     顺序被搜索,每个文件都会被执行.这是除/etc/rc.local外另一个启动程
     序的方法.


4.2. 网络配置子项

基本网络选项: 

hostname="myname.my.domain" 

     这是你的主机名. 如果你连在Internet上的话还要包括域名.这个名字
     也会出现在你的DNS表里.

nisdomainname="NO" 

     设定 NIS 域 如果使用 NIS (否则 NO).

firewall="NO" 

     防火墙类型 (参见 /etc/rc.firewall) 否则 NO.

tcp_extensions="YES" 

     # 允许 RFC1323 & RFC1544 扩展 (否则 NO).

network_interfaces="lo0" 

     这是你配置你的所有网卡的地方.每块网卡都要有一项.lo0
     是环路(loopback)设备也称作"localhost".网卡,比如ed0
     (NE2000)和fxp0(Intel Ether Express)在上面加入.

ifconfig_lo0="inet 127.0.0.1" 

     在这里配置你上面列出的每块网卡.

ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" 

     通过lo0为localhost设置一个别名.

4.3. (其他)网络daemon & NFS选项:

syslogd_enable="YES" 

     Syslog 是你的登录服务.它把所有的错误记录在/var/log/.它用
     /etc/syslog.conf来配置. 

syslogd_flags="" 

     # syslogd 的命令参数 (如果被允许).

inetd_enable="YES" 

     这是你所有的网络服务. 如果它被禁止你将不能telnet到这台计算机
     上. 它通过/etc/inetd.conf来配置. 它管理着所有动态服务, 也就是
     说在需要时才会被启动的服务, 比如: finger, telnet,rlogin, ftp,
     pop3 等等...

inetd_flags="" 

     # inetd 的参数.

named_enable="NO" 

     这将运行你的Internet域名服务, 或者说, BIND. 如果你已经有了一个
     DNS你就不必把它打开了.它通过 /etc/namedb/named.boot来配置, 除非
     你专门指定了另一个. 你将会有至少两个DNS servers.

named_flags="-b /etc/namedb/named.boot" 

     这是你指定给named的配置文件.

kerberos_server_enable="NO" 

     # 运行一个kerberos主服务程序 (否则 NO).
     # Run a kerberos master server(or NO).

rwhod_enable="NO" 

     # 运行 rwho daemon (否则 NO).

amd_enable="NO" 

     # 以$amd_flags运行amd服务. (否则 NO).

amd_flags="-a /net -c 1800 -k i386 -d my.domain -l syslog /host /etc/amd.map" 

     例子

nfs_client_enable="NO" 

     # 这台主机是一台 NFS 客户机 (否则 NO).

nfs_client_flags="-n 4" 

     # nfsiod 的参数 (如果被允许).

nfs_server_enable="NO" 

     # 这台主机是一台 NFS 服务器 (否则 NO).

nfs_server_flags="-u -t 4" 

     # nfsd 的参数 (如果被允许).

weak_mountd_authentication="NO" 

     # 运行 PCNFSD / 其他 non-root nfsd (否则 NO).

nfs_reserved_port_only="NO" 

     # 仅在安全端口上提供NFS (否则 NO).

rpc_lockd_enable="NO" 

     # 运行 NFS rpc.lockd (*broken!*) 如果 nfs_server.

rpc_statd_enable="YES" 

     # 运行 NFS rpc.statd 如果 nfs_server (or NO).

portmap_enable="YES" 

     # 运行 portmapper 服务 (否则 NO).

portmap_flags="" 

     # portmap 的参数(如果被允许).

xtend_enable="NO" 

     # 运行 X-10 电源控制器 daemon.

xtend_flags="" 

     # xtend 的参数(如果被允许).

4.4. 网络时间服务选项: 

timed_enable="NO" 

     运行时间 daemon (否则 NO).

timed_flags="" 

     timed 的参数(如果被允许).

ntpdate_enable="NO" 

     运行ntpdate 使时间同步 (or NO).

ntpdate_flags="" 

     ntpdate 的参数(如果被允许).

xntpd_enable="NO" 

     允许 xntpd 网络时间协议 (否则 NO).

xntpd_flags="" 

     xntpd 的参数(如果被允许).

tickadj_enable="NO" 

     运行 tickadj (否则 NO).

tickadj_flags="-Aq" 

     tickadj 的参数(如果被允许).

4.5. 网络信息服务(NIS)选项:

nis_client_enable="NO" 

     我们是一台NIS客户机 (否则 NO).

nis_client_flags="" 

     ypbind 的参数 (如果被允许).

nis_ypset_enable="NO" 

     在启动时运行ypset (否则 NO).

nis_ypset_flags="" 

     ypset 的参数(如果被允许).

nis_server_enable="NO" 

     这是一台NIS服务器 (否则 NO).

nis_server_flags="" 

     ypserv 的参数(如果被允许).

nis_ypxfrd_enable="NO" 

     启动时运行rpc.ypxfrd(否则 NO).

nis_ypxfrd_flags="" 

     rpc.ypxfrd 的参数(如果被允许).

nis_yppasswdd_enable="NO" 

     启动时运行rpc.yppasswdd(否则 NO).

nis_yppasswdd_flags="" 

     rpc.yppasswdd 的参数(如果被允许).

4.6. 网络路由选项: 

defaultrouter="NO" 

     这里设置你的缺省网关.这是你连接Internet的路由器的IP地址.如果
     你没有设置这项,你将仅能ping通同一子网内的地址.如果你的IP地址
     是10.1.1.3,子网掩码是255.255.255.0,你将能看到10.1.1.2而不能
     看到10.1.2.2,因为没有设置缺省的路由.

static_routes="" 

     静态路由是作为路由器位于两个不同网络间的机器的高级选项. 

gateway_enable="NO" 

     如果你的机器要当作网关的话设成YES.如果你机器上有不只一块网卡并
     把它们用作路由,网桥,ipnat或者当作拨号服务器时设定为YES.

router_enable="YES" 

     设置为 YES 以允许一个路由daemon.

router="routed" 

     如果被允许,这是路由daemon的名字.

router_flags="-q" 

     路由daemon的参数.

mrouted_enable="NO" 

     作 multicast routing (参见 /etc/mrouted.conf).

ipxgateway_enable="NO" 

     设成 YES 以允许 IPX 路由.

ipxrouted_enable="NO" 

     设成 YES 以运行 IPX 路由 daemon.

ipxrouted_flags="" 

     IPX 路由 daemon的参数.

arpproxy_all="" 

     替换已废除的核心选项 ARP_PROXY_ALL. 当作拨号服务器时需要.

4.7. 系统控制台选项 

keymap="NO" 

     /usr/share/syscons/keymaps/* 里的keymap (否则 NO).

keyrate="NO" 

     设键盘速率为: slow, normal, fast (否则 NO).

keybell="NO" 

     bell to duration.pitch or normal or visual (or NO).

keychange="NO" 

     功能键的缺省值 (否则 NO).

cursor="NO" 

     光标类型 {normal|blink|destructive} (否则 NO).

scrnmap="NO" 

     /usr/share/syscons/scrnmaps/* 里的屏幕映射(否则 NO).

font8x16="NO" 

     /usr/share/syscons/fonts/* 里的8x16字体(否则 NO).

font8x14="NO" 

     /usr/share/syscons/fonts/* 里的8x16字体(否则 NO).

font8x8="NO" 

     /usr/share/syscons/fonts/* 里的8x8字体(否则 NO).

blanktime="NO" 

     blank time (in seconds) or "NO" to turn it off.

saver="NO" 

     屏幕保护: blank/daemon/green/snake/star/NO. 当你没有X运行时
     这里设置屏幕保护.

moused_type="NO" 

     rc.conf(8) 的man page 里列出了可用的选项.

moused_port="/dev/cuaa0" 

     设置你的鼠标端口 (必须,mousetype 被设置).

moused_flags="" 

     moused 的附加参数.

4.8. 其他管理选项 

cron_enable="YES" 

     运行周期作业的daemon. Cron 是调度事件发生的 "daemon". 以一定的周期
     运行三个标准脚本文件: /etc/daily /etc/weekly 和 /etc/montly.
     你可以通过配置它们来完成要做的事

lpd_enable="YES" 

     运行排队打印机 daemon. 你需要这个来使用打印机. 它通过/etc/printcap
     配置.

lpd_flags="" 

     lpd 的参数(如果被允许).

sendmail_enable="YES" 

     运行 sendmail daemon (否则 NO). 你需要这个来获得e-mail服务除非你换成
     了其他邮件daemon. 它通过/etc/sendmail.cf来配置.

sendmail_flags="-bd -q30m" 

     -bd is pretty mandatory.

savecore_enable="NO" 

     核心crash时转储内存的映像 (否则 NO).

dumpdev="NO" 

     Device name to crashdump to (if enabled).

check_quotas="NO" 

     检查磁盘限额 (否则 NO).

accounting_enable="NO" 

     打开进程记帐 (否则 NO).

ibcs2_enable="NO" 

     启动时装入Ibcs2 (SCO) 模拟器 (否则 NO).

linux_enable="NO" 

     启动时装入Linux 模拟器 (or NO). 参见设置Linux模拟器部分.

rand_irqs="NO" 

     Stir the entropy pool (like "5 11" or NO).

4.9.   Allow local configuration override at the very end here 

     if [ -f /etc/rc.conf.local ]; then
             . /etc/rc.conf.local
     fi


5. 添加和安装软件

  在FreeBSD下添加/安装软件很容易.FreeBSD维护着一套"packages",它包含了几乎
所有流行软件的已预先建立好并马上可以运行的二进制文件. 如果你有一套CD, 它们
全在#1盘上,你能直接浏览(有个叫packages的目录..), 或者用"/stand/sysinstall"
工具,到Post Configuration,然后选择Packages. 将出现一个分类列出所有packages
并带有简短描述的屏幕.

  通常,你需要ftp到ftp.freebsd.org以取得一个package的最新版本 - 
ftp://ftp.freebsd.org/pub/FreeBSD/packages-stable 是你要注意的地方.如果你
下载了一个package,它会以 .tgz结尾.你不必人工的untar/展开它. 只须用命令
"pkg_add".

  例如: 我下载了一个叫 spaz-1.32.tgz 的package

      
     1. su to root (你需要成为root 来安装 packages)

     2. pkg_add spaz-1.32.tgz 

  就是这样!现在这个package已在你系统上被安装和设置. 如果你用csh或tcsh,你得
用rehash来让你的shell重新扫描系统里的 bin 目录...

  这个package已被登记到/var/db/pkg目录里 - 你能 cd 到那里取得一个目录列表
来看看你系统上安装了哪些packages. 如果你不再需要一个package,你能用
pkg_delete命令来删除它: pkg_delete spaz-1.32.tgz (从/var/db/pkb目录)

  FreeBSD的ports系统的工作也一样, 使用port登记使删除以后不再需要的东西变得
很容易. 不同点是ports使用的是"源程序",需要被编译.如果你有一个Internet连接,
并且安装了ports tree(在安装FreeBSD时会询问你是否需要)可以 cd 到/usr/ports
里看看.

  假设你要在/usr/ports/net/spaz目录里安装port:

      1. su root

      2. cd /usr/ports/net/spaz
 
      3. make
      
      注意:

      这里make实际在为你下载port!

      4. make install (如果前面的make成功的话,现在将把你的劳动果实安装到
      系统的 bin/lib 目录,随时供你使用)

      5. make clean (如果你想清除编译时产生的目标文件以节省空间的话)

  再说一遍,在/var/db/pkg里使用pkg_delete删除已安装的ports.


6. 怎样安装Linux模拟器

  Linux模拟器允许你在你的FreeBSD系统上运行Linux的二进制文件.实际上它工作
的很好.这是运行这个模拟器的两种方法:

    * 编译到核心里

    * 当作一个可装载的核心模块(lkm)

  不管用哪种方法, 你都必须先从ports collection里安装Linux库.

cd /usr/ports/emulators/linux_lib

make install

  这将把所有的Linux库安装到/usr/compat. 还将安装脚本/usr/bin/linux,它在
需要Linux模拟器的时候装入可装载的核心模块.

  如果你希望用lkm来运行Linux模拟器, 你所有要做的就是在/etc/rc.conf里修改
下面这行.

    linux_enable="YES"      # Linux emulation loaded at startup (or NO). 

  它将在启动时激活Linux模拟器. 如果要在不重新启动的情况下开始Linux模拟器,
只需输入 linux.(需要root身份)

  如果不用lkm,你需要在核心配置文件里包括下面一行,然后重建核心

      options         COMPAT_LINUX 

  Linux模拟器将总是被允许.而不必修改你的rc.conf文件.
--
※ 修改:.con 于 Feb 19 02:13:57 修改本文.[FROM: 203.208.6.130]
※ 来源:.网易 BBS bbs.netease.com.[FROM: 203.208.6.169]

[关闭][返回]