Jail环境初始化

FreeBSD初始化 类似,在 FreeBSD Thin(薄) Jail 环境中按照自己的要求进行初始安装

备注

这里安装命令假设Jail名字是 dev

所有需要安装的软件包名字或版本可以通过 pkg search XXX 关键字来找到

针对jail的安装命令是: pkg -j <jail_name> install <package_name_list> ,所以为了方便执行,可以先设置 alias :

设置alias
jail_name=mdev
alias pkg="pkg -j $jail_name"

这样本文后续执行的安装命令就可以直接借用 FreeBSD初始化 以及 FreeBSD编程工具 中相对应的命令。

devops初始化

安装必要运维工具:

安装运维工具

# 如果保持物理主机纯净,将所有日常工作、开发和维护环境都迁移到虚拟机和Jail中,那么只安装以下最少软件
# tmux 建议同时安装 terminfo-db 以获取terminfo数据库
pkg install sudo tmux terminfo-db

# 如果直接在物理主机工作,可以补充安装git等工具
# pkg install sudo tmux terminfo-db bash git-lite tree

ssh初始化

  • mdev jail中创建用户组和用户 admin:

在jail内部创建admin
# 创建uid为1000的admin组
# 物理主机安装可以跳过,因为installer有一个交互步骤完成了这个工作
pw groupadd admin -g 501

# 创建admin用户
# 物理主机安装可以跳过,因为installer有一个交互步骤完成了这个工作
pw useradd admin -g 501 -u 501 -d /home/admin -m -s /bin/sh

# 将admin用户加入wheel组
pw groupmod wheel -m admin

# 为admin设置密码,不过不是必须的,可以设置ssh key登录
# 物理主机安装可以跳过,因为installer有一个交互步骤完成了这个工作
passwd admin

# 修改 /usr/local/etc/sudoers 设置wheel组用户(也就是admin)无需密码sudo
# %wheel ALL=(ALL:ALL) NOPASSWD: ALL
echo "%wheel ALL=(ALL:ALL) NOPASSWD: ALL" >> /usr/local/etc/sudoers

# 设置自动启动ssh
sysrc sshd_enable="YES"

dev 主机的用户 admin 添加ssh key,现在就可以像普通虚拟机一样远程ssh登录到容器内部了

部署开发环境

  • dev jail中安装所有使用的开发工具:

安装开发工具
pkg install bash ruby lua54 node npm-node22 \
    python311 py311-pip go \
    tmux graphviz

# 发行版14.3提供的go版本是 1.21
# 根据 gopls 说明,Go 1.21增加了向前兼容支持,所以只要使用go 1.21或更高版本安装gopls,任何必要的工具链升级都将自动处理,就像任何其他依赖项一样
#
# 发行版现在不通过lua软件包名安装,而是要要指定lua版本软件包进行安装,例如 lang/lua51 , lang/lua52 , lang/lua54
# 当前建议安装 lua54 , 即安装lua5.4.7
#
# 发行版14.3提供的node版本是 22.16

构建 NeoVim IDE

python初始化

  • 安装python和pip:

安装python
JAIL=dev
alias pkg 'pkg -j $JAIL'

pkg install python311 py311-pip
cd ~
python3.11 -m venv d2l
source ~/d2l/bin/activate.csh

备注

d2l Python virtualenv 环境就绪后,开始部署 深度学习环境 以便进一步学习实践 深度学习

参考