freebsd 10.0 初体验


分区选择手动,磁盘类型选择GPT,分区类型如下:

freebsd-boot 64K(大小必须设置成这样)

freebsd-swap 4G

其他分区…

系统安装之后:
1.首先设置一个比较快的portsnap服务器,如果系统默认的地址你的访问速度也很快,可以不修改

#vi /etc/portsnap.conf
设置SERVERNAME=portsnap.cn.freebsd.org ,你可以设置相对你速度快点的服务器的地址

2.执行下面命令

#portsnap fetch extract 这里直接下载ports并且解压

这样就完成了下载ports系统以及解压到/usr下面了,以后更新只需要执行

#portsnap fetch update

FreeBSD安装软件报错 “You must upgrade the ports-mgmt/pkg port first.” 的解决方法

cd /usr/ports/ports-mgmt/pkg

make

make reinstall

pkg2ng

3.设置最快的ports镜像

用ports安装软件的时候,如果没有设置相对于你来说最快的ports服务器地址,那就会默认的 ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/,这个地址对于很多地方来说是很慢的。

修改 /etc/make.conf 加入以下代码

MASTER_SITE_OVERRIDE=
ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}\
ftp://ftp.tw.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}

如果你有最快的地址,可以加到上面去,下载就会块了

软件安装
这是我最欣赏freebsd的优点之一,软件收集全面,分类明确,安装简便,编译安装方式足够适应系统并优化。
举例,比如我要需要安装sudo,值得注意的是,安装前更新下port树不失为一个好习惯。

查找软件

#cd /usr/ports
#make search key=firefox

运行下列命令进行安装

#cd /usr/ports/security/sudo
#make install clean

会弹出选项,按照需求进行选择,然后OK,等待编译完成吧,这个软件就装完了。
通过ports安装的软件,其配置文件路径一般在如下位置

#vi /usr/local/etc/sudoers

Same thing without a password

%wheel ALL=(ALL) NOPASSWD: ALL

表示wheel组的成员,不用切换用户,就可以sudo方式执行root权限的命令

卸载

#cd /usr/ports/www/firefox
#make deinstall clean

卸载所有安装的ports:

#cd /var/db/pkg
#pkg_delete *
#reboot

升级 firefox:

#cd /usr/ports/www/firefox
#make deinstall reinstall clean

定制 port

有时候,你会发现安装某个 port 的时候会有奇怪的事情发生。比如 editors/vim,安装的时候竟然会自动安装 glib1 和 gtk1,而明明自己的系统上已经有了 glib2 和 gtk2。

这是因为有些 port 有很多不是默认的编译选项。这个时候你需要设定一些环境变量让 port 知道该怎么做。对于 editors/vim,你需要设定 WITH_GTK2 来让 vim 依赖 gtk2 而不是 gtk1。

你可以在 csh 下:

setenv WITH_GTK2
或者在 bash 下:

export WITH_GTK2=yes
也可以把这个选项写到 /etc/make.conf 里面:

WITH_GTK2=yes
或者你也可以指定在更新/安装某个 port 的时候使用特定的环境变量。添加如下代码(注:csh 的语法,不是 sh/bash)到 /etc/make.conf 里面:

.if ${.CURDIR:M*/ports/editors/vim}
WITH_GTK2=yes
.endif
这样下次升级 editors/vim 的时候就会自动依赖到 gtk2 而不是 gtk1 了。

定制 Ports 系统

1 设定 Ports 树的位置

当你把 Ports 树放在非默认位置(/usr/ports)的时候,就需要修改一些环境变量让 Ports 中的工具知道你的修改。这个变量就是 PORTSDIR。 比如,你把 Ports 树放在了 /opt/ports,那么 在 sh/bash 中,执行如下命令:

export PORTSDIR=/opt/ports
在 csh 中,你需要执行如下命令:

setenv PORTSDIR /opt/ports
妥贴的办法是把这个环境变量放到超级用户 root 的 dot.cshrc 文件(/root/.cshrc)里面。又或者你想让普通用户也能用到这个环境变量,可以考虑放到 /etc/profile 或者 /etc/csh.cshrc 里面。

注意!如果你使用 portsnap 命令来同步 Ports 树,而你的 Ports 树不在默认位置,请在 /etc/portsnap.conf 中也设定你的 Ports 树的位置。

