Debian 12

一、前言

最近发现了 Debian Linux 系统,使用的也是 deb 格式的安装包和 apt 管理器。另外由于使用最新版的 Ubuntu 的时候发现默认下载的 Snap 源的软件,导致更新后一些软件会有问题,不能正常使用。虽然可以关闭,但是 emmmm,一言难尽。

趁此机会,把玩一下,嘿嘿~本文基于 Debian12 版本。

二、基础配置

安装 sudo 命令

1
apt install sudo

Debian12 默认没有安装该命令。

安装的时候虽然可以选择中国国内的镜像,但是默认的 安全更新 使用的源依旧是官方的地址,而且查阅部分(北京外国语、清华源)镜像的帮助说明,也不推荐使用镜像站安全更新软件源,因为镜像站往往有同步延迟。但是啊,使用官方地址更新时非常的慢!浪子更新的时候两个小时,两个小时啊还没更完!太恐怖了,所以浪子使用了镜像地址。修改 /etc/apt/sources.list,浪子使用的 北京外国语镜像站

/etc/apt/sources.list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.bfsu.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
# deb-src https://mirrors.bfsu.edu.cn/debian/ bookworm main contrib non-free non-free-firmware

deb https://mirrors.bfsu.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
# deb-src https://mirrors.bfsu.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware

deb https://mirrors.bfsu.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
# deb-src https://mirrors.bfsu.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware

deb https://mirrors.bfsu.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src https://mirrors.bfsu.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware

# 默认使用的官方源,注释该行内容,禁止使用官方源
# deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

更新并安装一些常用工具

1
2
3
4
# 更新
apt update && apt upgrade
# 安装常用构建工具
apt install build-essential git iproute2 curl wget neovim -y

语言

1
2
3
4
5
6
7
8
9
# 查看当前语言
locale
# 图形化选择语言
sudo dpkg-reconfigure locales
# 再次查看语言是否安装
locale -a

# 如果没有改变执行下面的语句
export LANG=zh_CN.utf8

时区/时间

系统安装的时候如果选择的是中国地区,那么就已经配置好了。如果安装时候全是默认的配置,可以使用以下方式修改:

1
2
3
4
5
6
7
8
9
10
# 查看当前的时区
timedatectl
# 查看支持的时区列表
timedatectl list-timezones
# 是否含有中国时区
timedatectl list-timezones | grep Asia/Shanghai
# 设置中国时区
timedatectl set-timezone Asia/Shanghai
# 再次查看
timedatectl

允许 root 用户远程登录

默认情况下,Debian12 也是不允许 root 用户使用密码进行远程登录的~~(好吧,其实是 SSH)~~。所以需要配置一下。编辑 sudo vim /etc/ssh/sshd_config 文件,修改/添加下面的内容,保存退出。

/etc/ssh/sshd_config
1
2
#PermitRootLogin prohibit-password
PermitRootLogin yes

然后重启 sshd 服务就可以开心的使用 root 用户密码登录啦!

1
systemctl restart ssh

简单介绍一下使用 SSH 登录服务器,这种方式并不需要修改上面的文件,这也是推荐的安全做法。

  1. 首先,生成一对 SSH 密钥对;

    1
    ssh-keygen -t ed25519 -f ~/.ssh/server_key
  2. 然后上传公钥到服务器;

    1
    ssh-copy-id -i ~/.ssh/pubkey user@host
  3. 测试

    1
    ssh -i ~/.ssh/pubkey user@host

现在应该可以直接连接服务器了,并且不需要使用 root 用户的密码进行访问。

ssh-copy-id 使用 SSH 协议连接到目标主机并上传 SSH 用户密钥。该命令编辑服务器上 authorized_keys 的文件。如果目录不存在,它将创建 .ssh 该目录。如果授权密钥文件不存在,它将创建该文件。如果添加 -f 选项,可能会导致 authorized_keys 文件中存在多个密钥副本。

bash 命令别名

除了部分发行版 Linux 中可以直接使用 ll 命令,其它系统默认是不支持的,所以使用自己喜欢的别名命令还是需要配置的。为了不污染 /etc/profile 中的原有内容,此处举例使用外部文件编写内容,然后引入系统配置中。

/etc 目录下创建自己的别名命令文件:sudo touch /etc/alias_bashrc,Debian12 中默认是没有这个文件名的,可以直接使用,当然,各位少侠可以按照自己喜好自己取文件名,这里只是举例。

/etc/alias_bashrc
1
alias ll='ls -al'

