FreeBSD入门
1. 介绍
FreeBSD,全称 Free Berkeley Software Distribution (BSD),是一个自由和开源的类 Unix 操作系统。
FreeBSD 的第一个版本于 1993 年 11 月从 386BSD 开发,最新的版本为 2023 年 11 月 20 日的 14.0-RELEASE (FreeBSD version history - Wikipedia)。
FreeBSD 主要特点是稳定
,有坚如磐石
(Rock-stable Performance) 之称,适合作为服务器
的操作系统。
2. 下载和安装
下载地址: https://www.freebsd.org/where/
版本选择:CD (disc1.iso结尾)、DVD (dvd1.iso结尾)和regular USB memory sticks (memstick.img结尾)
安装: Chapter 2. Installing FreeBSD | FreeBSD Documentation Portal
注意⚠️:
- 额外的组件,全部取消不要选
- 磁盘格式,选择 ZFS
- 设置 root 用户密码,建议复杂一点
- 设置网络,IPv4 和 IPv6 都要
- 设置开机启动服务,只保留 sshd
- 安全性设置,保持默认(都不选)
参考: 在 Linode 上安装 FreeBSD – 小众开发者
3. 一些常见设置
本节大部分设置来自于:
更多参考:
- Chapter 3. FreeBSD Basics | FreeBSD Documentation Portal
- Chapter 4. Installing Applications: Packages and Ports | FreeBSD Documentation Portal
- Chapter 26. Updating and Upgrading FreeBSD | FreeBSD Documentation Portal
3.1 账户设置
# 用 root 用户安装 sudo
pkg install sudo
# 创建一个普通用户(用户名 myself ),默认添加到 staff 分组
adduser -g staff -s sh -w yes
Username: myself
# 创建一个 admin 分组,并添加 myself 和 root 两位用户
pw groupadd admin
pw groupmod admin -m myself root
# 创建一个 wheel 分组,只添加 root 用户
pw groupadd wheel
pw groupmod wheel -m root
# 从 admin 组里移除用户 myself
pw groupmod admin -d v
# 删除 admin 用户组
pw groupdel admin
# staff,admin 和 wheel 权限的区别:
# staff,任何新建的用户都属于这个组,权限最低
# admin,具有管理系统的权限,可以使用 sudo 命令
# wheel,超级管理员权限,可以任意修改系统功能(这个名称来源于俚语 big wheel,意为大人物)
# 在 /usr/local/etc/sudoers.d/ 下新建两个文件 admin 和 wheel
# admin内容如下:
%admin ALL=(ALL) ALL
# wheel内容如下,多了个 NOPASSWD: ,使用 sudo 时不需要输入密码
%wheel ALL=(ALL) NOPASSWD:ALL
3.2 配置源
默认的源在 /etc/pkg/FreeBSD.conf
# $FreeBSD$
#
# To disable this repository, instead of modifying or removing this file,
# create a /usr/local/etc/pkg/repos/FreeBSD.conf file:
#
# mkdir -p /usr/local/etc/pkg/repos
# echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf
#
FreeBSD: {
url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes
}
推荐安装 security/ca_root_nss
可以使用 HTTPS
防止被劫持
pkg install -r FreeBSD security/ca_root_nss
源地址可以改为 HTTPS:
...
url: "pkg+https://pkg.FreeBSD.org/${ABI}/quarterly",
...
重新生成索引:
$ pkg update -f
Updating FreeBSD repository catalogue...
pkg: Repository FreeBSD has a wrong packagesite, need to re-create database
Fetching meta.conf: 100% 163 B 0.2kB/s 00:01
Fetching packagesite.txz: 100% 6 MiB 6.5MB/s 00:01
Processing entries: 100%
FreeBSD repository update completed. 30336 packages processed.
All repositories are up to date.
国内可用 中科大 的源, FreeBSD pkg 源使用帮助 — USTC Mirror Help 文档 推荐的设置方法为:
创建 /usr/local/etc/pkg/repos/FreeBSD.conf
,操作如下:
mkdir -p /usr/local/etc/pkg/repos
echo 'FreeBSD: { url: "pkg+https://mirrors.ustc.edu.cn/freebsd-pkg/${ABI}/quarterly" }' > /usr/local/etc/pkg/repos/FreeBSD.conf
修改配置后,运行 pkg update -f
更新索引。
3.3 更新系统
常规的安全更新:
freebsd-update fetch
freebsd-update install
小版本或者大版本更新,13.2是要更新到的版本号:
freebsd-update upgrade -r 13.2-RELEASE upgrade
freebsd-update install
安装后需要重启系统 reboot
,然后再继续完成安装:
freebsd-update install
返回版本:
freebsd-update rollback
3.4 安装软件
FreeBSD 的包管理工具是 pkg
,默认的安装目录是 /usr/local/
- 查找包:
pkg search
- 更新包:
pkg update
- 安装一个或多个包:
pkg install cmake ninja ...
- 更新已安装的包:
pkg upgrade
- 本地包安装命令
pkg install xxx.pkg
- 卸载包:
pkg delete
- 清除本地包缓存:
pkg clean
,会清空缓存在/var/cache/pkg/
里的包 - 自动清理不用包:
pkg autoremove
3.5 SSH 设置
设置文件: /etc/ssh/sshd_config
3.6 更换默认 Shell
安装 bash
:
pkg install bash
bash 的配置文件路径是 /usr/local/etc/profile
,需要创建这个文件,内容如下:
# source *.sh files from /usr/local/etc/profile.d if they are readable
if [ -d /usr/local/etc/profile.d ]; then
for i in /usr/local/etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
安装 zsh
:
pkg install zsh
chsh -s /usr/local/bin/zsh
touch ~/.zshrc
4. 末了的话
FreeBSD committer 徐逸锋先生访谈 - delphij’s Chaos:
李:作为一个 FreeBSD 的开发者,您希望对用户说什么?
徐:坚持使用,一开始可能很难用,但是常用的也就那么点东西,熟悉了就不难了。