注意!如果你使用 csup/cvsup 同步 Ports 树,而你的 Ports 树不在默认位置,请在你的 ports-supfile 中也设定你的 Ports 树的位置。

2 设定 dist 文件的位置

所谓 dist 文件,就是 port 的源码。一般情况下,这些源码都是用 tar 打包然后用 bzip2 压缩的。默认的位置是在 $PORTSDIR/distfiles。 但是,你也可以把这些 dist 文件放到另外的地方。需要设定的环境变量就是 DISTDIR。你可以根据上面的例子来设定这个环境变量。

3 设定工作目录

如果没有设定工作目录,ports 系统默认在 port 的目录进行编译。比如你的 firefox 在 /usr/ports/www/firefox,那么默认将在 /usr/ports/www/firefox/work 下编译 firefox。这样有一个缺点,如果你的 /usr 目录不是很大的话,在编译某些大软件的时候,比如 gnome,kde 桌面系统时,你的 /usr 空间可能会不足。

解决的办法之一就是设定环境变量 WRKDIRPREFIX,比如

export WRKDIRPREFIX=/opt/obj/portbld

这个时候 ports 系统就会到 /opt/obj/portbld/usr/ports/www/firefox/work 下编译 firefox。

运行你安装的软件
这里有一点小麻烦,但绝对不大,只占用你大约不到30秒的时间。如果你安装了应用软件,比如nginx,请按照下列步骤完成

vi /etc/rc.conf

然后新起一行,输入

nginx_enable=”YES”

保存退出
然后运行下面的命令

cd /usr/local/etc/rc.d/nginx start

此时访问你的服务器,如能看到nginx的欢迎信息,就说明你的nginx正常启动了。

即时生效新安装的命令

FreeBSD 的cshell会缓存环境变量PATH中指定的目录里的可执行文件,以加快查找速度,这会造成一些新安装的命令无法运行,最典型的例子就是刚安装的vim居然提示找不到命令。用如下命令解决问题:

rehash

列出无法补齐的候选文件

想要让FreeBSD的csh像bash那样按tab列出无法补齐的候选文件,标准的方法是按Ctrl+D。但如果一定要用tab的话,在/etc/csh.cshrc中加入:

set autolist

有关于FreeBSD的网络配置
虽然sysinstall也能修改主机的网络相关,但修改完网卡的相关参数后sysinstall会提示Would you liketo bring the le0 interface up right now?(你想让le0生效吗?)但我兴冲冲的执行此步后,发现新改的网卡参数并没重新重奖;所以我建议修改/etc/rc.conf文件后用命令使其立即生效。

#vi /etc/rc.conf
hostname=”bsd.mydomain.com”
ifconfig_le0=”inet 192.168.1.108 netmask 255.255.255.0”
defaultrouter=”192.168.1.1” #defaultrouter是网关地址

修改后需要让修改立即生效。这里不建议reboot服务器,有个小技巧与大家分享下,即
sh /etc/rc

域名解析DNS配置如下,示例为google提供的一组DNS服务器地址

#vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

进行安全的远程登录

修改/etc/ssh/sshd_config文件,

Port 2122 # 默认为22,更改后减少别人暴力破解的机会

AllowUsers user1,user2 #指定能够远程登录的用户,其它用户登录时直接拒绝

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys

备注:
密钥认证,默认已经设置好,在用户根目录生成 .ssh/authorized_keys即可。
密钥可借助SecureCRT、puttygent等工具协助完成

查看FreeBSD服务器的一些基础情况和信息

①查看CPU:

sysctl hw.model hw.ncpu
dmesg | grep “CPU:”

②查看内存:

dmesg | grep “real memory” | awk -F ‘[( )]’ ‘{print $2,$4,$7,$8}’

查看swap:

top | grep “Swap:” | awk ‘{print $1,$2}’

③查看硬盘:

diskinfo -vt /dev/ad0

④看硬盘大小及硬件使用情况:

dmesg | grep “sector” | awk ‘{print $1,$2}’
df -h

⑤查看服务器品牌:

dmesg | grep “ACPI APIC”

⑥查看系统内核,命令跟Linux下一样:

uname -a


freebsd 10.0 初体验
https://ajasonwang.github.io/2014/11/14/freebsd-100/
作者
Wang Jia
发布于
2014年11月14日
许可协议