这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

安装完成后的基本配置

在 debian 12.4 安装完成后的基本配置

1 - timeshift

安装配置 timeshift 进行备份

备注:安装完成之后,第一时间安装 timeshift 进行备份,后续操作中出现任何失误都可以通过 timeshift 来选择性的恢复到中间状态,避免出错后需要重新安装。

具体操作参考:

https://skyao.io/learning-ubuntu-server/docs/installation/timeshift/

安装

先 su 到 root,再进行安装:

su root
apt install timeshift

配置

找到 timeshift 分区的 UUID:

lsblk -f

例如这个机器有三块硬盘, /var/timeshift 所在的分区 UUDI 为 3c5ad47e-4318-4797-8342-7e602ac524d2

$ lsblk -f
NAME        FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme1n1                                                                            
`-nvme1n1p1 ext4   1.0         ccae6bf3-d4cd-422d-b67a-b5b8dfe83fc6  782.2G     0% /var/data2
nvme0n1                                                                            
`-nvme0n1p1 ext4   1.0         eff3a45e-be5e-4f5e-a969-0998a8a10e33  782.2G     0% /var/data
nvme2n1                                                                            
|-nvme2n1p1 vfat   FAT32       C4B5-2470                             505.1M     1% /boot/efi
|-nvme2n1p2 ext4   1.0         41949492-a351-4770-80f6-d4c7dc5b23bc  171.2G     1% /
`-nvme2n1p3 ext4   1.0         3c5ad47e-4318-4797-8342-7e602ac524d2     48G     0% /var/timeshift

然后设置 backup_device_uuid ,注意 timeshift 在第一次使用时会读取 default.json 文件:

vi /etc/timeshift/default.json

验证一下:

timeshift --list

这个时候还没有进行备份,没有 snapshot:

timeshift --list
First run mode (config file not found)
Selected default snapshot type: RSYNC
Mounted '/dev/nvme2n1p3' at '/run/timeshift/3424/backup'
Device : /dev/nvme2n1p3
UUID   : 3c5ad47e-4318-4797-8342-7e602ac524d2
Path   : /run/timeshift/3424/backup
Mode   : RSYNC
Status : No snapshots on this device
First snapshot requires: 0 B

No snapshots found

此时会自动创建配置文件 /etc/timeshift/timeshift.json,后续修改配置就要修改这个文件。

配置 excludes

除了基本的 backup_device_uuid 外,还需要配置 excludes 以排除不需要 timeshift 进行备份的内容。

{
  "backup_device_uuid" : "3c5ad47e-4318-4797-8342-7e602ac524d2",
  ......
  "exclude" : [
    "/root/**",
    "/home/**",
    "/var/timeshift/**",
    "/var/data/**",
    "/var/data2/**",
    "/var/data3/**"
  ],
  ......
}

需要排除的内容通常包括用户目录(/root//home/),以及资料存储如我这里的 "/var/data/ 等几块用来存储的硬盘,以及 timeshift 自身所在目录 /var/timeshift/

配置自动备份

设置每天/每周/每月的自动备份:

{
  ......
  "schedule_monthly" : "true",
  "schedule_weekly" : "true",
  "schedule_daily" : "true",
  ......
  "count_monthly" : "2",
  "count_weekly" : "3",
  "count_daily" : "5",
  ......
}

创建快照

先不做任何操作,在操作系统安装完成之后,第一时间进行备份:

timeshift --create --comments "first backup after install"

第一次备份大概要消耗2.3g的存储空间。

2 - path修改

修改默认path路径避免找不到命令的错误

问题描述

debian 12 默认的 PATH 路径有点少:

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/games

很多常见的命令都会因为不包含在 PATH 中而无法使用,报错 “command not found”:

$ usermod -aG sudo sky
bash: usermod: command not found

打开 /etc/profile 文件看到:

if [ "$(id -u)" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH

看上去像是没有自动 source /etc/profile,比如我用 su 到 root 账号后执行 source,那就正常的得到上面的 PATH:

$ su root
Password: 
$ id
uid=0(root) gid=0(root) groups=0(root)
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/games
$ source /etc/profile
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

普通账号的修复

对于普通账号,比如我安装时建立的 sky 账号,只要简单在 .zshrc 中加入:

# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
export PATH=$HOME/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

重新登录 sky 账号,验证即可:

$ echo $PATH

/home/sky/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

这个需要先安装 zsh 和 oh-my-zsh,bash 应该类似,只是我目前基本只用 zsh。

root 账号的修复

貌似没有找到解决不自动 source /etc/profile 的办法,所以只能手工执行

source /etc/profile

来解决。或者,类似 sky 账号那样,安装 zsh 和 oh-my-zsh,但发现 root 账号不能改成默认使用 zsh,只能在 su 到 root 账号之后,手工执行 zsh 来从 bash 换到 zsh。

3 - sudo设置

增加账号的sudo权限

安装

先 su 到 root 账号,安装 sudo:

apt install sudo

问题

安装时默认的 sky 账号是没有 sudo 权限的:

$ id
uid=1000(sky) gid=1000(sky) groups=1000(sky),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),100(users),106(netdev)

$ sudo ls
[sudo] password for sky: 
sky is not in the sudoers file.

解决方案

先 su 为 root,然后为 sky 账号加入 sudo:

# 如果没有修复 path 的问题,则会报错找不到 usermod
# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
usermod -aG sudo sky

退出 sky 账号,再次登录就可以 sudo 了:

$ ls                                                                                      
[sudo] password for sky: 
bin  debian12  temp  work
$ id
uid=1000(sky) gid=1000(sky) groups=1000(sky),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),100(users),106(netdev)

4 - git

安装配置 git

直接 apt 安装:

apt install git

检查版本:

$ git version
git version 2.39.5

配置代理

mkdir -p ~/.ssh/
vi ~/.ssh/config

增加内容为:

Host github.com
HostName github.com
User git
# http proxy
#ProxyCommand socat - PROXY:127.0.0.1:%h:%p,proxyport=3333
# socks5 proxy
ProxyCommand nc -v -x 192.168.0.1:7891 %h %p

6 - 网络代理

设置网络代理

设置网络代理

在 openwrt 上安装 openclash,支持 socks5 和 http 代理,因此设置很简单,在 .zshrc 中加入以下内容:

# proxy
alias proxyon='export all_proxy=socks5://192.168.20.1:7891;export http_proxy=http://192.168.20.1:7890;export https_proxy=http://192.168.20.1:7890;export no_proxy=127.0.0.1,localhost,local,.local,.lan,192.168.0.0/16,10.0.0.0/16'
alias proxyoff='unset all_proxy http_proxy https_proxy no_proxy'

需要开启代理时,输入 proxyon 命令就设置好代理了。不使用时 proxyoff 关闭。

安装配置 privoxy

但在 tplink 6088 路由器上安装的 openwrt 上没有 openclash,只有 ShadowSocksR Plus+ , 只支持 socks5 代理。之前还能在 openwrt 上通过安装 privoxy 软件来将 socks5 转为 http,但最近 openwrt 上的 privoxy 软件已经没有了。因此需要自己在电脑上安装 privoxy 软件来进行转换。

https://www.privoxy.org/

sudo apt install privoxy

修改配置前备份一下:

 sudo cp /etc/privoxy/config /etc/privoxy/config.original

修改配置内容为:

# 这里修改原有的配置
listen-address  0.0.0.0:7890
listen-address  [::1]:7890

# 在最后加入这行
forward-socks5t   /               192.168.0.1:7891 .

重启 privoxy:

sudo systemctl restart privoxy.service

验证,

export http_proxy=http://127.0.0.1:7890;export https_proxy=http://127.0.0.1:7890
wget https://www.youtube.com/

最后,在 .zshrc 中加入以下内容,将 http/https 代理设置为本地 privoxy 的端口:

# proxy
alias proxyon='export all_proxy=socks5://192.168.20.1:7891;export http_proxy=http://127.0.0.1:7890;export https_proxy=http://127.0.0.1:7890;export no_proxy=127.0.0.1,localhost,local,.local,.lan,192.168.0.0/16,10.0.0.0/16'
alias proxyoff='unset all_proxy http_proxy https_proxy no_proxy'

参考:

7 - 安装其他软件

安装其他软件

安装操作系统相关的软件

sudo apt install dkms

这个过程中会自动安装 linux-headers 。

常用工具软件

sudo apt install htop unzip zip curl

网络速度测试软件:

sudo apt install iperf iperf3

修复 locale 报错

默认安装之后经常在执行各种命令时看到如下的警告:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_CTYPE = "UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

可以通过执行 locale 命令来重现这个警告:

解决方案,

vi ~/.zshrc

增加内容:

export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

执行

source ~/.zshrc

验证结果。

参考: