FreeBSD从入坑到死在坑里--系统安装完成后的工作


前几日已经完成了操作系统的安装,以本人小白菜的目标和需求,在FreeBSD安装完成后应该做一下这些工作。

1、更换软件软件源;

2、安装常用软件;

3、ZFS文件系统调优。

Step 1

更换软件源,这里又可以啰嗦几句了。查了些资料发现,FreeBSD要实现软件包的管理需要ports、pkg、portmaster。其中portmaster是ports的管理工具。说的不对的欢迎指出,共同学习。

对于软件源选哪个,不知从什么时候开始我是很迷信中科大源的,让我一度放弃了使用多年的163源。至少Debian我只用中科大源。那么FreeBSD也就选中科大吧。

首先更换pkg源。在中科大开源镜像站说明也中看到,如果需要使用https的url,那么得先安装security/ca_root_nss。

pkg install -y security/ca_root_nss

安装完成后去修改软件源文件。中科大源页面中也有提到,默认得软件源文件是/etc/pkg/FreeBSD.conf,这玩意会跟着freebsd-update的执行被更新,所以改这个没啥用。

需要创建一个用户级别的软件源文件。

mkdir -p /usr/local/etc/pkg/repos
vi /usr/local/etc/pkg/repos/FreeBSD.conf

文件中写入如下内容:

FreeBSD: {
    url: "https://mirrors.ustc.edu.cn/freebsd-pkg/${ABI}/quarterly",
    mirror_type: "srv",
    signature_type: "none",
    fingerprints: "/usr/share/keys/pkg",
    enabled: yes
}

把系统原软件源文件改名,这个步骤可以不做。然后更新索引。

mv /etc/pkg/FreeBSD.conf /etc/pkg/FreeBSD.conf.bak
pkg update -f

pkg源搞完了,现在继续搞ports源,因为ports可以使用axel进行多线程下栽,所以这里先安装一下axel,顺便看看pkg源是否正常生效。

pkg install -y axel

获取获取 ports 目录,可以通过修改/etc/portsnap.conf文件中的SERVERNAME参数来修改portsnap 源。我这里直接使用默认的portsnap 源。

portsnap fetch

拉取列表并检查更新已经安装的ports。

portsnap extract
portsnap update

以后更新 ports 目录时,直接执行portsnap fetch update就可以了。

开始配置ports源。

vi /etc/make.conf

文件内写入如下内容:

FETCH_CMD=axel -n 5 -a   #axel使用5线程下载。
DISABLE_SIZE=yes
MASTER_SITE_OVERRIDE?=https://mirrors.ustc.edu.cn/freebsd-ports/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=https://mirrors.163.com/freebsd-ports/distfiles/${DIST_SUBDIR}/

这里多加了一个163的源。ok,ports源也完成了。安装一下portmaster。

cd /usr/ports/ports-mgmt/portmaster
make install clean

执行更新命令测试一下是否有错误。

portmaster -a

Step 2

安装常用软件,vim必须得装,vi实在是用不习惯。我内网的授时服务是chrony提供的,所以这个也要装。下面的命令是按找我的需求来输入的,软件安装因人而异。

pkg install -y wget git curl vim chrony python3

Step 3

ZFT文件系统优化,可以去下面的wiki和官方文档看。我根据我自己的需求改了做了四项优化。 https://wiki.freebsd.org/ZFSTuningGuide https://docs.freebsd.org/en/books/handbook/zfs/

修改/boot/loader.conf,加入以下内容:

vfs.zfs.arc_min="1G"
vfs.zfs.arc_max="2G"
vfs.zfs.prefetch_disable="1"
vfs.zfs.arc_min:需要为ZFS文件系统页缓存预留的最小内存,一般设置为内存总量的25%~50%;
vfs.zfs.arc_max:需要为ZFS文件系统页缓存预留的最大内存,保证系统稳定的前提下,能搞多大就搞多大。
vfs.zfs.prefetch_disable:大数据块预读取,默认0,表示开启。设置为1,表示关闭。关闭可挺高磁盘性能。

以上就是我做的一些安装后的工作,欢迎指正和讨论。