2022年8月

在这份指南中,我们将看到 Dockerfile 的简要介绍以及如何在 Linux 中使用 Dockerfile 来自动的 创建自定义 Docker 镜像

什么是 Dockerfile ?

Dockerfile 是附有构建 Docker 镜像说明的易于理解的文本文件。它囊括了用户在创建镜像时可以调用的所有命令。

我们可以使用 Dockerfile 创建自定义的镜像。可以通过 Docker Hub 分享的自定义 Docker 镜像。

如果你还不知道,Docker Hub 是 Docker 提供的托管存储库服务,用于团队查找和共享容器镜像,当然世界上任何人也都可以访问。

想象一下,早期如果我们想用 Nginx,我们要通过很多步骤,才能安装和配置好 Nginx 。得益于 Docker Hub ,现在我们可以在几分钟内,下载并运行 Nginx 的预置容器镜像。

Nginx Docker Image In Dockerhub

运行如下命令从 Docker Hub 上拉取 Nginx 镜像:

# docker pull nginx

一旦我们拉取了 Docker 镜像,可以运行如下命令使用它:

# docker run -it -d -p 8080:8080 nginx

就这样,十分简单!

参考下方链接,了解更多使用 Docker 的方式:

Docker Hub 上有超过十万个来自软件供应商、开源项目以及社区的容器镜像。

你可以从 Docker Hub 上下载你选择的镜像,并且使用上面的命令开始使用它。

理解 Dockerfile 格式

Docker 可以读取 Dockerfile 中的 指令 来自动的创建镜像。

典型的 Dockerfile 包含如下指令:

1、FROM —— 这会设置容器的基础镜像。

例如:

FROM ubuntu:22.04

这会将容器的基础镜像设置为 Ubuntu 。如果 ‘22.04’ 这个标志没有特别指明,则会设为最新版本(latest)。

2、LABEL —— 这是用来明确镜像的元数据信息的键值对。

例如:

LABEL ENV=“DEVELOPMENT”

3、RUN —— 这会在基础镜像中执行指令并创建一个新层。

例如:

RUN apt-get update
RUN apt-get install tomcat

4、CMD —— 这用来设置容器启动后先执行的命令。

例如:

CMD ["java", "-jar", "app.jar"]

5、EXPOSE —— 设置用于访问容器的端口。容器将会监听该端口。我们可以用来获得输出。

例如:

EXPOSE 8080

