0%

台式机-UbuntuServer26.04与环境配置

引言

主要目录

1
2
/home/cs # 用户目录
/data # 数据目录

主要端口

  • gitea:3000:代码托管

配置源

1
sudo apt install vim # 竟然连初始系统连传统的 vi 也用不了
1
2
3
4
5
6
7
8
9
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

sudo vi /etc/apt/sources.list

# 在内容中添加
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ resolute main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ resolute-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ resolute-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ resolute-security main restricted universe multiverse
1
sudo apt-get update && sudo apt-get upgrade

基础环境配置

1
2
3
4
5
6
7
8
9
10
11
# for ifconfig
sudo apt install net-tools

sudo apt install python3-pip
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 查看温度的工具
sudo apt install lm-sensors
sensors # 使用

sudo apt install git
1
2
3
4
# vi ~/.bashrc
# 在最后添加
alias python=python3
alias pip=pip3

时间配置

1
2
3
4
sudo timedatectl set-timezone Asia/Shanghai
sudo hwclock --systohc # sudo: 'hwclock': command not found

date

静态网络 IP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# cat /etc/netplan/00-installer-config.yaml
# 避免已废弃的 gateway4 字段:自 Ubuntu 24.04 的 Netplan 1.0 起,gateway4 已被废弃。请使用新版语法,在 routes 部分定义默认网关(如示例所示)。

# This is the network config written by 'subiquity'
network:
ethernets:
eno1:
dhcp4: no
dhcp6: no
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8
match:
macaddress: 00:d8:61:52:db:6e
set-name: eno1
version: 2
1
sudo netplan apply

命令行运行时间

1
2
3
4
# sudo vi /etc/profile

# 在最后添加
export HISTTIMEFORMAT="[%F %T]"

磁盘格式化 - 挂载数据盘

  • 2T 的磁盘格式化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 查看,为sdb需分区与格式化
lsblk 
#
fdisk /dev/sdb
# n
# p
# enter x3
# w
sudo mkfs.ext4 /dev/sda1
sudo mkdir /data
sudo mount /dev/sda1 /data
# 查看uuid
sudo blkid
sudo blkid /dev/sdb1

# 更新系统挂载
sudo vim /etc/fstab


# 自动挂载
# 查看dev:lsblk,需挂载的为sdb/sdb1
# 查看 uuid
ls -l /dev/disk/by-uuid
# sudo vi /etc/fstab,在/的挂载行后添加需要挂载的项
/dev/disk/by-id/dm-uuid-LVM-bqv1zZ3etRNkZ1kcuKNT0tRsyepzNqLomdeJcIwcZwOF0DKOeIi0U2V2j1PU3kEZ / ext4 defaults 0 1
UUID=b3f435dc-3362-41a6-8e8b-bae5e3af7d6d /data ext4 defaults 0 2
# ext4 是文件系统格式;defaults 代表常用的挂载选项;0 表示不备份;2 表示开机时会检查这个分区
1
2
3
# 保存退出后,先别急着重启,用这个命令检查有没有写错:
sudo mount -a
# 如果没有任何错误输出,就说明配置没问题

显卡驱动安装

1
2
# 查看是否在用nouveau
lsmod | grep nouveau
  • 禁用 nouveau 驱动
1
2
3
4
5
6
7
8
9
10
11
12
13
#  sudo vi /etc/modprobe.d/blacklist.conf  
# 在末尾加入下面两行

blacklist nouveau
options nouveau modeset = 0

# 使之生效
sudo update-initramfs -u
# 重启
sudo reboot

# 重启后查看
lsmod | grep nouveau
  • 安装 : 使用 ubuntu-drivers 工具(官方推荐)
1
2
3
4
5
6
7
8
9
10
11
# 查看所有可用驱动,带 "recommended" 标记的为推荐版本[reference:5][reference:6]
sudo ubuntu-drivers devices
# 或者使用list命令查看[reference:7]
sudo ubuntu-drivers list

# 对于服务器或计算任务,务必使用 --gpgpu 选项[reference:8]
sudo ubuntu-drivers install --gpgpu

安装 :
driver : nvidia-driver-595-open - distro non-free recommended
# -open,**开源(由NVIDIA官方发布)** 是面向未来的选择,也是官方推荐的方向
  • 问题:nvidia-smi 没有相关命令(安装的是 server 版的显卡驱动)
  • 解决方案:核心问题在于最小化安装,需要补装 nvidia-utils-595-server
1
2
3
sudo apt install nvidia-utils-595-server

nvidia-smi # 确认下
1
2
3
4
 # 挂载驱动
 modprobe nvidia
# 查看安装结果
 nvidia-smi
  • 卸载原有驱动(有需要时可参考)
1
2
3
4
# 卸载通过APT/ubuntu-drivers安装的驱动
sudo apt purge nvidia* -y
# 卸载通过.run文件安装的驱动
sudo ./NVIDIA-Linux-*.run --uninstall

