首页
Search
1
Linux 下 Bash 脚本 bad interpreter 报错的解决方法
69 阅读
2
Arch Linux 下解决 KDE Plasma Discover 的 Unable to load applications 错误
51 阅读
3
Arch Linux 下解决 KDE Plasma Discover 的 Unable to load applications 错误
42 阅读
4
如何在 Clash for Windows 上配置服务
40 阅读
5
如何在 IOS Shadowrocket 上配置服务
40 阅读
clash
服务器
javascript
全部
游戏资讯
登录
Search
加速器之家
累计撰写
1,061
篇文章
累计收到
0
条评论
首页
栏目
clash
服务器
javascript
全部
游戏资讯
页面
搜索到
1061
篇与
的结果
2024-08-12
Debian / Ubuntu 手工添加 Swap 分区
本文将指导如何在 Debian 11 和 Ubuntu 22.04 下手工添加 Swap 分区。准备工作首先,检查你的系统是否已经有 Swap 分区:swapon -s 或free -m 如果没有返回结果或者 free -m 中 Swap 一列数值是 0,则表示你的系统没有 Swap 分区。创建 SWAP 分区我们可以使用 fallocate 命令创建一个 1GB 大小的 Swap 分区:fallocate -l 1G /swapfile 如果这个命令无法使用,请安装 util-linux 包:apt install util-linux 然后设置这个文件的权限:chmod 600 /swapfile 然后激活 SWAP 分区mkswap /swapfile swapon /swapfile 此时,你可以使用 swapon -s 或 free -m 命令查看 Swap 分区是否已经激活。设置开机自启我们需要编辑 /etc/fstab 这个文件,加入下面的内容即可:echo "/swapfile swap swap defaults 0 0" >> /etc/fstab 大功告成,使用 free -m 命令查看 Swap 分区是否正确:调整系统内核 Swappiness 值Swapiness 是 Linux 内核的一个属性,定义了系统使用交换空间的频率,Swapiness 的值在 0 到 100 之间 (默认是 60),一个低的值会使内核尽可能地避免交换,而一个高的值会使内核更积极地使用交换空间。这个值默认是 60,我们可以使用 cat /proc/sys/vm/swappiness 命令查看当前值。一般我们可以给他改成 10:echo "vm.swappiness=10" >> /etc/sysctl.conf 然后使用 sysctl -p 命令使其生效。关闭 Swap有时候我们需要关闭 Swap 分区,可以使用下面的命令:首先,停用 Swap 分区:swapoff -v /swapfile 然后检查 /etc/fstab,删除 /swapfile swap swap defaults 0 0 这一行。最后删除 /swapfile 这个文件:rm /swapfile
2024年08月12日
6 阅读
0 评论
0 点赞
2024-08-12
Debian / Ubuntu 安装 Caddy
本文将指导如何在 Debian 和 Ubuntu 下安装 Caddy。什么是 Caddy?Caddy 是一款开源的 Web 服务器,它设计简单,易于使用,并且有很多强大的功能。它可以自动处理 TLS (SSL),并且可以使用中间件扩展功能。Caddy 采用简单的配置语法,可以轻松配置路由,反向代理,重定向,缓存和其他功能。它还支持 HTTP/2,QUIC (HTTP/3) 和 WebSockets 协议,可以提供快速的网络性能。为什么尝试 Caddy?对我来说比较简单的原因是 nginx-quic 这个项目一直未发布正式版,想要一款简单的能支持 HTTP/3 的 Web 服务器软件,目前来说 Caddy 的选择是最合适的。Caddy 还支持自动化证书,对于懒人来说特别合适。安装 Caddy我们按照官方的安装方法,首先,安装一些必要的软件包:apt update apt upgrade -y apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates 然后加入 Caddy 的 GPG 公钥和 apt 源:curl -sSL https://dl.cloudsmith.io/public/caddy/stable/gpg.key | gpg --dearmor > /usr/share/keyrings/caddy.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/caddy.gpg] https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main" > /etc/apt/sources.list.d/caddy.list 然后更新系统后即可安装 Caddy:apt update apt install caddy 配置 Caddy默认的 Caddyfile 文件位于 /etc/caddy/Caddyfile,官方的教程在这儿,如果你习惯了 Nginx 和 Apache 的配置,那么此时应该会非常不习惯,我们就来一个最简单的例子把:我们需要绑定域名 example.com这个域名的文件位于 /var/www/example.com,默认首页文件名为 index.html我们需要开启 SSL 访问,并且访问 http 跳转到 https我们需要设置开启 TLS 1.2 和 TLS 1.3,并开启 HSTS Preload首先,设置 http://example.com/ 跳转到 https://example.com/:注意:默认情况如果下面的 example.com:80 和 example.com:443 没有配置其他的端口,Caddy 会自动使用 443 端口,并自动开启 http://example.com/ 跳转到 https://example.com/,这里的示范是为了给有些奇怪的需求比如一些特定的端口访问 HTTP 和 HTTPS,则需要手动配置。example.com:80 { redir https://{host}{uri} permanent } 然后我们按照 Mozilla 的推荐配置写入 Caddyfile:example.com:443 { tls { protocols tls1.2 tls1.3 ciphers TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 } header { Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" Referrer-Policy strict-origin-when-cross-origin X-Frame-Options SAMEORIGIN X-Content-Type-Options nosniff X-XSS-Protection "1; mode=block" } root * /var/www/example.com file_server { index index.html } encode gzip zstd } 当然也可以设置 www.example.com 跳转 example.com:www.example.com:80 { redir https://example.com{uri} permanent } www.example.com:443 { redir https://example.com{uri} permanent } 然后把以上所有内容合并成一个 Caddyfile 文件,放到 /etc/caddy/Caddyfile,然后检查 Caddy 配置:caddy validate --config /etc/caddy/Caddyfile 输出如下内容则表示配置正确:root@debian ~ # caddy validate --config /etc/caddy/Caddyfile 2022/12/26 17:31:22.347 INFO using provided configuration {"config_file": "/etc/caddy/Caddyfile", "config_adapter": ""} 2022/12/26 17:31:22.349 WARN http server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server {"server_name": "srv1", "http_port": 80} 2022/12/26 17:31:22.349 INFO http enabling automatic HTTP->HTTPS redirects {"server_name": "srv0"} 2022/12/26 17:31:22.349 INFO tls.cache.maintenance started background certificate maintenance {"cache": "0xc00018ad90"} 2022/12/26 17:31:22.350 INFO tls.cache.maintenance stopped background certificate maintenance {"cache": "0xc00018ad90"} Valid configuration 有强迫症的也可以把你的 Caddyfile 文件美化一下:caddy fmt /etc/caddy/Caddyfile --overwrite 最后重启 Caddysystemctl restart caddy 耐心等待自动签发 SSL 证书,然后我们就可以打开浏览器控制台查看 https://example.com/ 即可看到 SSL 证书已经自动部署,同时 HTTP/3 已经开启了:更多的配置可以参考官方文档或《Caddyfile 语法浅析》
2024年08月12日
5 阅读
0 评论
0 点赞
2024-08-12
Debian / Ubuntu 使用 xcaddy 自定义编译 Caddy
本文将指导使用 xcaddy 自定义编译 Caddy。上一篇文章介绍了如何安装使用 Caddy,但是 Caddy 的功能有时候并不能满足业务需求,如果想要使用更多的功能,就需要自定义编译 Caddy。xcaddy 是 Caddy 官方制作的用于自定义编译 Caddy 的工具,它可以帮助我们快速的编译出符合自己需求的 Caddy。安装 xcaddy我们按照官方的安装方法,首先,安装一些必要的软件包:apt update apt upgrade -y apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates 然后按照官方教程安装 Go:wget https://go.dev/dl/go1.22.1.linux-amd64.tar.gz rm -rf /usr/local/go && tar -C /usr/local -xzf go1.22.1.linux-amd64.tar.gz 然后把 go 加入系统环境变量:echo "export PATH=\$PATH:/usr/local/go/bin" >> /etc/profile 然后加入 Caddy 的 GPG 公钥和 apt 源:curl -sSL https://dl.cloudsmith.io/public/caddy/xcaddy/gpg.key | gpg --dearmor > /usr/share/keyrings/xcaddy.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/xcaddy.gpg] https://dl.cloudsmith.io/public/caddy/xcaddy/deb/debian any-version main" > /etc/apt/sources.list.d/xcaddy.list 然后更新系统后即可安装 xcaddy:apt update apt install xcaddy 重启打开 SSH 后检查一下 go 和 xcaddy 的版本:root@debian ~ # go version go version go1.19.5 linux/amd64 root@debian ~ # xcaddy version v0.3.1 h1:XKmnGnGTeB53hLUgnGr/R4JbTNSxh8IBAFcJkrtycso= 自定义编译 Caddy我们可以选择一些自己喜欢的模块,比如缓存模块和 Brotli 压缩模块:xcaddy build \ --with github.com/caddyserver/cache-handler \ --with github.com/ueffel/caddy-brotli 经过一段时间的编译以后,我们就可以在当前目录下看到一个名为 caddy 的二进制文件,这就是我们自定义编译的 Caddy 了。自定义 Caddy 和系统 Caddy 共存如果我们想要自定义 Caddy 和系统 Caddy 共存,可以使用官方的教程:首先,按照我们的教程安装 Caddy,安装完毕后,先停止 Caddy 服务:systemctl stop caddy 然后使用 dpkg-divert 命令将系统 Caddy 的二进制文件移动到 /usr/bin/caddy.default 并做软链接:dpkg-divert --divert /usr/bin/caddy.default --rename /usr/bin/caddy 然后把我们自己编译好的 Caddy 二进制文件移动到 /usr/bin/caddy.custom:mv ./caddy /usr/bin/caddy.custom 然后设置优先级,让我们的自定义 Caddy 优先启动:update-alternatives --install /usr/bin/caddy caddy /usr/bin/caddy.default 10 update-alternatives --install /usr/bin/caddy caddy /usr/bin/caddy.custom 50 此时我们可以看到默认的 /usr/bin/caddy 已经是我们自定义的 Caddy 了:root@debian ~ # ls -l /usr/bin/caddy lrwxrwxrwx 1 root root 23 Jan 22 10:52 /usr/bin/caddy -> /etc/alternatives/caddy* root@debian ~ # ls -l /etc/alternatives/caddy lrwxrwxrwx 1 root root 21 Jan 22 10:52 /etc/alternatives/caddy -> /usr/bin/caddy.custom 我们也可以使用 update-alternatives --config caddy 命令来切换系统安装的 Caddy 和自定义的 Caddy:root@be ~ # update-alternatives --config caddy There are 2 choices for the alternative caddy (providing /usr/bin/caddy). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/caddy.custom 50 auto mode 1 /usr/bin/caddy.custom 50 manual mode 2 /usr/bin/caddy.default 10 manual mode Press <enter> to keep the current choice[*], or type selection number: 我们可以看到默认的 Caddy 二进制文件是我们自定义的,你可以输入 0 (按照优先级自动) 1 (手工切换自定义 Caddy) 或 2 (使用系统默认 Caddy) 来修改并切换默认的 Caddy 版本。
2024年08月12日
5 阅读
0 评论
0 点赞
2024-08-12
Docker 安装 Mailcow 自建域名邮箱
本文将指导使用 Docker 安装 Mailcow 搭建自建邮箱。PS:本文同时适用于任何可安装 Docker 的 Linux 发行版。什么是电子邮箱?电子邮箱,即电子邮件,就是 Email,是指一种由一寄件人将数字信息发送给一个人或多个人的信息交换方式,一般会通过互联网或其他电脑网络进行书写、发送和接收信件,目的是达成发信人和收信人之间的信息交互。一些早期的电子邮件需要寄件人和收件人同时在线,类似即时通信。(Wikipedia)国内用户一般会使用网易 (@163.com)、腾讯 (@qq.com) 等免费邮箱服务,国外用户一般会使用 Google (@gmail.com)、Yahoo (@yahoo.com)、Microsoft (@outlook.com) 等免费服务。为什么要自建邮箱?首先,你的数据是你自己的,你的隐私应当得到保护,而不是那些垄断巨头公司的,几乎所有市面上的免费邮箱服务,都是以牺牲你的隐私和数据为代价,利用你的大数据来进行广告行为分析来盈利,那么,你愿意把你自己的数据交付给和你素不相识的第三方么?其次,看本博客的读者,几乎人手一个域名,人手一只 VPS,那为何不把现有资源利用起来做一些很酷的事情呢?自建邮箱的优势和劣势那么,会有小伙伴指出,市面上也有收费的邮箱呀,比如国内一些大厂的 “企业邮箱”,为什么不用收费服务呢?我们就自建邮箱,免费邮箱和收费邮箱做一个简单的表格对比:对比自建邮箱免费邮箱收费邮箱隐私性高低中维护难度高低低价格中无中 - 高使用成本高无中隐性成本*中极高高着重指出一下我所强调的隐性成本:因为免费和收费的邮箱服务,你的数据都是保存在第三方,你没有服务器的权限,你的帐号都是别人服务器里的冷冰冰的数据库,那么,你邮箱的提供商可以:随时用各种理由关停你的服务,无论是合法的还是莫须有的原因,比如这里的例子随时把你的资料卖给第三方,你作为最终用户是不可能知道的,比如?随时面临倒闭关门从而永久丢失数据的风险,比如曾经的雅虎中文邮箱。这些成本是你使用第三方服务的时候可能没有考虑过的,而自建邮箱服务的话,这个隐性成本我们是可控的:你可以控制你的域名,只要选对有良好信誉的注册局和注册商,每年稳定续费并不做违反 ToS 的事情,域名一般不会被强制暂停;你可以选择你的服务器供应商,只要选对有良好信誉的供应商,每月稳定续费并不做违反 ToS 的事情,服务器一般不会被强制暂停;你可以每天备份你的数据,自己做数据容灾备份,不丢失任何重要的资料。自建邮箱需要准备的资料首先,你需要有一个你 “完全拥有使用权限” 的 “国际化” 的域名,我们不推荐使用任何小国家的国别后缀,不然哪天你域名怎么没的都不知道,这里主要还是推荐如下几个稳如狗的 gTLD 后缀:.com.net.org其次,你需要一台服务器或 KVM / Xen 构架的 VPS,按照官网的说法,推荐的最小配置要求如下:Resourcemailcow: dockerizedCPU1 GHz内存最低 6 GiB + 1 GiB swap (实际测试 4 GiB 内存也足够)硬盘20 GiB (不包含邮件的占用)系统x86_64并且从防火墙放行这几个 TCP 端口:服务协议端口容器名Postfix SMTPTCP25postfix-mailcowPostfix SMTPSTCP465postfix-mailcowPostfix SubmissionTCP587postfix-mailcowDovecot IMAPTCP143dovecot-mailcowDovecot IMAPSTCP993dovecot-mailcowDovecot POP3TCP110dovecot-mailcowDovecot POP3STCP995dovecot-mailcowDovecot ManageSieveTCP4190dovecot-mailcowHTTP(S)TCP80/443nginx-mailcow请注意,因为垃圾邮件滥用的原因,很多国外的 VPS 商家并不允许架设邮件发送服务器,并且默认 25 端口的出口方向是屏蔽的,请自行咨询厂商。安装 Docker 和 Docker ComposeDebian 和 Ubuntu 系统请参考本站教程。其他 Linux 系统可以使用 Docker 官方的脚本安装 Docker 和 Docker Compose:curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh 设置 DNS 解析记录我们假设你的邮箱服务器需要使用域名 mail.example.com,你想搭建 username@example.com 的邮箱;然后你的服务器 IPv4 为 192.0.2.25,IPv6 为 2001:db8::25,那么请预先做好如下解析:域名解析类型解析值mail.example.comA192.0.2.25mail.example.comAAAA2001:db8::25example.comMX10 mail.example.com.example.comTXT"v=spf1 mx ~all"_dmarc.example.comTXT"v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;"autodiscover.example.comCNAMEmail.example.com.autoconfig.example.comCNAMEmail.example.com.请注意某些 DNS 厂商的控制面板添加 MX 和 CNAME 记录时不需要输入最后的点号,添加 TXT 记录时不需要最前面和最后面的引号。另外需要联系你的 VPS 厂商,设置 PTR 记录,即 IP 反向解析,请设置 192.0.2.25 和 2001:db8::25 的 PTR 记录为 mail.example.com. 提高邮件到达率。安装 Mailcow首先我们获取 Mailcow 的安装代码:apt install git -y cd /opt git clone https://github.com/mailcow/mailcow-dockerized cd mailcow-dockerized 然后生成配置文件,请注意使用 FQDN (比如 mail.example.com) 作为 hostname:bash generate_config.sh 按照提示输入自己的需求后即可生成好配置文件 mailcow.conf,如有需要可以自己修改这个文件。然后拉取 Docker 镜像并启动docker compose pull docker compose up -d 耐心等待几分钟后即可访问 https://mail.example.com/ 默认用户名 admin 默认密码 moohoo,建议立马修改并开启 2FA 两步验证确保安全。添加域名和邮箱进入 Mailcow 后台后,我们可以在顶部的 Configuration > Mail Setup 里添加域名在左侧的 Domains tab 里选择 +Add domain 添加域名:按照自己的要求填入各种设置:如果需要立马生效 Web 客户端,可以选择 Add domain and restart SOGo:开启 DKIM 并添加 DNS 记录开启 DKIM 后邮件发信到达率更高,你可以登录 Mailcow 后台后在 Configuration > ARC/DKIM keys 查看你域名的 dkim 记录值:右边那一串 v=DKIM1;k=rsa;t=s;s=email;p= 的 2048 位字符即你的 DKIM 值,如果未开启,可以在下方输入域名,选择 2048 位,然后点 + Add 按钮添加默认添加完域名后即开启了 DKIM,且 Selector 设置为 dkim,然后我们需要添加如下 DNS 记录:域名解析类型解析值dkim._domainkey.example.comTXT"v=DKIM1;k=rsa;t=s;s=email;p=blablablablablabla"某些 DNS 厂商的后台可能无法直接添加 2048 位 DKIM 的 TXT 记录,因为 TXT 类型的 DNS 记录最大长度为 255 个字符,那么请手工截断成两个 TXT 记录,第一个需要 255 个字符,第二个记录为剩下的字符串添加邮箱用户我们可以在 Mailboxes 这个 tab 里选择 +Add mailbox 按钮添加用户:按要求提示填写即可:测试邮件我们使用刚开的用户登录 Mailcow 自带的 SOGo,默认情况下地址为 https://mail.example.com/SOGo/首先,测试接受邮件,使用任何外部邮箱给 username@example.com 发一封邮件,看看是否正常收到邮件。然后我们测试发送邮件,在 mail-tester.com 发送一封 Plain Text 格式的测试邮件,稍等片刻后即可查看你的邮件分数,我们可以看到,严格按照本文教程搭建的自建邮箱服务评分可以是 10 分:Mailcow 的更新和备份Mailcow 的更新只需执行 update.sh 脚本即可:cd /opt/mailcow-dockerized ./update.sh 按照提示更新仓库文件:然后再次执行 ./update.sh 更新 Mailcow,提供提示 Are you sure you want to update mailcow: dockerized? All containers will be stopped. [y/N] 输入 y 然后按回车:然后耐心等待 Docker 更新并重启容器,并且可以选择删除旧的容器:你也可以使用 docker system prune 命令清除无用的 Docker 镜像。Mailcow 的备份也自带脚本,我们只需进入目录执行 ./helper-scripts/backup_and_restore.sh 即可:假设你需要备份到 /opt/backup 目录cd /opt/mailcow-dockerized MAILCOW_BACKUP_LOCATION=/opt/backup ./helper-scripts/backup_and_restore.sh backup all 建议使用定时脚本每天定时备份并同步到第三方机房加密保存一个简单的 crontab 定时脚本如下5 3 * * * cd /opt/mailcow-dockerized/; MAILCOW_BACKUP_LOCATION=/opt/backup /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all 具体备份命令可参考官方教程Mailcow 的迁移有时候我们需要更换服务器,因为基于 Docker 安装,迁移 Mailcow 是个很简单的事情。方法一:直接迁移整个 Docker首先,在需要迁移的服务器安装 Docker 和 Docker Compose,并确保两边的版本一致,然后停止 Docker 服务:systemctl stop docker.service systemctl stop docker.socket 使用 systemctl status docker 命令检查下 Docker 的状态:然后从原来的机器把 Docker 容器和挂载的 Volumes 同步到新的机器:新旧机器均需要安装 rsync:apt install rsync -y 旧的机器生成一个 SSH Key:ssh-keygen -t ed25519 然后把 /root/.ssh/id_ed25519.pub 文件内容加到新机器的 /root/.ssh/authorized_keys然后同步 Mailcow 文件和 Docker 挂载的 Volumes:rsync -aHhP --numeric-ids --delete /opt/mailcow-dockerized/ root@新机器:/opt/mailcow-dockerized rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ root@新机器:/var/lib/docker/volumes 然后在原来的机器停止 Mailcow 容器:cd /opt/mailcow-dockerized docker compose down 然后再次执行一次同步:rsync -aHhP --numeric-ids --delete /opt/mailcow-dockerized/ root@新机器:/opt/mailcow-dockerized rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ root@新机器:/var/lib/docker/volumes 然后在新的机器启动 Docker 服务:systemctl start docker.service 然后在新的机器启动 Mailcow 容器:cd /opt/mailcow-dockerized docker compose pull docker compose up -d 记得迁移之前需要修改好 DNS 记录,解析到新的服务器 IP 即可。这个迁移方法理论上适合任何使用 Docker 安装的软件方法二:使用 Mailcow 自带的备份和恢复脚本首先进入旧的服务器,然后进入 Mailcow 的目录,执行备份脚本:cd /opt/mailcow-dockerized ./helper-scripts/backup_and_restore.sh backup all 记得关闭 Mailcow 服务:docker compose down 然后把备份好的文件夹使用 rsync 同步到新的机器,这里假设你备份在 /opt/backup 目录:rsync -avz /opt/backup root@新机器:/opt 然后进入新的机器,从头开始安装一次全新的 Mailcow,然后执行恢复脚本:cd /opt/mailcow-dockerized ./helper-scripts/backup_and_restore.sh restore 然后按照提示选择恢复的备份目录,比如 /opt/backup 即可。
2024年08月12日
8 阅读
0 评论
0 点赞
2024-08-12
Debian 11 Bullseye 升级 Debian 12 Bookworm
本文将指导如何升级 Debian 11 Bullseye 到 Debian 12 Bookworm。相关教程:Debian 10 Buster 升级 Debian 11 Bullseye。准备工作除非你是物理服务器,以及没有用过奇奇怪怪定制或修改的内核的 KVM 构架的 VPS 和云主机,否则升级大版本更新内核是有一定机率导致 Grub 加载失败的,切记备份重要数据!OpenVZ 6 和 LXC 构架的 VPS 是无法升级的,因为他们没有自己独立的内核再强调一遍,一定要备份重要数据!以下操作需要在 root 用户下完成,请使用 sudo -i 或 su root 切换到 root 用户进行操作更新系统首先需要更新你当前的系统apt update apt upgrade -y apt dist-upgrade -y apt autoclean apt autoremove -y 如果内核更新了,可以重启让最新的内核生效,也可以直接进行升级。升级系统首先更新 apt 源,替换 bullseye 为 bookworm:sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/*.list 对于 Debian 12 以后的版本,所有 Debian 可以分发的打包的非自由固件二进制文件 (non-free),比如某些驱动,都被转移到 Debian Archive 中的一个新组件,称为非自由固件 (non-free-firmware)。如果您从旧版的 Debian 升级,并且需要这些固件二进制文件,您应该更新您系统上的 /etc/apt/sources.list,以使用这个新组件 (来源):sed -i 's/non-free/non-free non-free-firmware/g' /etc/apt/sources.list 默认的系统 apt 源文件 /etc/apt/sources.list 应该是类似这样的:deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware 大部分 Debian 的软件源配置文件使用传统的 One-Line-Style,路径为 /etc/apt/sources.list;但是对于容器镜像,从 Debian 12 开始,其软件源配置文件变更为 DEB822 格式,路径为 /etc/apt/sources.list.d/debian.sources:(参考)Types: deb URIs: https://deb.debian.org/debian Suites: bookworm bookworm-updates bookworm-backports Components: main contrib non-free non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg Types: deb URIs: http://security.debian.org/debian-security Suites: bookworm-security Components: main contrib non-free non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg 国内服务器可以替换 deb.debian.org 和 security.debian.org 为 mirrors.tuna.tsinghua.edu.cn然后我们再次执行更新系统:apt update apt upgrade -y apt dist-upgrade -y 更新过程种会提示一些软件是否需要自动重启,选 Yes 即可,以及一些软件的配置文件是否需要更新,按照自己的情况选择即可,默认回车即视为使用旧的配置文件,一般会出现在 OpenSSH 等软件的更新上。在 apt-listchanges: News 界面可以按 q 退出:提示是否自动重启服务:提示是否更新 OpenSSH 配置文件:注意某些软件更新后可能会更新 systemd 服务配置,此时我们可以执行 systemctl daemon-reload 重新加载配置。如果升级的时候遇到了如下错误:Setting up dbus-daemon (1.14.6-1) ... UUID file '/var/lib/dbus/machine-id' should contain a hex string of length 32, not length 0, with no other text dpkg: error processing package dbus-daemon (--configure): installed dbus-daemon package post-installation script subprocess returned error exit status 1 dpkg: dependency problems prevent configuration of dbus: dbus depends on dbus-daemon (= 1.14.6-1); however: Package dbus-daemon is not configured yet. dpkg: error processing package dbus (--configure): dependency problems - leaving unconfigured Processing triggers for libc-bin (2.36-9) ... Errors were encountered while processing: dbus-daemon dbus E: Sub-process /usr/bin/dpkg returned an error code (1) 删除 /var/lib/dbus/machine-id 这个空文件后重新执行命令即可,升级 dbus 时会自动生成这个文件。rm -rf /var/lib/dbus/machine-id 更新后删除不必要的软件和依赖:apt autoclean apt autoremove -y 然后我们使用 reboot 命令重启系统,耐心等待后,查看最新的系统版本:root@debian ~ # cat /etc/debian_version 12.5 root@debian ~ # lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 12 (bookworm) Release: 12 Codename: bookworm root@debian ~ # uname -a Linux debian 6.1.0-21-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64 GNU/Linux 这时我们就已经更新到了最新的 Debian 12 Bookworm 和内核了。
2024年08月12日
7 阅读
0 评论
0 点赞
1
...
205
206
207
...
213