编写完毕仍然是不能直接在 bash 中使用命令的,在全局文件 /etc/profile 中引入,让系统加载自定义别名文件内容供系统识别(添加下面使用 # 包括的内容即可):

/etc/profile
1
2
3
4
5
6
7
8
9
10
...
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi

############# 引入自己的别名文件 #############
if [ -f /etc/alias_bashrc ]; then
. /etc/alias_bashrc
fi
...

然后刷新文件:source /etc/profile,之后就可以在 bash 中使用 ll 啦,快去试试吧!

vim 配置

vim 配置,默认的感觉不太好用。这段配置并不使用任何插件。

/etc/vim/vimrc
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
32
33
34
35
36
37
38
39
40
41
42
43
" 文件编码
set encoding=utf-8
set fileencoding=utf-8

" 语法高亮
set syntax=on

" Tab键的宽度,tabstop 可简写为 ts
set tabstop=4
" 使用空格代替制表符
set expandtab
" 自动缩进时,缩进长度为4
set shiftwidth=4
" 可以用 Backspace 键一次删除4个空格
set softtabstop=-1

" 突出显示当前行
set cursorline

" 去掉输入错误的提示声音
set noeb

" 高亮显示匹配的括号
set showmatch

" 总是显示行号,number 简写 nu
set number

" 侦测文件类型
filetype on
" 高亮搜索的文本
set hlsearch

"代码补全
set completeopt=preview,menu
" 增强模式中的命令行自动完成操作
set wildmenu

" 状态行显示的内容(包括文件类型和解码)
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%Y-%m-%d\ -\ %H:%M\")}

" 1=启动显示状态行, 2=总是显示状态行
set laststatus=2

三、其他软件

docker

参考下面两篇文章:
https://docs.docker.com/engine/install/debian/
https://u.sb/debian-install-docker/

如果出现类似下面的报错:

1
Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 192.168.47.2:53: server misbehaving

编辑 vim /etc/resolv.conf 文件在末尾添加以下内容:

/etc/resolv.conf
1
2
nameserver 8.8.4.4
nameserver 8.8.8.8

podman

Debian12 官方版使用的版本为 4.3.1,如果你想更新到最新版的 Podman,请参考 更新至最新稳定版

关于 PPA

最近了解了 PPA(Personal Package Archives,个人软件包存档),和 Arch/Manjaro 的 AUR 类似,使用过 Linux 的应该都知道,Linux 上的软件包更新是需要经过审核的,而使用 apt 作为下载源的官方包里可能很长时间才更新。这个时候就可以考虑使用 PPA。使用 PPA 的时候需要用户确认信任该源,这要求用户对自己添加的源要负责。

可以使用以下命令添加 PPA:

1
2
sudo add-apt-repository ppa:mmk2410/intellij-idea
sudo apt update

部分的 PPA 下载速度也是感人,可以替换源:

1
将所有的 http://ppa.launchpad.net 替换为 http://launchpad.proxy.ustclug.org
  • 目前来看,PPA 中的包还较少,很多工具不是版本较旧就是没有,并且 PPA 只推荐喜欢命令行或者了解 Linux 的人使用,小白就不要用了。
  • 搜索 PPA 可以在这个网站搜索。

Debian12 系统版本库

Debian12 的官方软件包只支持 openjdk-17,嗯,对的。算了,列个表吧。

emmm,太懒了。后来在 Debian 官方文档 中找到了 Debian 各个版本中对应的软件版本号。文档 还是很不错的,有需要自行查看。

防火墙

Debian12 使用的是 nftables,没错,我之前一直没有听说过,直到现在才知道。吾生也有涯,而学也无涯。

介绍和常用操作,红帽的这篇文章还是非常不错的:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html/securing_networks/getting-started-with-nftables_securing-networks

APT 清理系统空间

删除包

1
apt remove --purge [package]

–purge 会删除 package 的配置文件。

删除不需要的软件包

1
apt autoremove

该选项会删除为满足某个已安装软件包的依赖关系而自动安装的库和软件包。如果该软件包被移除,这些自动安装的软件包在系统中将失去作用。它还会删除在系统升级中自动安装的旧 Linux 内核。

清理 apt 的缓存

APT 软件包管理系统将 DEB 软件包的缓存保存在 /var/cache/apt/archives 中。随着时间的推移,此缓存可能会变得非常大,并容纳许多不需要的包。

可以使用以下命令查看此缓存的大小:

1
sudo du -sh /var/cache/apt

有两种方式清理 apt 的缓存,一种是只删除过时的软件包,比如那些被最近更新被取代的软件包:

1
apt autoclean

或者完全删除:

1
apt clean

清理系统日志

每个 Linux 发行版都有一个日志记录机制,可帮助调查系统中发生的情况:例如日志记录数据、系统日志消息、标准输出和错误。随着时间的推移,这些日志会占用大量的磁盘空间。您可以使用以下命令检查日志大小:

1
journalctl --disk-usage

有一些方法可以清理 systemd 日志日志。最简单的方法是清除早于某些日期的日志。

1
sudo journalctl --vacuum-time=3d

本站由 江湖浪子 使用 Stellar 1.29.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。