redis

1
2
3
4
5
6
7
8
# redis 取消持久化
sudo vi /etc/redis/redis.conf
# 配置文件 注释 save 时间 并添加
save ""

sudo service redis stop
sudo rm /var/lib/redis/dump.rdb
sudo service redis start

mysql

  • For gitea,安装开源的 mariadb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
sudo apt install mariadb-server -y

# 视情况启动
sudo service mysql start
# 创建密码(sudo mysql_secure_installation不能用了)
# 从MariaDB 10.5 版本开始,安全初始化脚本已经重命名为:
sudo mariadb-secure-installation

# 登录
sudo mysql -u root -p

# 创建数据库
CREATE DATABASE gitea;
# 创建用户
CREATE USER gitea IDENTIFIED BY 'gitea';
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_bin';
GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea';

# 刷新权限
FLUSH PRIVILEGES;

# 测试连接
mysql -u gitea -p giteadb

# 删除
sudo apt remove mariadb-server
# 清理
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

登录root用户,需要 sudo mysql -u root -p

1
2
3
4
5
6
# 开放远程连接
# sudo vi /etc/mysql/mariadb.conf.d/50-server.conf
# 在下面这行前加# ,注释掉
bind-address =127.0.0.1
# 重启服务
sudo systemctl restart mysql

gitea

Gitea:进行 Git 项目托管的平台

官方文档
配置文件

  • API 接口:http://192.168.1.100:3000/api/swagger

安装

1
2
3
# 下载
wget -O gitea https://dl.gitea.com/gitea/1.26.1/gitea-1.26.1-linux-amd64
chmod +x gitea
  • 创建用户:
1
2
3
4
5
6
7
8
9
# 推荐用户名称为 git
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
  • 创建工作路径
1
2
3
4
5
6
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
1
2
3
4
sudo vim /etc/systemd/system/gitea.service
# 添加

sudo cp gitea /usr/local/bin/gitea

激活 gitea 并将它作为系统自启动服务:

1
2
sudo systemctl enable gitea
sudo systemctl start gitea

进入 安装页面 - Gitea: Git with a cup of tea 配置
安装完后配置相关路径只读

1
2
chmod 750 /etc/gitea
chmod 640 /etc/gitea/app.ini

未用到

系统时间配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 选择时区
sudo tzselect
# 更新系统设置
sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 写入硬件CMOS时间
sudo hwclock --systohc

# 测试
date


# 直接配置时间
sudo date -s MM/DD/YY # 修改日期
sudo date -s hh:mm:ss # 修改时间
# 写入硬件CMOS时间
sudo hwclock --systohc

网络配置(旧版)

  • 静态内网 ip 绑定
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
vi /etc/netplan/00-installer-config.yaml


# This is the network config written by 'subiquity'
network:
ethernets:
ensxxx:
dhcp4: false
addresses: [192.168.1.100/24]
optional: true
gateway4: 192.168.1.1
nameservers:
addresses: [1.1.1.1,8.8.8.8]
ens121f1:
dhcp4: true
version: 2
1
sudo netplan --debug apply # 应用IP

网络配置

  • LACP dynamic:网络 bonding
    • 即 mode 4(802.3ad):Dynamic link aggregation policy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: no
eno2:
dhcp4: no
bonds:
bond0:
interfaces: [eno1, eno2]
addresses: [192.168.2.2/24]
gateway4: 192.186.2.1
parameters:
mode: 802.3ad
transmit-hash-policy: layer3+4
mii-monitor-interval: 1
nameservers:
addresses:
- "8.8.8.8"
- "9.9.9.9"

关闭虚拟内存 swap

1
2
sudo vi /etc/fstab
# 注释掉 swap 那一行后重启

连接不上:自动挂起

  • 可能存在休眠模式

    1
    2
    3
    4
    5
    6
    # 执行关闭休眠
    sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
    # 查看
    sudo systemctl status sleep.target
    # 如有需要,进行恢复
    sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

安装中文字体

1
2
3
4
5
6
7
sudo apt-get install fonts-wqy-zenhei 
sudo cp xx.ttf /usr/local/share/fonts

# 刷新系统字体缓存,以便系统能够识别新安装的字体
fc-cache -f -v
# 查看当前系统中的所有字体
fc-list

遇到的问题

  • 问题:vi 操作无法右键复制选中的内容
  • 解决方案:编辑 Vim 配置文件(通常是 ~/.vimrc),在里面添加或找到并修改这一行:set mouse=v
    • 原理:set mouse=v 表示只在 Vim 的可视化模式(Visual Mode)下才启用鼠标,这样在正常浏览文件时,鼠标就用于终端的选择和复制,而不会触发 Vim 的内部操作
给博主来一杯卡布奇诺