6、`MAINTAINER —— 显示创建镜像作者的信息。

例如:

MAINTAINER [email protected]

7、ENV —— 用来设置环境变量的键值对。这些变量在镜像创建的时候设置,并在容器创建好后可以使用。

例如:

ENV DB_NAME=”MySQL”
ENV DB_VERSION=”8.0”

8、COPY —— 用来拷贝本地文件至容器中。

例如:

COPY /target/devops.jar devops.jar

9、ADD —— 具有与拷贝相同的功能,不过更进一步还可以提取本地的 tar 文件或者从 URL 拷贝文件。

例如:

ADD devops.tar.xz / .
ADD http://example.com/abc.git /usr/local/devops/

10、ENTRYPOINT —— 用来设置镜像的主要命令。与 CMD 指令功能相同。不同的是 ENTRYPOINT 中的指令不会被重写。

例如:

ENTRYPOINT ["java", "-jar", "app.jar"]

11、VOLUME —— 该指令用来创建指定位置的挂载点。

例如:

VOLUME /app/devops

12、USER —— 将设置运行镜像并使用的用户名称以及用户组。

例如:

USER dhruv
USER admin

13、WORKDIR —— 这会设置工作目录。如果目录不存在,则会创建。

例如:

WORKDIR /var/lib/

这是一个 Dockerfile 的样本,可以参考一下:

FROM ubuntu:latest
MAINTAINER Senthilkumar Palani "[email protected]"
RUN apt-get install -y software-properties-common python
RUN add-apt-repository ppa:chris-lea/node.js
RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ jammy universe" >>
/etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nodejs
RUN mkdir /var/www
ADD app.js /var/www/app.js
CMD ["/usr/bin/node", "/var/www/app.js"]

我将向你展示创建一个 Dockerfile 、创建并使用镜像的简单例子。

创建一个 Dockerfile

创建一个名为 dockerfile 的文件:

# nano dockerfile

添加下面几行命令。我们将更新并安装 vimcurl 包:

FROM alpine

RUN apk update
RUN apk add vim
RUN apk add curl

Dockerfile For Alpine Linux

按下 CTRL+OCTRL+X 键保存文件并关闭。

现在 Dockerfile 已经就位。让我们继续,用该 Dockerfile 创建一个镜像。

注意: 如果你在使用 Docker 桌面版,你可以以一个普通用户运行 docker 命令。

使用 Dockerfile 创建 Docker 镜像

只需运行以下命令,便可以使用 Dockerfile 创建 Docker 镜像:

# docker build -t alpine .

请注意最后有一个 .)。

输出示例:

[+] Building 51.2s (8/8) FINISHED                                               
 => [internal] load build definition from Dockerfile                       0.1s
 => => transferring dockerfile: 104B                                       0.0s
 => [internal] load .dockerignore                                          0.1s
 => => transferring context: 2B                                            0.0s
 => [internal] load metadata for docker.io/library/alpine:latest          38.8s
 => [1/4] FROM docker.io/library/alpine@sha256:7580ece7963bfa863801466c0a  2.7s
 => => resolve docker.io/library/alpine@sha256:7580ece7963bfa863801466c0a  0.0s
 => => sha256:d7d3d98c851ff3a95dbcb70ce09d186c9aaf7e25d48 1.47kB / 1.47kB  0.0s
 => => sha256:530afca65e2ea04227630ae746e0c85b2bd1a179379 2.80MB / 2.80MB  2.4s
 => => sha256:7580ece7963bfa863801466c0a488f11c86f85d9988 1.64kB / 1.64kB  0.0s
 => => sha256:9b2a28eb47540823042a2ba401386845089bb7b62a9637d 528B / 528B  0.0s
 => => extracting sha256:530afca65e2ea04227630ae746e0c85b2bd1a179379cbf2b  0.2s
 => [2/4] RUN apk update                                                   4.3s
 => [3/4] RUN apk add vim                                                  3.5s
 => [4/4] RUN apk add curl                                                 1.3s 
 => exporting to image                                                     0.4s 
 => => exporting layers                                                    0.4s 
 => => writing image sha256:14231deceb6e8e6105d2e551799ff174c184e8d9be8af  0.0s 
 => => naming to docker.io/library/alpine                                  0.0s 
                                                                                
Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them

按照上面的命令, Docker 会通过保存在当前工作目录中的 Dockerfile 中的命令开始自动的创建镜像。还记得我们在 Dockerfile 中保存的 apk updateapk add vimapk add curl 命令吗?这些命令也将会自动的执行。

如果 Dockerfile 保存在其他目录,你可以使用 -f 标志来指定路径,例如:

# docker build -f /path/to/a/Dockerfile .

创建好镜像后,我们可以使用如下命令运行它:

# docker run -it alpine

该命令会启动这个 Alpine 容器并连接到它。

/ # uname -a
Linux 8890fec82de8 5.10.104-linuxkit #1 SMP Thu Mar 17 17:08:06 UTC 2022 x86_64 Linux
/ # cat /etc/alpine-release 
3.16.1
/ #

如果你使用 Docker 桌面版,你可以通过 容器 Containers 标签页界面来查看运行中的容器。

View Containers In Docker Desktop

这就是使用 Dockerfile 构建自定义容器映像的方式。

我们仅仅讲了基础内容。你可以用 Dockerfile 做到很多东西。建议你参考一下官方 Dockerfile 参考 ,以了解更多内容。


via: https://ostechnix.com/a-brief-introduction-to-dockerfile/

作者:sk 选题:lkxed 译者:Donkey 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如何 在命令行中更新你的 Ubuntu 系统?你可以使用 apt update(刷新包缓存)和 apt upgrade 命令。

sudo apt update && sudo apt upgrade

它会更新所有可以立即升级的已安装 apt 包。这也包括 Linux 内核版本。

这似乎是一件好事,尤其是对于桌面用户。但对于运行关键 Web 服务的 Ubuntu 服务器用户而言,情况可能并非如此。

如果你想对更新有选择性,并且只想升级单个软件包,请使用以下命令:

sudo apt install --only-upgrade package_name

让我们更详细地了解一下。

使用 apt 命令升级单个包

第一步是更新本地包仓库缓存,以便你的系统知道有新版本的软件包可用。

sudo apt update

这是可选的。查看一下你要升级的软件包是否在 可升级软件包列表 中。

apt list --upgradable

如果所需的软件包有可用的新版本,你可以选择使用以下命令仅升级该单个软件包:

sudo apt install --only-upgrade package_name

如果你对已安装的软件包运行 apt install 命令,它将升级到下一个可用版本。

但如果该软件包尚未安装,apt 命令也会安装它。

这就是为什么 --only-upgrade 部分是必要的。使用该选项,apt 命令只会升级已安装的软件包。如果尚未安装,它将不会安装该软件包。

这不是最适合 Ubuntu 服务器用户的示例,但你仍然可以在下面的截图中看到我如何只升级了七个可升级包中的一个。

Update only a single package in Ubuntu

仅升级选定的软件包

如果要升级选定的几个软件包,那么不必一一更新。只需使用前面提到的命令提供包名称。

sudo apt install --only-upgrade package1 package2 package3

这是一个例子。

Upgrade selected packages in Ubuntu

总结

当你面临必须升级选定软件包的情况时,你可以使用带有 –only-upgrade 选项的 apt install 命令。

我建议阅读 如何更有效地使用 apt 命令


via: https://itsfoss.com/apt-upgrade-single-package/

作者:Abhishek Prakash 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

我们总结了 Linux Mint 21 “Vanessa” 的 10 大特色,你可以看看有哪些是为你而准备的。

Linux Mint 21 “Vanessa” 是 Linux Mint 的第 36 个发布版本,它带来了一系列特色,以及对桌面上的有用改善。这些特色散落在 Cinnamon 桌面、内核变化、Xapps 更新等处。

我在这份 Linux Mint 21 的重要特色列表对它们做了个总结。

Linux Mint 21 “Vanessa” 的重要特色

Linux Mint 21 Cinnamon Desktop

1、Ubuntu 22.04 及其相关更新

也许最重要的变化就是 Linux Mint 21 的基础了,它现在基于 Ubuntu 22.04 “Jammy Jellyfish” 。上一次的主要版本,即 Linux Mint 20 “Ulyana” ,是基于四年前发布的 Ubuntu 20.04 “Focal Fossa” 。沧海桑田,现在与 2020 年的世界已然完全不同。

因此,大量的软件包、版本升级、新的性能改善 —— 所有的这些底层更新都来到了 Linux Mint 21 。这包括最新的长期支持的 Linux 内核 5.15 ,这带来了更多硬件系列的支持、以及针对编程、开发和网络的工具链的更新。

2、Timeshift 备份工具的重大变化

几个月前,Mint 开发团队 宣布 :他们将接管著名的备份工具 Timeshift,并将其作为一个 “XApps” 继续开发。这是一个重大变化。你可能会问为什么?

好吧,Timeshift 工具的开发者 Tony George 正忙于其它的项目。你可能听说过 Linux 的 “TeeJeeTech” 应用。它是由 Tony 创建的,并且有一些很酷的应用。因此,他没有足够多的时间来专注于 Timeshift 的开发和改进。

Timeshift creating snapshot

说到这里,由于 Linux Mint 现在在维护它,这个发布版本带来了一些新的功能,例如,在 rsync 模式(不是 btrfs 模式)时,现在 Timeshift 可以确定进行下一次备份需要多少磁盘空间。此外,如果它看到磁盘空间在备份后小于 1 GB ,会停止备份过程。

3、WebP 支持

WebP 图像是谷歌为 Web 创建的一种相当新的图像格式。它带来了更好的压缩率,在保持与传统的 JPEG 和 PNG 图片相当的良好质量的同时,减少了文件大小。

在 Linux 桌面支持 WebP(如查看图像、缩略图或编辑)需要 额外安装 一些软件包。考虑到其流行程度,Linux Mint 开发团队为桌面应用及这个衍生发行版带来了开箱即用的 WebP 支持。

这意味着,在 Nemo 文件管理器中可以显示 WebP 图像的缩略图,并可以在 xviewer 中查看它们。Mint 开发团队总是优先考虑到最终用户,而诸如 Ubuntu 之类的其它发行版在默认支持 WebP 方面仍然落后。不仅如此,新的应用程序 xapp-thumbnailers 现在还能帮助 Nemo 文件管理器预览更多的文件类型,如:

  • ePub
  • 带有专辑封面的 MP3
  • RAW 图像
  • AppImage

4、进程监视器

一个名称为 进程监视器 process monitor 的小巧方便的工具,将会告知你系统中正在发生什么。当你的系统正在自动更新或通过 Timeshift 备份时,系统托盘上的这个小图标就会显示出来。在这些情况下,你的系统可能会变慢,而这个漂亮的图标可以告诉你原因。

5、改善打印支持

Linux Mint 针对硬件设备配置了各种驱动程序,默认情况下就支持打印机。这个版本的 Mint 带来 网络打印协议 Internet Printing Protocol (IPP)支持,可以免驱动进行打印和扫描。

另外,它也默认安装了 HP 的驱动程序 HPLIP 的最新版本 3.21.12 。

所有的这些变化都简化了打印机和扫描仪的使用,而像你这样的最终用户可以轻松地打印和扫描。这是一个 Linux 发行版的一个重要的方面,但并不是总是能顺利工作的。在 点评过很多发行版 后,我发现很多发行版无法检测到打印机,乃至不能打印。

很高兴看到 Mint 开发团队对这个关键功能做出了贡献。

6、窗口动画更新

窗口和桌面动画效果有一些相当大的变化。首先,合并了窗口和桌面的效果设置。先前,是在不同的部分对动画进行细微的控制。

这里是对比视图:

其次,取消了映射窗口和桌面效果选项。

第三,带来一个新的控件,用于更改整体动画的快慢速度。

最后,还有一个可以禁用或启用在整个桌面上的所有动画的全局开关,给予你更多的控制选项。

我相信这是一个经过精心设计的、可以让人更清楚地了解的对话框和高级选项。

7、Mutter 重新构建

让我们来看一下随 Linux Mint 21 而来的 Cinnamon 桌面环境版本 5.4。它是最新的 Cinnamon 发布版本,Mint 是第一个将其带给用户的的发行版(除了传统的 Arch Linux 用户,他们得到它 有点超早)。

最后,开发团队对 Cinnamon 5.4 中的窗口管理器 Muffin 根据上游的 Mutter 进行了重新构建。由于 Muffin 最初是从 Mutter 复刻出来的,所以它总是落后于上游的 Mutter 的功能,即使是有一些后期移植的改变。为使 Muffin 尽可能地接近 Mutter 代码库,团队在包含的特色功能、错误修复及清理方面付出了大量的努力。

因此,在未来,更容易从 Mutter 上游移植变化和在需要的时候清理 Muffin。

8、窗口管理器和 GTK 主题

伴随着 Muffin 的变化,开发团队也将 GNOME 控制中心的一些显示设置移动到了 Cinnamon 控制中心。此外,在 Cinnamon 5.4 中,来自 csd-xrandr 的显示配置移动到了 Muffin 窗口管理器中。显然,你不会在显示设置窗口中看到什么不同。不过,在缩放显示或在高分辨率窗口中时,你可能会发现一些性能的提升,以及错误或问题更少一些。

Mint 开发团队在 Cinnamon 5.4 引入的另外一个关键变化是,在应用程序中实现 GTK 窗口的统一渲染。先前,如果一个 GTK 应用程序使用了标题栏,那么对话框会是一个 CSD (客户端样式)和 GTK 主题的混合体.

现在随着 Cinnamon 5.4 的到来,所有的窗口都使用 GTK 主题进行渲染,而不再与它们的设计相关联。于是,传统的 Metacity 主题也被抛弃。

顺便说一句,我喜欢 Metacity 及其 “传统外观”,它们是 GNOME 的早期 产物

9、软件包管理器更新

跟随 Debian、KDE Plasma 桌面的趋势,Linux Mint 也开始保护你的系统不会卸载重要的依赖关系软件包。

当你尝试卸载软件包时,Mint 现在会检查依赖关系,并检查重要的桌面软件包是否将会被移除。

如果发现这种情况,你将会得到一条阻止你继续卸载软件包的错误信息。

在另一方面,当成功地卸载一个软件包时,它会清理所有与之同时安装的依赖软件包。

10、禁用 systemd OOMD 服务

自从 Ubuntu 22.04 LTS 发布以来,有一些对内存不足守护进程(systemd-oomd)不好的反馈。网上的很多用户都 报告 说:在没有任何警告或用户干预的情况下,会突然关闭应用程序(例如 Firefox)。进一步的调查表明,systemd-oomd 的实现情况“不是很好”。

理论上说,systemd-oomd.service 会监视你的系统的内存不足的情况,并且它有权杀死任何多过消耗系统资源的进程。Ubuntu 开发团队并没有和用户强调这一点,最后导致了不愉快的用户的体验。

基于这一认识,Linux Mint 21 决定 不提供 这种服务,禁用它。因为 Linux Mint 的用户群体是普通用户、学生等,如果应用程序意外关闭,对用户来说将是一种不好的体验。

Systemd OOMD service is not enabled

11、其它变化

最后,让我们归纳一些微小却有影响的变化来结束这篇 Linux Mint 21 特色介绍。

  • 默认的文档阅读器应用程序 Xreader 现在能够进行微小注释。这是一个很方便的功能。
  • WebApp 管理器现在带来了一些自定义的浏览器参数。
  • Warpinator 文件传输器实用工具现在可以向你显示来自 Windows 、Android 和 iOS 设备上的其它的源文件。
  • Mint 将 Firefox 浏览器打包为 .deb 版本,而不是 Ubuntu 22.04 LTS 中的默认 .Snap 版本。感谢 Mint 开发团队,用户不必为卸载 Jammy 中的 Firefox 的 .Snap 版本的而运行 一套复杂的命令

Firefox 102 in Linux Mint 21 – Exclusively packaged as deb executable

  • 批量重命名应用程序 Thingy 在用户界面上做了一些改善。
  • GRUB2 的操作系统检测程序(os-prober)现在能够检测出你的硬件系统上所有的操作系统(对双启动或多启动有用)。
  • 蓝牙管理器 Blueman 取代了 Blueberry ,为连接和管理你的蓝牙设备带来了其它的功能。
  • 最后,在这个发布版本中也有为你的新桌面而准备的新壁纸。

New Wallpapers in Linux Mint 21

没有变化的部分

从表明上来看,你可能会觉着 Linux Mint 21 的绝大部分功能与先前的版本相同。默认桌面外观和默认壁纸保持不变。Xfce 和 MATE 桌面也没有发布任何重要的功能。因此,它们是完全一样的。此外,默认图标主题、应用程序菜单等等都可能会给你一种似曾相识的感觉。

总结

总体来说,最终用户需要的是一套完好的特色功能,而不是花哨的手势之类的东西。鉴于此,对初学者或最终用户来说,Linux Mint 是当今最好的 Linux 发行版。至此,这篇 Linux Mint 21 特色的总结就此结束了。

你认为 Linux mint 21 的新特色怎么样?在这个发布版本中,是否有一些你所求而未得的特色?让我们在下面的评论区讨论这个问题。


via: https://www.debugpoint.com/linux-mint-21-features/

作者:Arindam 选题:lkxed 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

制造固态硬盘产生的碳排放远超硬盘

固态硬盘的耗电量远低于硬盘,但一项新的研究意外地显示,它们的终生碳足迹要比硬盘高得多。研究人员测量了固态硬盘和硬盘在整个生命周期中每 GB 的碳足迹,他们发现,虽然固态硬盘在使用过程中的碳排放低于硬盘,但在制造过程中的碳密度要远高于硬盘。每制造一个 1TB 的固态硬盘会排放相当于 320 公斤的二氧化碳。相比之下,同等容量的硬盘只排放 40 公斤。而综合使用过程的碳排放,1 TB 的固态硬盘的终生碳足迹是 369.2 公斤二氧化碳,而硬盘是 199 公斤。另外,一台台式电脑的碳足迹几乎有 40% 来自固态硬盘,而 CPU 只占 4%,GPU 占 11%。

消息来源:Discover Magazine
老王点评:固态硬盘就和新能源车一样,有些水面下的成本是你看不到的。

树莓派 4 增加对 3D API 的支持

树莓派基金会宣布,树莓派 4 符合 Vulkan 1.2 标准。树莓派的现在的桌面图形是由 OpenGL 驱动的,Vulkan 要取代的是旧的图形 API。该 API 可以为开发者提供与 2019 年英伟达显卡、2020 年英特尔集成显卡芯片和其他几十种设备相同的 3D 图形能力。对于大多数将树莓派用作服务器、DIY 控制器或轻型桌面的人来说,对 Vulkan 1.2 的支持并不重要。但是对游戏和 3D 应用来说应该会受益。

消息来源:ARS Technica
老王点评:虽然我想不出用树莓派玩 3D 游戏是什么体验,但是或许有比玩游戏更有趣的场景。

Winamp 5.9 释出首个 RC 版本

去年底,我们曾经报道过 Winamp 准备重启。现在,这个曾经最流行的音乐播放器 Winamp 释出了 Winamp 5.9 RC1。开发者称,对终端用户来说,Winamp 5.9 RC1 可能变化不大,但底层代码库进行了重大重构。在基础工作完成之后,他们将可以开始给软件修复和增添功能。

消息来源:Winamp
老王点评:虽然可能有些过时了,但是曾经的 Winamp 还是有很多人怀念。

GNOME 正计划通知用户其固件安全状态,来保护不安全的硬件。

当你在支持 UEFI 的电脑上安装 Linux 时,你必须禁用“ 安全启动 Secure Boot ”,因为启用该选项后,不能使用 现场 USB Live USB 启动。

一些主流的 Linux 发行版支持安全启动,但对于许多其他发行版(以及板载的 Nvidia 硬件)来说,它的设置仍然具有挑战性。

虽然一年又一年,情况似乎并没有改善,但总的来说,安全启动是一个必不可少的保护功能。

因此,正如 Phoronix 所发现的,为了方便和让用户意识到这一点,GNOME 和红帽的开发者正在努力在安全启动被禁用时通知(或警告)用户。

它有什么用?

UEFI/安全启动被批评为 DRM,因为它剥夺了用户的自由。开源社区的许多人仍然不赞同实施 UEFI/安全启动和 TPM,因为它带来了不便。这就催生了像 Coreboot 这样的项目在开源世界中蓬勃发展。

当然,如果你每天都用 Linux,我会建议你购买支持 Coreboot 的新硬件,这是一个不同的故事。

话虽如此,但可以肯定的是,安全启动是最简单的方法。

考虑到捆绑的专有固件,安全启动的安全性仍然值得商榷。但是,它是一个确保系统的固件安全的基本保护机制。

所以,开发者准备在启动闪屏(Plymouth)、GNOME 显示管理器(GDM)和 GNOME 控制中心显示警告。

图片来源:GNOME 博客

GNOME 的一位开发者在 博客文章 中分享了它的更多细节,同时给出了其中的一些屏幕截图。

一位来自红帽的开发者在 合并请求 中提到。

安全启动被用来对付一些恶意软件试图感染系统的固件的安全威胁。用户可能会无意中禁用或软件可能会有意禁用安全启动。因此,配置不正确的话,系统就运行在一个不安全的平台上。如果启动闪屏能向用户提供一个警告,用户可以重新启动并重新配置他们的系统,或者立即寻求帮助。

所以,作为一个 GNOME 用户,当它进入 GNOME 43 的最终版本或任何未来的版本时,我乐于看到它所带来的变化。

如果你也想看看,你可以在 GNOME 控制中心的“ 隐私 Privacy ”标签下的“ 设备安全 Device Security ”部分找到这个选项,如下图所示,我的机器在 Arch Linux 上运行 GNOME 43 alpha。

该菜单还可以显示 TPM、英特尔 BootGuard 和 IOMMU 保护的细节。

看来我的系统并不像我想象的那么安全……但也许这就是这个功能的意义所在?

如果你只在你的 Linux 发行版上使用 UEFI 模式,并且为了方便而关闭了安全保护功能,这能让你意识到这一点吗?

有可能。但是,看看 Linux 发行版的状况和启用安全启动的问题。我不觉得这可能会是一个大问题。我们很快就会知道了。

如何禁用这个警告?

正如在 GNOME Gitlab 的 合并请求 中提到的,在你的内核参数中添加 sb-check=false 就可以禁用这些警告。

不过,作为终端用户,你不需要担心这个问题。

你对即将在 GNOME 43 或更高版本中增加的这个功能有什么看法?你对 UEFI/安全启动有什么看法?


via: https://news.itsfoss.com/gnome-secure-boot-warning/

作者:Anuj Sharma 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

我喜欢使用本地 SMTP 守护进程从我的笔记本电脑发送电子邮件,因为这样我即使在断开连接的情况下也可以发送电子邮件,而且,即使是在网络正常的情况下,因为我不需要等待网络协议在远程 smarthost 上完成。哦,我还需要本地邮件投递。

多年来,我一直使用 Postfix 来达到这些目的。它具有可接受的简单配置。但最近我开始喜欢 VPN(mullvad,如果你想知道的话),而在 /etc/resolv.conf 发生变化时会变得混乱(例如,你在 Postfix 的服务启动后才启动 VPN)。我找到了一个非常简单的替代方案:OpenSMTPD

假设我想在使用 [email protected] 发送电子邮件时使用 SMTP 服务器 fencepost.gnu.org,而在我的 From 头中使用 [email protected][email protected] 时使用 smtp.jao.io。OpenSMTPD 让你通过一个非常简单的配置文件 /etc/smtpd.conf 来实现:

(这是我的 Debian 机器中的默认配置文件。另一个流行的替代方案是 /etc/openstmpd.conf)。

table aliases file:/etc/aliases
table secrets db:/etc/mail/secrets.db

table sendergnu { [email protected] }
table senderjao { [email protected], [email protected] }

listen on localhost

action "local" mbox alias <aliases>
action "relaygnu" relay host smtp+tls://[email protected]:587 auth <secrets>
action "relayjao" relay host smtps://[email protected]:465 auth <secrets>

match for local action "local"
match for any from mail-from <sendergnu> action "relaygnu"
match for any from mail-from <senderjao> action "relaygan"

我们还为此配置了本地投递。这是完整的配置文件!唯一需要的另一件事是生成 secrets.db 文件,其中包含与键 gnujao 对应的用户和密码(这些只是任意名称)。为此,我们使用它们创建一个纯文本文件,使用形式为 <key> <user>:<password> 的条目:

gnu  jao:my fencepost password
jao  [email protected]:xxxxxxxxxxxxxxxxx

fencepost.gnu.org 用户是 jaosmtp.jao.io 的用户是 [email protected](你看,不需要转义空格或 ats)。然后我们使用程序 makemap 来创建密钥数据库:

makemap secrets && rm secrets

via: https://jao.io/blog/2021-11-09-relaying-mail-to-multiple-smarthosts.html

作者:jao 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出