mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-03-21 02:10:11 +08:00
Merge branch 'master' of https://github.com/LCTT/TranslateProject into translating
This commit is contained in:
commit
0c8aa7674a
@ -0,0 +1,216 @@
|
||||
[#]: subject: "How to Install Rocky Linux 9 Step by Step with Screenshots"
|
||||
[#]: via: "https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/"
|
||||
[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "robsean"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14909-1.html"
|
||||
|
||||
图解 Rocky Linux 9 安装步骤
|
||||
======
|
||||
|
||||

|
||||
|
||||
> 这篇教程中,我们将图解 Rocky Linux 9 安装步骤。
|
||||
|
||||
<ruby>Rocky 企业软件基金会<rt>Rocky Enterprise Software Foundation</rt></ruby> 已经发布了它的最新的操作系统 “Rocky Linux 9”。Rocky Linux 是针对工作站和服务器的自由而开源的操作系统。它被认为是 CentOS Linux 的继承者。
|
||||
|
||||
Rocky Linux 9 是 RHEL 9 的复制品,其开发代号是“Blue Onyx”。Rocky Linux 和 RHEL 之间的主要不同是,它有它自己的名为 “Peridot” 的开源构建系统。
|
||||
|
||||
### Rocky Linux 9 的更新和特色
|
||||
|
||||
* Gnome 40 是默认的桌面环境
|
||||
* 在 XFS 文件系统上支持<ruby>直接访问<rt>Direct Access</rt></ruby>(DAX)操作
|
||||
* 更新了运行时和编译器,如 GCC 11.2.1 、LLVM 13.0.1 、Rust 1.58.1 和 Go 1.17.1
|
||||
* 更新了开发工具链,如 Python 3.9 、Node.js 16 、Ruby 3.0.3 、Perl 5.32 和 PHP 8.0
|
||||
* ssh 默认禁用了 root 用户身份验证
|
||||
* 更新了 OpenSSL 3.0,改进了 Cockpit 网页主控台
|
||||
* 社区提供支持到 2032 年 05 月 31 日
|
||||
|
||||
### 前置条件
|
||||
|
||||
* 2 GB 及更多的内存
|
||||
* 2 个 CPU 核心(1.1 GHz 及更高)
|
||||
* 20 GB 硬盘空间
|
||||
* 可启动介质(USD 或 DVD)
|
||||
* 互联网连接(可选)
|
||||
|
||||
不再耽误时间,让我们直接进入 Rocky Linux 9 的安装步骤:
|
||||
|
||||
### 1、下载 Rocky Linux 9 的 ISO 文件
|
||||
|
||||
使用下面的官方网址来下载 ISO 文件
|
||||
|
||||
> **[Rocky Linux 9 ISO][1]**
|
||||
|
||||
在你下载 ISO 文件后,使用已下载的 ISO 文件制作一个可启动介质(USB/DVD)。
|
||||
|
||||
在 Windows 中,你可以利用 Rufus 软件来使用 ISO 文件来制作可启动 USB 驱动器。在 Linux 中,参考下面的内容:
|
||||
|
||||
> **[在 Ubuntu / Linux Mint 上,如何创建可启动 USB 驱动器][2]**
|
||||
|
||||
### 2、使用可启动媒介盘启动系统
|
||||
|
||||
在你计划安装 Rocky Linux 9 的硬件系统上,BIOS 设置中将可启动介质从硬盘驱动器更改为 USB 驱动器, 重新启动它。
|
||||
|
||||
在硬件系统使用可启动介质启动后,我们将看到下面的屏幕,
|
||||
|
||||
![Select-Install-Rocky-Linux-9-option][3]
|
||||
|
||||
选择第一个选项, <ruby>安装 Rocky Linux 9.0<rt>Install Rocky Linux 9.0</rt></ruby> ,并按下 <ruby>回车<rt>enter</rt></ruby> 按键。
|
||||
|
||||
### 3、选择首选语言
|
||||
|
||||
选择**安装过程**的首选语言,然后单击 <ruby>继续<rt>Continue</rt></ruby> 按钮,
|
||||
|
||||
![Preferred-Language-for-RockyLinux9-Installation][4]
|
||||
|
||||
### 4、安装过程摘要
|
||||
|
||||
在这个步骤中,我们将看到如下的初始安装摘要。要开始安装,首先,我们必须完成标记项目,如 <ruby>安装目标<rt>Installation Destination</rt></ruby> 和 <ruby>用户设置<rt>User settings</rt></ruby>。
|
||||
|
||||
除了已标记的项目外,我们也可以更改现有的项目,只需要按照你的要求单击它们就可以进行更改。
|
||||
|
||||
![Initial-Installation-Summary-Rocky-Linux9][5]
|
||||
|
||||
#### 配置安装目标
|
||||
|
||||
在这个项目中,我们将为 Rocky Linux 具体指定分区方案。单击 <ruby>安装目标<rt>Installation Destination</rt></ruby>。
|
||||
|
||||
在这里,我们可以为 <ruby>存储配置<rt>storage configuration</rt></ruby> 或 <ruby>分区方案<rt>partition scheme</rt></ruby> 选择 <ruby>自动<rt>automatic</rt></ruby> 选项或 <ruby>自定义<rt>custom </rt></ruby> 选项。
|
||||
|
||||
在自动选项中,安装程序将在磁盘上自动地创建分区,而自定义选项允许我们在磁盘上手动创建分区。
|
||||
|
||||
![Choose-custom-Storage-Configuration-Rocky-Linux9][6]
|
||||
|
||||
在这篇指南中,我将使用 <ruby>自定义<rt>Custom</rt></ruby> 选项,单击 <ruby>执行<rt>Done</rt></ruby> 按钮。
|
||||
|
||||
![Standard-Partition-Scheme-RockyLinux9][7]
|
||||
|
||||
在该 40 GB 的磁盘上,我们将创建以下分区,
|
||||
|
||||
* `/boot`:2GB(xfs 文件系统)
|
||||
* `/`:10 GB(xfs 文件系统)
|
||||
* `/home`:25 GB(xfs 文件系统)
|
||||
* 交换分区:2 GB
|
||||
|
||||
开始创建分区,选择 <ruby>标准分区<rt>Standard Partition</rt> 方案,然后单击 “+” 符号。
|
||||
|
||||
创建第一个分区,大小为 2 GB 的 `/boot` 分区,
|
||||
|
||||
![Boot-Partition-RockyLinux9-Installation][8]
|
||||
|
||||
单击 <ruby>添加挂载点<rt>Add mount point</rt></ruby> 按钮。
|
||||
|
||||
类似地,接下来分别创建大小为 10 GB 的 `/` 分区和 25 GB 的 `/home` 分区。
|
||||
|
||||
![Slash-Partition-Rocky-Linux9-installation][9]
|
||||
|
||||
![Home-Partition-Rocky-Linux9-Installation][10]
|
||||
|
||||
现在,创建最后一个分区,大小为 2 GB 的交换分区,(LCTT 校注:如果你的内存非常多,你可以选择不创建交换分区。另外,对于生产环境,建议将存储数据的目录单独划分分区。)
|
||||
|
||||
![Swap-Partition-RockyLinux9-Installation][11]
|
||||
|
||||
在你完成手动分区后,单击 <ruby>执行<rt>Done</rt></ruby> 按钮来完成这个项目。
|
||||
|
||||
![Finish-Manual-Partitioning-RockyLinux9-Installation][12]
|
||||
|
||||
选择 <ruby>接受更改<rt>Accept Changes</rt></ruby> 按钮来将这些更改写入磁盘。它也将返回到安装摘要屏幕。
|
||||
|
||||
![Accept-Changes-to-Write-on-Disk-RockyLinux9][13]
|
||||
|
||||
#### 配置用户设置
|
||||
|
||||
在 <ruby>用户设置<rt>User Settings</rt></ruby> 下,单击 <ruby>root 密码 <rt>Root Password</rt></ruby> 按钮。
|
||||
|
||||
![Set-Root-Password-RockyLinux9-Instalation][14]
|
||||
|
||||
设置 root 用户的密码,并单击 <ruby>执行<rt>Done</rt></ruby> 按钮。
|
||||
|
||||
再次回到 <ruby>用户设置<rt>User Settings</rt></ruby> 下,单击 <ruby>用户创建<rt>User Creation</rt></ruby> 按钮,具体指定本地用户的详细信息,例如用户名称和密码。
|
||||
|
||||
![Local-User-Create-During-RockyLinux9-Installation][15]
|
||||
|
||||
单击 <ruby>执行<rt>Done</rt></ruby> 按钮,它也将返回到安装摘要。
|
||||
|
||||
现在,我们准备开始安装,单击<ruby>开始安装<rt>Begin Installation</rt></ruby> 按钮,
|
||||
|
||||
![Begin-Installation-Option-RockyLinux9][16]
|
||||
|
||||
### 5、安装过程开始
|
||||
|
||||
在这一步骤中,安装程序已经开始了,并在正在进行中,
|
||||
|
||||
![RockyLinux9-Installation-Progress][17]
|
||||
|
||||
在安装过程完成后,安装程序将提示你重新启动系统。
|
||||
|
||||
![Reboot-System-after-RockyLinux9-Installation][18]
|
||||
|
||||
单击 <ruby>重新启动系统<rt>Reboot System</rt></ruby> 按钮。
|
||||
|
||||
注意:不要忘记在 BIOS 设置中将可启动介质从 USB 启动更改为硬盘驱动器启动。
|
||||
|
||||
### 6、安装后的登录屏幕和桌面环境
|
||||
|
||||
在成功安装后,当系统启动时,我们将看到下面的登录屏幕:
|
||||
|
||||
![RockyLinux9-Loginscreen-Post-Installation][19]
|
||||
|
||||
使用我们在安装期间创建的用户名称和密码,按下 <ruby>回车<rt>enter</rt></ruby> 按键来登录。
|
||||
|
||||
![Desktop-Env-RockyLinux9][20]
|
||||
|
||||
打开终端,依次运行下面的命令:
|
||||
|
||||
```
|
||||
$ sudo dnf install epel-release -y
|
||||
$ sudo dnf install neofetch -y
|
||||
```
|
||||
|
||||
现在,来验证系统的详细信息,运行 `neofetch` 命令:
|
||||
|
||||
```
|
||||
$ neofetch
|
||||
```
|
||||
|
||||
![neofetch-rockylinux9-post-installation][21]
|
||||
|
||||
这就是这篇指南的全部内容,我希望它对你有用。请在下面的评论区贴出你的疑问和反馈。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/
|
||||
|
||||
作者:[Pradeep Kumar][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[robsean](https://github.com/robsean)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.linuxtechi.com/author/pradeep/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://rockylinux.org/download
|
||||
[2]: https://www.linuxtechi.com/create-bootable-usb-disk-dvd-ubuntu-linux-mint/
|
||||
[3]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Select-Install-Rocky-Linux-9-option.png
|
||||
[4]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Preferred-Language-for-RockyLinux9-Installation.png
|
||||
[5]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Initial-Installation-Summary-Rocky-Linux9.png
|
||||
[6]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Choose-custom-Storage-Configuration-Rocky-Linux9.png
|
||||
[7]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Standard-Partition-Scheme-RockyLinux9.png
|
||||
[8]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Boot-Partition-RockyLinux9-Installation.png
|
||||
[9]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Slash-Partition-Rocky-Linux9-installation.png
|
||||
[10]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Home-Partition-Rocky-Linux9-Installation.png
|
||||
[11]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Swap-Partition-RockyLinux9-Installation.png
|
||||
[12]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Finish-Manual-Partitioning-RockyLinux9-Installation.png
|
||||
[13]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Accept-Changes-to-Write-on-Disk-RockyLinux9.png
|
||||
[14]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Set-Root-Password-RockyLinux9-Instalation.png
|
||||
[15]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Local-User-Create-During-RockyLinux9-Installation.png
|
||||
[16]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Begin-Installation-Option-RockyLinux9.png
|
||||
[17]: https://www.linuxtechi.com/wp-content/uploads/2022/07/RockyLinux9-Installation-Progress.png
|
||||
[18]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Reboot-System-after-RockyLinux9-Installation.png
|
||||
[19]: https://www.linuxtechi.com/wp-content/uploads/2022/07/RockyLinux9-Loginscreen-Post-Installation.png
|
||||
[20]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Desktop-Env-RockyLinux9.png
|
||||
[21]: https://www.linuxtechi.com/wp-content/uploads/2022/07/neofetch-rockylinux9-post-installation.png
|
@ -3,42 +3,44 @@
|
||||
[#]: author: "Abhishek Prakash https://itsfoss.com/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14908-1.html"
|
||||
|
||||
修复 Ubuntu 中的 “Pending Update of Firefox snap” 错误
|
||||
======
|
||||
|
||||
如果你使用的是 Ubuntu 22.04,你可能已收到此通知。
|
||||

|
||||
|
||||
如果你使用的是 Ubuntu 22.04,你可能已收到过此通知。
|
||||
|
||||
![Notification about pending Firefox app][1]
|
||||
|
||||
它会通知你 Firefox 更新正在等待中,并要求你关闭应用以避免中断。
|
||||
|
||||
因此,就像一个听话的 Ubuntu 用户一样,你在保存或完成工作后关闭 Firefox 浏览器。
|
||||
因此,就像一个听话的 Ubuntu 用户一样,你在保存或完成工作后关闭了 Firefox 浏览器。
|
||||
|
||||
你认为 Firefox 已在后台更新,重启浏览器将运行较新版本。
|
||||
|
||||
只是,这里不是这样。
|
||||
只是,并非如此。
|
||||
|
||||
**即使在你重启浏览器甚至计算机后,它仍可能显示相同的 “pending update of Firefox” 通知**。
|
||||
|
||||
令人沮丧么?我可以联系起来。
|
||||
令人沮丧么?我可以告诉你发生了什么。
|
||||
|
||||
让我解释一下为什么会发生这种情况,以及你可以做些什么来“修复”它。
|
||||
|
||||
### 修复 “pending update of Firefox snap” 问题
|
||||
|
||||
早些时候,Firefox 曾经在后台更新,然后要求你重启浏览器。它不会让你[在重启浏览器之前打开任何网站][2]。
|
||||
早些时候,Firefox 曾经在后台更新,然后要求你重启浏览器。在你重启浏览器之前 [不能][2] 打开任何网站。
|
||||
|
||||
![Firefox forced restart in the past][3]
|
||||
|
||||
在将 [Firefox 浏览器切换为默认 Snap 打包][4]后,Ubuntu 团队对更新流程进行了一些改动。
|
||||
在将 [Firefox 浏览器切换为默认 Snap 包格式][4] 后,Ubuntu 团队对更新流程进行了一些改动。
|
||||
|
||||
此通知是“改进的用户体验”的一部分。在这里,Firefox 不再阻止你浏览。它要求你在方便时重新启动浏览器以进行更新。
|
||||
此通知是“改进的用户体验”的一部分。现在,Firefox 不再阻止你浏览。你可以在方便时重新启动浏览器以进行更新。
|
||||
|
||||
但是为什么即使在你重新启动浏览器或系统后它仍然显示通知?
|
||||
但是为什么即使在你重新启动浏览器或系统后它仍然显示这个通知?
|
||||
|
||||
因为这是一条糟糕的通知消息,无法为你提供完整的信息。
|
||||
|
||||
@ -46,13 +48,13 @@
|
||||
|
||||
当你看到 “pending Firefox update” 时,你错误地认为应用已在后台更新,重启会将其升级到较新的版本。
|
||||
|
||||
这就是这里的情况。 Ubuntu 中的 snap 包每天会自动刷新(更新)一次或几次。为了避免在重新启动安装更新之前 Firefox 不允许你浏览任何内容而导致工作中断,Ubuntu 甚至不会在后台更新 Firefox Snap 包。
|
||||
而对于现在这种情况,Ubuntu 中的 Snap 包每天会自动刷新(更新)一次或几次。为了避免在重新启动安装更新之前 Firefox 不允许你浏览任何内容而导致工作中断,Ubuntu 甚至不会在后台更新 Firefox Snap 包。
|
||||
|
||||
相反,当 Snap 包刷新时,**它会显示通知并希望你立即关闭浏览器**以便可以使用其他 Snap 包进行更新。
|
||||
相反,当 Snap 包刷新时,**它会显示通知并希望你立即关闭浏览器**,以便可以使用其他 Snap 包进行更新。
|
||||
|
||||
但这不是像你我这样的用户能做到的,对吧?看到通知,立即关闭浏览器?不是很方便。
|
||||
但像你我这样的用户不能这样做,对吧?看到通知,立即关闭浏览器?并不是很方便。
|
||||
|
||||
但是,当你有时间关闭浏览器时,不会进行 Snap 刷新来更新浏览器。
|
||||
而当你有时间关闭浏览器时,Snap 刷新却不会马上更新浏览器。
|
||||
|
||||
你可以看到更新的 Snap 版本的 Firefox 可用,但只要 Firefox 正在运行,它就不会自动安装。
|
||||
|
||||
@ -63,7 +65,7 @@
|
||||
这是你摆脱每天不断出现的更新通知所需要做的事情。
|
||||
|
||||
* 关闭 Firefox 浏览器
|
||||
* 手动运行 Snap 刷新(更新已安装的 snap 包)
|
||||
* 手动运行 Snap 刷新(更新已安装的 Snap 包)
|
||||
|
||||
确保你在 Firefox 浏览器中的工作已保存。现在,使用鼠标关闭所有 Firefox 浏览器或在终端中运行以下命令:
|
||||
|
||||
@ -81,17 +83,17 @@ sudo snap refresh
|
||||
|
||||
![Firefox is being updated with Snap][6]
|
||||
|
||||
更新完成后,你将看到 Firefox 已升级到更新版本的摘要。
|
||||
更新完成后,你将看到 Firefox 已升级到更新版本的摘要信息。
|
||||
|
||||
![Updated Firefox snap version][7]
|
||||
|
||||
### 总结
|
||||
|
||||
安装非 Snap 版本的 Firefox 也可能是解决方案,但不是每个人都可以走这条路。
|
||||
安装非 Snap 版本的 Firefox 也可能是个解决方案,但不是每个人都可以走这条路。
|
||||
|
||||
Firefox 和 Snap 的开发人员必须齐心协力改进这个模棱两可的更新过程。他们应该提供更好的机制,不仅显示待处理更新的通知,还提供启动更新的选项。
|
||||
|
||||
这是我们最近在 Ubuntu 上看到的许多奇怪的事情之一。这必须改变以使 Ubuntu 成为一个对初学者友好的发行版(再次)。
|
||||
这是我们最近在 Ubuntu 上看到的许多奇怪的事情之一。这必须改变才能使 Ubuntu (再次)成为一个对初学者友好的发行版。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -100,7 +102,7 @@ via: https://itsfoss.com/pending-update-firefox-ubuntu/
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -0,0 +1,168 @@
|
||||
[#]: subject: "How open organizations can harness energy disruptions"
|
||||
[#]: via: "https://opensource.com/open-organization/22/8/energy-disruption"
|
||||
[#]: author: "Ron McFarland https://opensource.com/users/ron-mcfarland"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How open organizations can harness energy disruptions
|
||||
======
|
||||
Learn strategies for communities on the use of electric vehicles over internal combustion engined cars, the use of self-driving vehicles over human-driving vehicles, and the use of solar power generation over nuclear power generation.
|
||||
|
||||
![Solar panels][1]
|
||||
|
||||
Image by: Photo by Jason Hibbets
|
||||
|
||||
Many people talk a lot about the values of [Open Organization Principles][2], but in many ways, they require people to change how they do things, which can be difficult. That is true for businesses and industries as well. Disruption in many sectors is coming. How do we use Open Principles to address them? This article looks at what's happening in industries related to energy and transportation when it comes to drastic costing changes that will lead to industrial disruption.
|
||||
|
||||
Business disruption is happening through new technology or methods, which will slash costs. This is forcing industrial change. Consider the oil, coal, natural gas, nuclear, petroleum, biofuels, and charcoal (the primary energy in many developing countries) industries. All these industries are grouped in the fossil fuel-burning energy-generating industry. Imagine them all becoming obsolete and totally replaced by the solar and wind industries in the next decade or so because of costs. That is industrial disruption.
|
||||
|
||||
As a resource, I have read, [Clean Disruption of Energy and Transportation,][3] by Tony Seba.
|
||||
|
||||
The book was written before 2014, but many of his concepts are valid today. In his book, Seba presents an energy-usage case for electric vehicles (EV) replacing internal combustion engine vehicles (ICE), and the entire automotive industry shrinking with autonomous (self-driving) car disruption strictly on cost factors. If this is true, adapting to those changes will be required, and Open Organization Principles can be helpful.
|
||||
|
||||
He also builds a case for current electrical power generation being completely replaced in the years ahead by solar and wind with battery storage based strictly on cost competitive advantages. I discussed this in my article on [Jeremy Rifkin's][4] book [The Zero Marginal Cost Society: The Internet of Things, the Collaborative Commons, and the Eclipse of Capitalism.][5]
|
||||
|
||||
Seba's book reminds me too of [Michael E Porter's five competitive forces the force of substitutes][6].
|
||||
|
||||
For example, automobiles replaced the horse and carriage in about a decade in the early 1900s, and digital cameras replaced all film cameras on the market. This replacement was due to:
|
||||
|
||||
1. A cost advantage with prices coming down at exponential rates (from dollars to pennies like computer sizes to computing capacity) through increased innovation, scale, and competition.
|
||||
2. Superior product features.
|
||||
3. Added new product features,
|
||||
4. Central control replaced by distributed/shared control.
|
||||
|
||||
For these reasons, in the past, products became obsolete by something innovative. They were disrupted.
|
||||
|
||||
Imagine wanting to make an open organization community that can produce its own electricity instead of being forced to buy electricity at much higher prices. Could such a community be formed? Throughout his book, Seba makes a case that this is possible using the four above factors.
|
||||
|
||||
This article is the first of a two-part series on this topic. This article gives strategies for open organization communities on the use of electric vehicles over internal combustion engined (ICE) cars, the use of self-driving vehicles over human-driving vehicles, and the use of solar power generation over nuclear power generation. I'll give more in the second part of this series.
|
||||
|
||||
### A question of power
|
||||
|
||||
Seba assumes that electrical power is a commodity with no distinct quality difference and that there is no such thing as high-quality and low-quality electricity to the user. The only difference is the price of electricity at a given time.
|
||||
|
||||
The price of electricity fluctuates greatly. He also assumes that the automotive industry only has one quality, the movement of goods and people. Therefore, Seba's whole book looks at the cost (particularly end-user price) of both electricity (in kilowatt/hours) and movement (miles/kilometers over the life of a vehicle). He does a wonderful job of breaking down indirect and direct costs in great detail, including many costs I had never considered. This seems to be the same conclusion Jeremy Rifkin came to, calling it marginal costs in his book, *The Zero Marginal Cost Society* (cited above).
|
||||
|
||||
By providing general cost breakdowns, Seba enables readers to seriously consider how they and their community might use solar and wind electric power generation. One could build an open organization community based on the information this book makes available.
|
||||
|
||||
Coincidentally, I've just read Bill Gates' book, [How to Avoid a Climate Disaster][7]. Gates' book has one primary goal: To remove 51 billion tons of greenhouse gases from the atmosphere by 2050. Gates would love it if Seba's prediction comes true.
|
||||
|
||||
Seba believes that by 2030, all electricity generation and vehicles on the road will be carbon-free. Seba believes that over a 10-15 year period disruptive forces will penetrate industries in an "S" shaped growth. They will start slowly while the users adjust to this new purchasing option.
|
||||
|
||||
Then, once several success stories are in operation, disruption will take off like a rocket, making all old technology and processes obsolete. After several decades, the demand will flatten when the disruptive technology fully serves the market.
|
||||
|
||||
![S demand chart relating growth and time][8]
|
||||
|
||||
Image by:
|
||||
|
||||
(Ronald McFarland, CC BY-SA 4.0)
|
||||
|
||||
Here is how the "S" demand works for electrical energy according to Seba:
|
||||
|
||||
1. Some solar and wind systems are accepted in the market, making capital more available and less costly.
|
||||
2. More creative financing plans are developed and offered.
|
||||
3. Local, distributed energy generation increases.
|
||||
4. The business structure of energy flips from centralized to distributed.
|
||||
5. Enabling technologies, such as sensors, artificial intelligence, big data, and mobile communications, improve exponentially. Sensors, smaller and more energy efficient than ever before, will have more information on energy usage than any conventional utility could ever obtain.
|
||||
6. The increasing cost of resource-based energy will push more people away from them.
|
||||
7. Complementary markets, such as wind power generation, electric vehicles, and self-driving cars will increase exponentially.
|
||||
8. Investments in other storage technologies for shared solar facilities, wind operations, electric vehicles, and self-driving cars will increase.
|
||||
9. The business environment of energy will become more and more distributed.
|
||||
10. The conventional command-and-control energy business model will enter a vicious cycle of rising prices and obsolete assets.
|
||||
|
||||
Seba writes, "World demand for energy is expected to be 16.9 TW by 2030, according to the US Energy Information Agency." That may seem dire, but Seba adds, "Should solar continue on its exponential trajectory, the energy generation will be 100% solar by 2030."
|
||||
|
||||
I'm sure that Gates would be delighted if that turns out to be true, but he is taking no chances on just those predictions. Gates is investing in future nuclear power plants and carbon capture systems for current fossil fuel burning plants to reduce carbon dioxide emissions further.
|
||||
|
||||
### Building a community
|
||||
|
||||
Assume we want to build an open organization community to introduce three things:
|
||||
|
||||
* The use of electric vehicles (EV) over internal combustion engined (ICE) vehicles.
|
||||
* Self-driving vehicles over human-driven vehicles.
|
||||
* Solar power generation over nuclear power generation.
|
||||
|
||||
Here is additional detail on Seba's arguments for each.
|
||||
|
||||
#### 1. Use of electric over internal combustion engined vehicles
|
||||
|
||||
Consider the following attributes of EV over ICE vehicles:
|
||||
|
||||
* Seba presents that an electric vehicle is inexpensive to operate. An EV is five times more efficient in energy use than ICE vehicles. That makes an EV 10 times cheaper than ICE.
|
||||
* An electric vehicle is cheaper to maintain because it contains few moving parts.
|
||||
* In the future, there will be wireless charging stations along the road, so vehicles need not stop to charge. ICE vehicles will always have to stop at filling stations.
|
||||
* Electric vehicles are safer, with more safety sensors.
|
||||
* By 2025, EVs will likely be cheaper to purchase than ICE, with battery costs coming down rapidly.
|
||||
* Battery performance and range are increasing with new developments.
|
||||
* Electric vehicles can gather driving data in real-time for added safety, performance analytics, and future improvements.
|
||||
* Electric vehicles can use excess electricity in the owners' home solar system or sell the excess to the local utility company.
|
||||
* An EV company can offer free fuel and maintenance for five years if it wants to. No ICE vehicle manufacturer can do this.
|
||||
|
||||
#### 2. Use of self-driving vehicles over human-driving vehicles
|
||||
|
||||
Young people are moving away from owning vehicles in favor of Uber or Lyft services. It is becoming cheaper in the long term. Ride-sharing offers many advantages, including:
|
||||
|
||||
* Each Uber/Lyft vehicle on the road is estimated to replace around 15 cars purchased. This result shrinks the overall vehicle numbers, impacting the need for parking lots and vehicle insurance.
|
||||
* Owning an asset used less than 10% of the time is not practical. Most cars are parked most of the time, except for commercial vehicles that operate during work hours.
|
||||
|
||||
The next step is self-driving cars, according to Seba. When self-driving cars are fully in the market, there will be disruption in the automotive, transportation, logistics, and oil industries. Self-driving cars will be mainly purchased, owned, and operated by corporations with fleets, not individuals.
|
||||
|
||||
Self-driving cars provide many advantages, a few of which are listed here:
|
||||
|
||||
* Self-driving cars expand the transportation of people. Children, the elderly, and those with disabilities will be new customers.
|
||||
* The benefits of self-driving cars include:
|
||||
* Save lives (no human error, advanced machine learning, and sensing).
|
||||
* Save time (less time on the road with less congestion or looking for parking spaces).
|
||||
* Save space (fewer roads, garages, and parking spaces required).
|
||||
* Save energy (lower fuel consumption).
|
||||
* Save money (in purchasing, operating, maintaining, and insuring for transportation).
|
||||
* The cost of transportation will be cheaper, safer, and easier.
|
||||
|
||||
#### 3. Use of solar power generation over nuclear power generation
|
||||
|
||||
Solar power generation pricing is falling rapidly and is projected to continue falling with more use. This is where the Internet of Things (IoT) comes in. While nuclear power costs will also come down, it's not competitive, particularly as decommissioning is extremely expensive.
|
||||
|
||||
Here are some considerations for solar power generation:
|
||||
|
||||
* Solar cost has improved by 1,540 times since 1970. Based on Seba's research, solar costs are expected to come down by another two-thirds by 2020 (at the time the book was written in 2014).
|
||||
* Currently, operating nuclear power plants' costs are increasing and are continually over budget in cost. If their costs don't come down, they will phase out. Bill Gates is betting on improved low-cost designs.
|
||||
* Solar panel costs have dropped by a factor of US$100/Wh (Watt-hour) to 65¢/Wh from 1970 to around 2012, far lower than nuclear prices.
|
||||
* New nuclear power plants are expected to provide electricity at 25¢/kWh-30¢/kWh. That is not competitive, with solar being around 12.5¢/kWh. In the United States, residential customers pay around 12.5¢/kWh, and some solar power suppliers expect to reach 5.79¢/kWh soon.
|
||||
* Nuclear power generation uses twice as much water as natural gas, which is 10,000 times more than solar. This places added stress on the freshwater supply.
|
||||
* There are now solar manufacturing companies providing power 24 hours/day. [Torresol Gemasolar][9] is a company in Spain putting one of these facilities into operation. They use safer and cheaper molten salt thermal energy storage. This energy storage method is a tenth of the cost of Li-on batteries.
|
||||
* Seba says, "Large, centralized, top-down, supplier-centric energy is on the way out. It is being replaced by modular, distributed, bottom-up, open, knowledge-based, consumer-centric energy." For solar, many users will also be producers and sharers of electricity and information.
|
||||
* Solar now regularly provides 20-35% of Germany's power. That will continue with improved battery storage, especially as Germany moves away from Russian oil and gas due to the war in Ukraine. Both for residential and commercial solar plants, tens of thousands of power generation units are being installed in the United States, Europe, and Australia.
|
||||
* In 2014, 430 reactors in 31 countries provided 370 GW of nuclear power capacity, mainly in France, Japan, Russia, and the United States. These most likely will be replaced with solar, wind, or [4th generation][10] nuclear, which uses waste as fuel. Europe will shut down 80% of its 186 nuclear power plants by 2030 ([Global Data][11]). Many current nuclear power plants are close to their shutdown age.
|
||||
* Nuclear power plants are not insurable at any premium, so only governments protect them.
|
||||
|
||||
### Wrap up
|
||||
|
||||
In the second part of this series, I'll discuss ideas regarding the use of solar power generation over oil power generation, the use of solar power generation over natural gas (with methane) power generation, the use of solar power generation over biofuels power generation, the use of solar power generation over coal power generation, and distributed electricity generation (small and simple) over conventional large utilities.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/open-organization/22/8/energy-disruption
|
||||
|
||||
作者:[Ron McFarland][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/ron-mcfarland
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/sites/default/files/lead-images/LIFE_solar_panels_520x292_JH.png
|
||||
[2]: https://theopenorganization.org/definition/open-organization-definition/
|
||||
[3]: https://www.amazon.co.jp/Clean-Disruption-Energy-Transportation-Conventional/dp/B00RWNDUZA
|
||||
[4]: https://en.wikipedia.org/wiki/Jeremy_Rifkin
|
||||
[5]: https://www.goodreads.com/book/show/18594514-the-zero-marginal-cost-society
|
||||
[6]: https://www.youtube.com/watch?v=mYF2_FBCvXw
|
||||
[7]: https://www.gatesnotes.com/Energy/My-new-climate-book-is-finally-here
|
||||
[8]: https://opensource.com/sites/default/files/2022-07/s-demand.png
|
||||
[9]: https://www.youtube.com/watch?v=QN-8DMZLpyI
|
||||
[10]: https://en.wikipedia.org/wiki/Generation_IV_reactor
|
||||
[11]: https://www.globaldata.com/
|
@ -1,130 +0,0 @@
|
||||
[#]: subject: "What is Firefox Multi-Account Containers? Why and How to Use It?"
|
||||
[#]: via: "https://itsfoss.com/firefox-containers/"
|
||||
[#]: author: "Hunter Wittenborn https://itsfoss.com/author/hunter/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "hanszhao80"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
What is Firefox Multi-Account Containers? Why and How to Use It?
|
||||
======
|
||||
|
||||
As the needs of users who use various programs on their devices becomes increasingly complex, the programs themselves are also needing to follow suit to keep up with the demand that users are wanting and expecting.
|
||||
|
||||
Something that I find I need on a daily basis is an easy way to be able to stay logged in to multiple accounts inside my web browser at the same time. I _could_ just log in and out of each of my accounts as needed, but this becomes extremely tedious when I’m moving across multiple accounts in a short period of time.
|
||||
|
||||
Originally, I was using Google Chrome’s ability to have multiple accounts, which worked, but was a tad too tedious to manage, and it felt a bit clunky to create an entire new Google account just to do what I considered something that should be able to be done from a _single_ account.
|
||||
|
||||
This is the point where I moved to Firefox’s Multi-Account Containers feature. Not only is it so much more flexible than my setup on Google Chrome, but I am also using something that is created by my browser’s developers themselves, making for an overall smoother and simpler experience.
|
||||
|
||||
![Illustration of containers in Firefox][1]
|
||||
|
||||
### What is Multi-Account Container in Firefox?
|
||||
|
||||
Mutli-Account Containers also works tremendously well if you want to separate parts of your digital life from each other. When you are using containers, your browsing activity from one container is not shared with other containers. This isolation means that you can log into two separate accounts on the same website in different containers. Your login session, site preference and tracking data will be confined to the container where you used a certain website.
|
||||
|
||||
What other advantage does it have? Imagine you were shopping on Amazon or some other e-commerce. You browsed a few items but did not buy anything. Now if you browse the web, you’ll see ads related to products you browsed. Some websites show ads despite ad-blockers. With containers, you can separate your shopping websites with other websites.
|
||||
|
||||
Let me share another example with you. Firefox provides a Facebook container by default. This container includes Facebook, Messenger and Instagram websites by default. This means when you open any of these three websites, they are opened in ‘Facebook container’. Thus, Facebook won’t be able to track your activity on other websites.
|
||||
|
||||
This is one of the [Firefox features that not many people know or use][2].
|
||||
|
||||
### Using Multi-Account Containers
|
||||
|
||||
Installing Firefox Multi-Account containers is an extremely simple process, and only takes a few clicks.
|
||||
|
||||
First, head over to the [extension’s page][3] on the Firefox Add-ons website. The only thing you need to do after that is click the `Add to Firefox` button.
|
||||
|
||||
![][4]
|
||||
|
||||
And you’re done! Now we can get straight into actually using the new extension.
|
||||
|
||||
If you didn’t notice already, there should now be a new icon to the right of your search bar:
|
||||
|
||||
![][5]
|
||||
|
||||
This is the icon that you’ll use to interact with Firefox Multi-Account containers. If you then click the icon, you’ll be greeted with a little menu:
|
||||
|
||||
![][6]
|
||||
|
||||
With that, let’s try some examples out so we can see how Multi-Account Containers actually works.
|
||||
|
||||
#### Setting up the container
|
||||
|
||||
First off, we need to make a container. We can do this by going to `Manage Containers -> New Container` in the Multi-Account Containers menu.
|
||||
|
||||
![][7]
|
||||
|
||||
![][8]
|
||||
|
||||
Next, enter the name for the new container, and select a color and icon. Then, hit `OK` to save the new container.
|
||||
|
||||
![][9]
|
||||
|
||||
And that’s it! We can now go back to the main menu to open a new tab inside the new container:
|
||||
|
||||
![][10]
|
||||
|
||||
You will also notice that the new tab has some styling to denote that it’s running inside of a container:
|
||||
|
||||
![][11]
|
||||
|
||||
#### Watching the container work in action
|
||||
|
||||
Let’s now look at what the container actually does when you use it.
|
||||
|
||||
We’re going to go to the Linode manager website in a normal browser tab, where I’m currently signed in:
|
||||
|
||||
![][12]
|
||||
|
||||
Let’s now try opening the same page inside our Firefox container, at which point I’m redirected to the Linode login screen:
|
||||
|
||||
![][13]
|
||||
|
||||
Why was I redirected? Because now I am not logged in. That’s one of the joys of Firefox containers: be able to be signed in inside of one browser session, and then enter a container, and it’s like you’ve never visited the site before.
|
||||
|
||||
If you were to sign in to a website within the container however, you would stay signed in while vising websites from the container. You could also use this feature to sign in to a website from inside the container, thus keeping all the data from that site away from your normal browser data.
|
||||
|
||||
Note
|
||||
|
||||
Things like your browser history itself will still be exposed to your normal browser session. The container feature simply provides a way to separate things like signed-in accounts as mentioned in this article.
|
||||
|
||||
### Wrapping Up
|
||||
|
||||
Mutli-Account Containers prove to be a wonderful feature for those who are conscious about their privacy, or just want to really try to get stringent on the security of their systems.
|
||||
|
||||
For example, you could sign in to your Google account inside of a container, and Google would never know who you whenever you aren’t inside the container.
|
||||
|
||||
And then lastly, this extension is just a great choice for people who want to sign into to multiple accounts at once, without resorting to making separate browser accounts for each thing you want to use.
|
||||
|
||||
And there you go, that’s the premise of Firefox’s Multi-Account Containers.
|
||||
|
||||
Need any help getting everything going, or just got a general question? Feel free to leave any of it in the comments below.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/firefox-containers/
|
||||
|
||||
作者:[Hunter Wittenborn][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[hanszhao80](https://github.com/hanszhao80)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/hunter/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/Firefox-container.png?resize=800%2C450&ssl=1
|
||||
[2]: https://itsfoss.com/firefox-useful-features/
|
||||
[3]: https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=search
|
||||
[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-install-page.png?resize=800%2C366&ssl=1
|
||||
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-searchbar-icon-1.png?resize=800%2C48&ssl=1
|
||||
[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-main-menu.png?resize=302%2C474&ssl=1
|
||||
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-manage-containers-1.png?resize=291%2C402&ssl=1
|
||||
[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-new-container.png?resize=290%2C399&ssl=1
|
||||
[9]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-new-container-itsfoss.png?resize=292%2C401&ssl=1
|
||||
[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-opening-new-container.png?resize=290%2C398&ssl=1
|
||||
[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-new-container-styling.png?resize=800%2C370&ssl=1
|
||||
[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-linode.png?resize=800%2C114&ssl=1
|
||||
[13]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-linode-login.png?resize=800%2C405&ssl=1
|
@ -1,212 +0,0 @@
|
||||
[#]: subject: "MAKE MORE with Inkscape – Ink/Stitch"
|
||||
[#]: via: "https://fedoramagazine.org/make-more-with-inkscape-ink-stitch/"
|
||||
[#]: author: "Sirko Kemter https://fedoramagazine.org/author/gnokii/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "aREversez"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
MAKE MORE with Inkscape – Ink/Stitch
|
||||
======
|
||||
|
||||
![MAKE more with Inkscape - Ink/Stitch][1]
|
||||
|
||||
Inkscape, the most used and loved tool of Fedora’s Design Team, is not just a program for doing nice vector graphics. With vector graphics (in our case SVG) a lot more can be done. Many programs can import this format. Also, Inkscape can do a lot more than just graphics. The first article of this [series][2] showed how to [produce GCode with Inkscape][3]. This article will examine another Inkscape extension – [Ink/Stitch][4]. Ink/Stitch is an extension for designing embroidery with Inkscape.
|
||||
|
||||
### DIY Embroidery
|
||||
|
||||
In the last few years the do-it-yourself or maker scene has experienced a boom. You could say it all began with the inexpensive option of [3D printing][5]; followed by also not expensive [CNC][6] machines and laser cutters/engravers. Also the prices for more _“_traditional_”_ machines such as embroidery machines have fallen during recent years. [Home embroidery machines are now available for 500 US dollars][7].
|
||||
|
||||
If you don’t want to or can’t buy one yourself, the nearest [MakerSpace][8] often has one. Even the prices for commercial single-head embroidery machines are down to 5,000 US dollars. They are an investment that can pay off quickly.
|
||||
|
||||
### Software for Embroidery Design
|
||||
|
||||
Some of the home machines include their own software for designing embroidery. But most, if not all, of these applications are Windows-only. Also, the most used manufacturer-independent software of this area – [Embird][9] – is only available for Windows. But you could run it in Wine.
|
||||
|
||||
Another solution for Linux – [Embroidermodde][10] – is not really developed anymore. And this is after having had a fundraising campaign.
|
||||
|
||||
Today, only one solution is left – [Ink/Stitch][4]
|
||||
|
||||
![The logo of the Ink/Stitch project][11]
|
||||
|
||||
### Open Source and Embroidery Design
|
||||
|
||||
Ink/Stitch started out using [libembroidery][12]. Today [pyembroidery][13] is used. The manufacturers can’t be blamed for the prices of these machines and the number of Linux users. It is hardly worthwhile to develop applications for Linux.
|
||||
|
||||
#### The Embroidery File Format Problem
|
||||
|
||||
There is a problem with the proliferation of file formats for embroidery machines; especially among manufacturers that cook their own file format for their machines. In some cases, even a single manufacturer may use several different file formats.
|
||||
|
||||
* **.10o** – Toyota embroidery machines
|
||||
* **.100** – Toyota embroidery machines
|
||||
* **.CSD** – Poem, Huskygram, and Singer EU embroidery home sewing machines.
|
||||
* **.DSB** – Baruda embroidery machines
|
||||
* **.JEF** – MemoryCraft 10000 machines.
|
||||
* **.SEW** – MemoryCraft 5700, 8000, and 9000 machines.
|
||||
* **.PES** – Brother and Babylock embroidery home sewing machines.
|
||||
* **.PEC** – Brother and Babylock embroidery home sewing machines.
|
||||
* **.HUS** – Husqvarna/Viking embroidery home sewing machines.
|
||||
* **.PCS** – Pfaff embroidery home sewing machines.
|
||||
* **.VIP** – old Pfaff format also used by Husqvarna machines.
|
||||
* **.VP3** – newer Pfaff embroidery home sewing machines.
|
||||
* **.DST** – Tajima commercial embroidery sewing machines.
|
||||
* **.EXP** – Melco commercial embroidery sewing machines.
|
||||
* **.XXX** – Compucon, Singer embroidery home sewing machines.
|
||||
* **.ZSK** – ZSK machines on the american market
|
||||
|
||||
|
||||
|
||||
This is just a small selection of the file formats that are available for embroidery. You can find a more complete list [here][14]. If you are interested in [deeper knowledge about these file formats, see here for more information][15].
|
||||
|
||||
#### File Formats of Ink/Stitch
|
||||
|
||||
Ink/Stitch can currently read the following file formats: 100, 10o, BRO, DAT, DSB, DST, DSZ, EMD, EXP, EXY, FXY, GT, INB, JEF, JPX, KSM, MAX, MIT, NEW, PCD, PCM, PCQ, PCS, PEC, PES, PHB, PHC, SEW, SHV, STC, STX, TAP, TBF, U01, VP3, XXX, ZXY and also GCode as TXT file.
|
||||
|
||||
For the more important task of writing/saving your work, Ink/Stitch supports far fewer formats: DST, EXP, JEF, PEC, PES, U01, VP3 and of course SVG, CSV and GCode as TXT
|
||||
|
||||
Besides the problem of all these file formats, there are other problems that a potential stitch program has to overcome.
|
||||
|
||||
Working with the different kinds of stitches is one difficulty. The integration of tools for drawing and lettering is another. But why invent such a thing from scratch? Why not take an existing vector program and just add the functions for embroidery to it? That was the idea behind the [Ink/Stitch project][4] over three years ago.
|
||||
|
||||
### Install Ink/Stitch
|
||||
|
||||
Ink/Stitch is an [extension for Inkscape][16]. Inkscape’s new functionality for downloading and installing extensions is still experimental. And you will not find Ink/Stitch among the extensions that are offered there. You must [download][17] the extension manually. After it is downloaded, unzip the package into your directory for Inkscape extensions. The default location is _~/.config/Inkscape/extensions_ (or _/usr/share/inkscape/extensions_ for system-wide availability). If you have changed the defaults, you may need to check Inkscape’s settings to find the location of the extensions directory.
|
||||
|
||||
### Customization – Install Add-ons for Ink/Stitch
|
||||
|
||||
The Ink/Stitch extension provides a function called Install Add-Ons for Inkscape, which you should run first.
|
||||
|
||||
The execution of this function – _Extensions > Ink/Stitch > Thread Color Management > Install thread color palettes for Inkscape_ – will take a while.
|
||||
|
||||
Do not become nervous as there is no progress bar or a similar thing to see.
|
||||
|
||||
This function will install 70 color palettes of various yarn manufacturers and a symbol library for Ink/Stitch.
|
||||
|
||||
![Inkscape with the swatches dialogue open, which shows the Madeira Rayon color palette][18]
|
||||
|
||||
If you use the download from Github version 2.0.0, the ZIP-file contains the color palette files. You only need to unpack them into the right directory (_~/.config/inkscape/palettes/_). If you need a [hoop template, you can download][19] one and save it to _~/.config/inkscape/templates_.
|
||||
|
||||
The next time you start Inkscape, you will find it under _File > New From Template_.
|
||||
|
||||
### Lettering with Ink/Stitch
|
||||
|
||||
The way that is by far the easiest and most widely used, is to get a embroidery design using the _Lettering_ function of Ink/Stitch. It is located under _Extensions > Ink/Stitch > Lettering_. Lettering for embroidery is not simple. What you expect are so called satin stitched letters. For this, special font settings are needed.
|
||||
|
||||
![Inkscape with a “Chopin” glyph for satin stitching defined for the Lettering function][20]
|
||||
|
||||
You can convert paths to satin stitching. But this is more work intensive than using the Lettering function. Thanks to the work of an active community, the May 2021 release of Ink/Stitch 2.0 brought more predefined fonts for this. An English tutorial on how to create such fonts can be found [here][21].
|
||||
|
||||
Version 2.0 also brings functions (_Extensions > Ink/Stitch > Font Management_) to make managing these kinds of fonts easier. There are also functions for creating these kinds of fonts. But you will need knowledge about font design with Inkscape to do so. First, you create an an entire SVG font. It is then feed through a JSON script which converts the SVG font into the type of files that Ink/Stitch’s font management function works with.
|
||||
|
||||
![On the left side the Lettering dialogue and on the right the preview of this settings][22]
|
||||
|
||||
The function will open a dialogue window where you just have to put in your text, choose the size and font, and then it will render a preview.
|
||||
|
||||
### Embroider Areas/Path-Objects
|
||||
|
||||
The easiest thing with Ink/Stitch, is to embroider areas or paths. Just draw your path. When you use shapes then you have to convert them and then run _Extensions > Ink/Stitch > Fill Tools > Break Apart Fill Objects…_
|
||||
|
||||
This breaks apart the path into its different parts. You have to use this function. The _Path > Break apart_ function of Inkscape won’t work for this.
|
||||
|
||||
Next, you can run Ink/Stitch’s built-in simulator: _Extensions > Ink/Stitch > Visualise and Export > Simulator/Realistic Preview_.
|
||||
|
||||
![The new Fedora logo as Stitch Plan Preview][23]
|
||||
|
||||
Be careful with the simulator. It takes a lot system resources and it will take a while to start. You may find it easier to use the function _Extensions > Ink/Stitch > Visualise and Export > Stitch Plan Preview_. The latter renders the threading of the embroidery outside of the document.
|
||||
|
||||
![Nicubunu’s Fedora hat icon as embroidery. The angles for the stitches of the head part and the brim are different so that it looks more realistic. The outline is done in Satin stitching][24]
|
||||
|
||||
### Simple Satin and Satin Embroidery
|
||||
|
||||
Ink/Stitch will convert each stroke with a continuous line (no dashes) to what they call Zig-Zag or Simple Satin. Stitches are created along the path using the stroke width you have specified. This will work as long there aren’t too many curves on the path.
|
||||
|
||||
![Parameter setting dialogue and on the right the Fedora logo shape embroidered as Zig-Zag line][25]
|
||||
|
||||
This is simple. But it is by far not the best way. It is better to use the Satin Tools for this. The functions for the Satin embroidery can be found under _Extensions > Satin Tools_. The most important is the conversion function which converts paths to satin strokes.
|
||||
|
||||
![Fedora logo shape as Satin Line embroidery][26]
|
||||
|
||||
You can also reverse the stitch direction using _Extensions > Satin Tools > Flip Satin Column Rails_. This underlines the 3D effect satin embroidery gets, especially when you make puff embroidery. For machines that have this capability, you can also set the markings for the trims of jump stitches. To visualize these trims, Ink/Stitch uses the symbols that where installed from its own symbol library.
|
||||
|
||||
### The Ink/Stitch Stitch Library
|
||||
|
||||
What is called the stitch library is simply the kind of stitches that Ink/Stitch can create. The Fill Stitch and Zig-Zag/Satin Stitch have already been introduced. But there are more.
|
||||
|
||||
* **Running Stitches**: These are used for doing outline designs. The running stitch produces a series of small stitches following a line or curve. Each dashed line will be converted into a Running Stitch. The size of the dashes does not matter.
|
||||
|
||||
|
||||
|
||||
![A running stitch – each dashed line will be converted in such one][27]
|
||||
|
||||
* **Bean Stitches**: These can also be used for outline designs or add details to a design. The bean stitch describes a repetition of running stitches back and forth. This results in thicker threading.
|
||||
|
||||
|
||||
|
||||
![Bean Stitches – creating a thicker line][28]
|
||||
|
||||
* **Manual Stitch**: In this mode, Ink/Stitch will use each node of a path as a needle penetration point; exactly as they are placed.
|
||||
|
||||
|
||||
|
||||
![In manual mode – each node will be the needle penetration point][29]
|
||||
|
||||
* **E-Stitch**: The main use for e-stitch is a simple but strong cover stitch for applique items. It is often used for baby cloths because their skin tends to be more sensitive.
|
||||
|
||||
|
||||
|
||||
![E-Stitch mostly used for applications on baby cloths, soft but strong connection][30]
|
||||
|
||||
### Embroidery Thread List
|
||||
|
||||
Some embroidery machines (especially those designed for commercial use) allow different threads to be fitted in advance according to what will be needed for the design. These machines will automatically switch to the right thread when needed. Some file formats for embroidery support this feature. But some do not. Ink/Stitch can apply custom thread lists to an embroidery design.
|
||||
|
||||
If you want to work on an existing design, you can import a thread list: _Extensions > Ink/Stitch > Import Threadlist_. Thread lists can also be exported: _Save As different file formats as *.zip_. You can also print them: _Extensions > Ink/Stitch > Visualise and Export > Print PDF_.
|
||||
|
||||
### Conclusion
|
||||
|
||||
Writing software for embroidery design is not easy. Many functions are needed and diverse (sometimes closed-source) file formats make the task difficult. Ink/Stitch has managed to create a useful tool with many functions. It enables the user to get started with basic embroidery design. Some things could be done a little better. But it is definitely a good tool as-is and I expect that it will become better over time. Machine embroidery can be an interesting hobby and with Ink/Stitch the Fedora Linux user can begin designing breathtaking things.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://fedoramagazine.org/make-more-with-inkscape-ink-stitch/
|
||||
|
||||
作者:[Sirko Kemter][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[aREversez](https://github.com/aREversez)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://fedoramagazine.org/author/gnokii/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://fedoramagazine.org/wp-content/uploads/2021/08/drawing2-816x345.png
|
||||
[2]: https://fedoramagazine.org/series/make-more/
|
||||
[3]: https://fedoramagazine.org/make-more-with-inkscape-g-code-tools/
|
||||
[4]: https://inkstitch.org/
|
||||
[5]: https://fedoramagazine.org/3d-printing-in-fedora-from-an-idea-to-the-thing/
|
||||
[6]: https://en.wikipedia.org/wiki/Numerical_control
|
||||
[7]: https://www.amazon.com/-/de/dp/B07VZ2YBLL/ref=sr_1_11?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=1MFJJWXMKQD6R&dchild=1&keywords=home+embroidery+machine&qid=1628388092&rnid=2941120011&s=arts-crafts&sprefix=home+embroider+%2Caps%2C-1&sr=1-11
|
||||
[8]: https://www.fablabs.io/labs/map
|
||||
[9]: https://www.embird.net/
|
||||
[10]: https://embroidermodder.org/
|
||||
[11]: https://fedoramagazine.org/wp-content/uploads/2021/08/inkstitch_logo.png
|
||||
[12]: https://github.com/Embroidermodder/libembroidery
|
||||
[13]: https://github.com/inkstitch/pyembroidery
|
||||
[14]: http://www.needlework.ru/page/embroidery.htm
|
||||
[15]: http://edutechwiki.unige.ch/en/Embroidery_format
|
||||
[16]: https://inkscape.org/~wwderw/%E2%98%85inkstitch-embroidery-extension
|
||||
[17]: https://github.com/inkstitch/inkstitch/releases/tag/v2.0.0
|
||||
[18]: https://fedoramagazine.org/wp-content/uploads/2021/08/swatches-1024x556.png
|
||||
[19]: https://inkstitch.org/assets/images/tutorials/templates/hoop-template.svg
|
||||
[20]: https://fedoramagazine.org/wp-content/uploads/2021/08/satinfont-1024x556.png
|
||||
[21]: https://inkstitch.org/tutorials/font-creation/
|
||||
[22]: https://fedoramagazine.org/wp-content/uploads/2021/08/lettering-1024x523.png
|
||||
[23]: https://fedoramagazine.org/wp-content/uploads/2021/08/stitch-preview-1024x556.png
|
||||
[24]: https://fedoramagazine.org/wp-content/uploads/2021/08/nicu-stitch.gif
|
||||
[25]: https://fedoramagazine.org/wp-content/uploads/2021/08/zigzag-1024x463.png
|
||||
[26]: https://fedoramagazine.org/wp-content/uploads/2021/08/satin.png
|
||||
[27]: https://fedoramagazine.org/wp-content/uploads/2021/08/running-stitch-detail.jpg
|
||||
[28]: https://fedoramagazine.org/wp-content/uploads/2021/08/bean-stitch-detail.jpg
|
||||
[29]: https://fedoramagazine.org/wp-content/uploads/2021/08/manual-stitch-detail.png
|
||||
[30]: https://fedoramagazine.org/wp-content/uploads/2021/08/e-stitch-detail.jpg
|
@ -1,213 +0,0 @@
|
||||
[#]: subject: "How to Install Rocky Linux 9 Step by Step with Screenshots"
|
||||
[#]: via: "https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/"
|
||||
[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "robsean"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How to Install Rocky Linux 9 Step by Step with Screenshots
|
||||
======
|
||||
In this guide, we will cover how to install Rocky Linux 9 step by step with screenshots.
|
||||
|
||||
Rocky Enterprise Software Foundation has released its latest operating system ‘Rocky Linux 9’. Rocky Linux is free and open-source operating system for workstation and servers. It is considered as drop-in replacement for CentOS Linux.
|
||||
|
||||
‘Blue Onyx’ is the Code name for Rocky Linux 9, it is the clone of RHEL 9. The main difference between Rocky Linux and RHEL is that it has its own open-source build system called ‘Peridot’.
|
||||
|
||||
##### New Updates and Features of Rocky Linux 9
|
||||
|
||||
* Gnome 40 is the default Desktop Environment.
|
||||
* Support for Direct Access (DAX) operations on XFS file system
|
||||
* Updated runtime and compilers like GCC 11.2.1, LLVM (13.0.1), Rust (1.58.1), and Go (1.17.1).
|
||||
* Updated development tool chain like Python 3.9, Node.js 16, Ruby 3.0.3, Perl 5.32 & PHP 8.0
|
||||
* By Default, root user authentication disabled over ssh.
|
||||
* Updated OpenSSL 3.0 and improved cockpit web console.
|
||||
* Community support till May 31st, 2032.
|
||||
|
||||
##### Prerequisites
|
||||
|
||||
* 2 GB RAM or more
|
||||
* 2 CPU Core (1.1 GHz Processor or higher)
|
||||
* 20 GB hard disk space
|
||||
* Boot Media (USD or DVD)
|
||||
* Internet Connectivity (Optional)
|
||||
|
||||
Without any delay, let’s jump into Rocky Linux 9 installation steps,
|
||||
|
||||
### 1) Download Rocky Linux 9 ISO File
|
||||
|
||||
Use the following official URL to download ISO file,
|
||||
|
||||
* [Rocky Linux 9 ISO][1]
|
||||
|
||||
Once you have downloaded the iso file, make a bootable media (USB/DVD) using the downloaded iso.
|
||||
|
||||
In Windows, you can use ‘Rufus’ software to make bootable USB drive using ISO file. In Linux, refer the following
|
||||
|
||||
* [How to Create Bootable USB Drive on Ubuntu / Linux Mint][2]
|
||||
|
||||
### 2) Boot System with Bootable Media
|
||||
|
||||
Head to the system on which you are planning to install Rocky Linux 9, reboot it and change the boot medium from hard disk to USB from its bios settings.
|
||||
|
||||
Once the system boots up with bootable media then we will get the following screen,
|
||||
|
||||
![Select-Install-Rocky-Linux-9-option][3]
|
||||
|
||||
Choose the first option, ‘Install Rocky Linux 9.0’ and hit enter.
|
||||
|
||||
### 3) Choose Preferred Language
|
||||
|
||||
Select your preferred language for the installation and then click on Continue,
|
||||
|
||||
![Preferred-Language-for-RockyLinux9-Installation][4]
|
||||
|
||||
### 4) Installation Summary
|
||||
|
||||
In this step, we will get the following initial installation summary. To begin the installation, first we must complete marked items like ‘Installation Destination’ and ‘User settings’.
|
||||
|
||||
Apart from the marked items, we can also change the existing items, just click on them and change it as per your requirement.
|
||||
|
||||
![Initial-Installation-Summary-Rocky-Linux9][5]
|
||||
|
||||
##### Configure Installation Destination
|
||||
|
||||
In this item, we will specify the partition scheme for Rocky Linux. Click on ‘Installation Destination’.
|
||||
|
||||
Here we can choose either automatic or custom option for storage configuration or partition scheme.
|
||||
|
||||
In automatic option, partitions will be created automatically by installer on the disk whereas custom option allows us to create manual partitions on disk.
|
||||
|
||||
![Choose-custom-Storage-Configuration-Rocky-Linux9][6]
|
||||
|
||||
In this guide, I am going with ‘Custom’ option, Click on ‘Done’
|
||||
|
||||
![Standard-Partition-Scheme-RockyLinux9][7]
|
||||
|
||||
On the 40 GB disk, we will create following partitions,
|
||||
|
||||
* /boot : 2GB (xfs file system)
|
||||
* / : 10 GB (xfs file system)
|
||||
* /home : 25 GB (xfs file system)
|
||||
* Swap : 2 GB
|
||||
|
||||
To start creating partitions, choose ‘Standard Partition’ scheme and then click on + symbol.
|
||||
|
||||
Create first partition as /boot of size 2 GB,
|
||||
|
||||
![Boot-Partition-RockyLinux9-Installation][8]
|
||||
|
||||
Click on ‘Add mount point’
|
||||
|
||||
Similarly create next two partitions / and /home of size 10 GB and 25 GB respectively.
|
||||
|
||||
![Slash-Partition-Rocky-Linux9-installation][9]
|
||||
|
||||
![Home-Partition-Rocky-Linux9-Installation][10]
|
||||
|
||||
Now create last partition as swap of size 2GB,
|
||||
|
||||
![Swap-Partition-RockyLinux9-Installation][11]
|
||||
|
||||
Once you are done with manual partitioning, click on Done to finish this item.
|
||||
|
||||
![Finish-Manual-Partitioning-RockyLinux9-Installation][12]
|
||||
|
||||
Choose ‘Accept Changes‘ to write changes to the disk. It will also take back to installation summary screen.
|
||||
|
||||
![Accept-Changes-to-Write-on-Disk-RockyLinux9][13]
|
||||
|
||||
##### Configure User Settings
|
||||
|
||||
Under User Settings, Click on ‘Root Password’.
|
||||
|
||||
![Set-Root-Password-RockyLinux9-Instalation][14]
|
||||
|
||||
Set the root password and then click on Done,
|
||||
|
||||
From ‘User Settings’ again , click on ‘User Creation’, Specify the local user details like username and password.
|
||||
|
||||
![Local-User-Create-During-RockyLinux9-Installation][15]
|
||||
|
||||
Click on ‘Done’, it will take back to installation summary.
|
||||
|
||||
Now, we are ready to initiate the installation, click on ‘Begin Installation’.
|
||||
|
||||
![Begin-Installation-Option-RockyLinux9][16]
|
||||
|
||||
### 5) Installation Started
|
||||
|
||||
In this step, installation got started and is in progress,
|
||||
|
||||
![RockyLinux9-Installation-Progress][17]
|
||||
|
||||
Once the installation is completed, installer will instruct to reboot the system.
|
||||
|
||||
![Reboot-System-after-RockyLinux9-Installation][18]
|
||||
|
||||
Click on ‘Reboot System’.
|
||||
|
||||
Note: Don’t forget to change the boot medium from USB to hard disk from bios settings.
|
||||
|
||||
### 6) Login Screen and Desktop Environment Post Installation
|
||||
|
||||
When the system boots up after the successful installation, we will get following login screen,
|
||||
|
||||
![RockyLinux9-Loginscreen-Post-Installation][19]
|
||||
|
||||
Use the same user’s credentials that we have created during the installation, press enter to login.
|
||||
|
||||
![Desktop-Env-RockyLinux9][20]
|
||||
|
||||
Open the terminal, run following commands one after the another,
|
||||
|
||||
```
|
||||
$ sudo dnf install epel-release -y
|
||||
$ sudo dnf install neofetch -y
|
||||
```
|
||||
|
||||
Now, to verify the system details, run neofetch command,
|
||||
|
||||
```
|
||||
$ neofetch
|
||||
```
|
||||
|
||||
![neofetch-rockylinux9-post-installation][21]
|
||||
|
||||
That’s all from this guide, I hope you found it useful. Kindly do post your queries and feedback in below comments section.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/
|
||||
|
||||
作者:[Pradeep Kumar][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.linuxtechi.com/author/pradeep/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://rockylinux.org/download
|
||||
[2]: https://www.linuxtechi.com/create-bootable-usb-disk-dvd-ubuntu-linux-mint/
|
||||
[3]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Select-Install-Rocky-Linux-9-option.png
|
||||
[4]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Preferred-Language-for-RockyLinux9-Installation.png
|
||||
[5]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Initial-Installation-Summary-Rocky-Linux9.png
|
||||
[6]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Choose-custom-Storage-Configuration-Rocky-Linux9.png
|
||||
[7]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Standard-Partition-Scheme-RockyLinux9.png
|
||||
[8]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Boot-Partition-RockyLinux9-Installation.png
|
||||
[9]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Slash-Partition-Rocky-Linux9-installation.png
|
||||
[10]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Home-Partition-Rocky-Linux9-Installation.png
|
||||
[11]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Swap-Partition-RockyLinux9-Installation.png
|
||||
[12]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Finish-Manual-Partitioning-RockyLinux9-Installation.png
|
||||
[13]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Accept-Changes-to-Write-on-Disk-RockyLinux9.png
|
||||
[14]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Set-Root-Password-RockyLinux9-Instalation.png
|
||||
[15]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Local-User-Create-During-RockyLinux9-Installation.png
|
||||
[16]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Begin-Installation-Option-RockyLinux9.png
|
||||
[17]: https://www.linuxtechi.com/wp-content/uploads/2022/07/RockyLinux9-Installation-Progress.png
|
||||
[18]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Reboot-System-after-RockyLinux9-Installation.png
|
||||
[19]: https://www.linuxtechi.com/wp-content/uploads/2022/07/RockyLinux9-Loginscreen-Post-Installation.png
|
||||
[20]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Desktop-Env-RockyLinux9.png
|
||||
[21]: https://www.linuxtechi.com/wp-content/uploads/2022/07/neofetch-rockylinux9-post-installation.png
|
@ -2,7 +2,7 @@
|
||||
[#]: via: "https://ostechnix.com/change-grub-theme-in-linux/"
|
||||
[#]: author: "sk https://ostechnix.com/author/sk/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: translator: "robsean"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
@ -1,180 +0,0 @@
|
||||
[#]: subject: "How To Automatically Update Running Docker Containers Using Watchtower"
|
||||
[#]: via: "https://ostechnix.com/automatically-update-running-docker-containers/"
|
||||
[#]: author: "sk https://ostechnix.com/author/sk/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "Donkey"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How To Automatically Update Running Docker Containers Using Watchtower
|
||||
======
|
||||
Automating Docker container base image updates using Watchtower
|
||||
|
||||
Keeping the Docker containers up-to-date is one of the important job of a DevOps engineer. Manually updating Docker containers is a quite time consuming task. This guide explains what is **Watchtower**, how to install Watchtower, and how to **automatically update running Docker containers using Watchtower** in Linux.
|
||||
|
||||
### What Is Watchtower?
|
||||
|
||||
**Watchtower** is a free, open source application that allows you to monitor the running Docker containers and updates them automatically when it finds any changes in their base images.
|
||||
|
||||
When watchtower finds if a running container needs to be updated, it will gracefully stop the running container by sending it a SIGTERM signal.
|
||||
|
||||
It will then download the new image, and finally restart the Container with the same options that were used when it was deployed initially. Everything will be done automatically on the background, so the user intervention is not required. I
|
||||
|
||||
n this guide, we will see how to automatically update running Docker containers using Watchtower in Unix-like operating systems.
|
||||
|
||||
I tested this guide in CentOS and Ubuntu system, however the procedure is same for all Linux distributions.
|
||||
|
||||
### Install Watchtower In Linux
|
||||
|
||||
Watchtower itself is available as a Docker image. So, deploying it is not a big deal. Install Docker on your Linux box, and start running Watchtower to monitor the Docker containers in no time.
|
||||
|
||||
Refer the following guides to install Docker on RPM-based and DEB-based systems.
|
||||
|
||||
* [How To Install Docker In CentOS][1]
|
||||
* [How To Install Docker In Ubuntu][2]
|
||||
* [A Beginners Manual To Docker Desktop For Linux][3]
|
||||
|
||||
Once Docker installed, you can deploy the Watchtower container using the following command as **root** user:
|
||||
|
||||
```
|
||||
# docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower
|
||||
```
|
||||
|
||||
If you have installed Docker Desktop, run the Watchtower container as normal user.
|
||||
|
||||
```
|
||||
$ docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower
|
||||
```
|
||||
|
||||
This command will pull the latest image of watchtower, and start watchtower container.
|
||||
|
||||
**Sample output:**
|
||||
|
||||
```
|
||||
Unable to find image 'containrrr/watchtower:latest' locally
|
||||
latest: Pulling from containrrr/watchtower
|
||||
1045b2f97fda: Pull complete
|
||||
35a104a262d3: Pull complete
|
||||
1a0671483169: Pull complete
|
||||
Digest: sha256:bbf9794a691b59ed2ed3089fec53844f14ada249ee5e372ff0e595b73f4e9ab3
|
||||
Status: Downloaded newer image for containrrr/watchtower:latest
|
||||
91c104ef0e9896e8cd5ff30d9f13e728dbfad66443830ec2ac85dde6d7d37564
|
||||
```
|
||||
|
||||
![Run Watchtower Docker Container][4]
|
||||
|
||||
### Automatically Update Running Docker Containers Using Watchtower
|
||||
|
||||
Watchtower has now started with other running containers on your system. You can view the list of running Docker containers using command:
|
||||
|
||||
```
|
||||
$ docker ps
|
||||
```
|
||||
|
||||
**Sample output:**
|
||||
|
||||
```
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
91c104ef0e98 containrrr/watchtower "/watchtower" 14 minutes ago Up 14 minutes 8080/tcp watchtower
|
||||
f90b462b0712 bitnami/wordpress-nginx:6 "/opt/bitnami/script…" 19 minutes ago Up 19 minutes 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp ostechnix-wordpress-1
|
||||
```
|
||||
|
||||
As you see in the above output, Watchtower container is running along with another container named **"ostechnix-wordpress-1"**. From now on, Watchtower will start watching this container every few minutes.
|
||||
|
||||
If it finds any changes in the this container's base image, it will gracefully shutdown the "ostechnix-wordpress-1" container, and restart it with new image with same options that were used when it was started initially.
|
||||
|
||||
Similarly, it will automatically check for updates for all running containers every few minutes, and updates them automatically.
|
||||
|
||||
### How Does Watchtower Update Multiple-linked Containers?
|
||||
|
||||
Watchtower is smart enough when it comes to monitoring multiple linked containers.
|
||||
|
||||
Let us say we are running two containers now.
|
||||
|
||||
```
|
||||
$ docker ps
|
||||
```
|
||||
|
||||
**Sample output:**
|
||||
|
||||
```
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
91c104ef0e98 containrrr/watchtower "/watchtower" 14 minutes ago Up 14 minutes 8080/tcp watchtower
|
||||
f90b462b0712 bitnami/wordpress-nginx:6 "/opt/bitnami/script…" 19 minutes ago Up 19 minutes 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp ostechnix-wordpress-1
|
||||
a895f082438a bitnami/mariadb:10.6 "/opt/bitnami/script…" 20 minutes ago Up 19 minutes 3306/tcp ostechnix-mariadb-1
|
||||
```
|
||||
|
||||
![View Running Docker Containers][5]
|
||||
|
||||
As you see in the above output, we are running two containers i.e. "ostechnix-wordpress-1" and "ostechnix-mariadb-1". The mariadb container is linked to wordpress container.
|
||||
|
||||
If Watchtower finds an update for "wordpress" container, it will first shutdown the linked container i.e "mariadb", and then stop the wordpress container.
|
||||
|
||||
After updating the wordpress container, Watchtower will restart both containers in correct order with the same options that were used when they were deployed initially, so that the application comes back up correctly. In our case, the mariadb container will be started first, followed by wordpress container to ensure that the link continued to work.
|
||||
|
||||
### Monitor A Specific Container
|
||||
|
||||
By default, Watchtower will monitor all Docker containers running within the Docker daemon to which it is pointed.
|
||||
|
||||
However, you can limit watchtower to monitor a particular Docker container by specifying the container's name as shown below.
|
||||
|
||||
```
|
||||
$ docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower ostechnix-wordpress-1
|
||||
```
|
||||
|
||||
In the above example, watchtower will only monitor the container named "ostechnix-wordpress-1" for updates, and other running containers will be ignored.
|
||||
|
||||
If you don't specify any arguments, then watchtower will monitor all running Docker Containers as usual.
|
||||
|
||||
### Sending Notifications
|
||||
|
||||
You may want to receive a notification whenever the containers are updated. You can send notifications via Email, Slack, MSTeams, and Gotify etc.
|
||||
|
||||
The following example shows how to send notification via Email. I assume you already have setup SMTP server.
|
||||
|
||||
```
|
||||
docker run -d \
|
||||
--name watchtower \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-e WATCHTOWER_NOTIFICATIONS=email \
|
||||
-e WATCHTOWER_NOTIFICATION_EMAIL_FROM=fromaddress@gmail.com \
|
||||
-e WATCHTOWER_NOTIFICATION_EMAIL_TO=toaddress@gmail.com \
|
||||
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com \
|
||||
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 \
|
||||
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=fromaddress@gmail.com \
|
||||
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=app_password \
|
||||
-e WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2 \
|
||||
containrrr/watchtower
|
||||
```
|
||||
|
||||
For more details, refer the Watchtower GitHub repository and Watchtower official website links provided below.
|
||||
|
||||
**Resources:**
|
||||
|
||||
* [Watchtower GitHub][6]
|
||||
* [Watchtower Website][7]
|
||||
|
||||
> **Recommended Download** - [Free eBook: "Docker Containerization Cookbook"][8]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://ostechnix.com/automatically-update-running-docker-containers/
|
||||
|
||||
作者:[sk][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[Donkey](https://github.com/Donkey-Hao)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://ostechnix.com/author/sk/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://ostechnix.com/install-docker-centos/
|
||||
[2]: https://ostechnix.com/install-docker-ubuntu/
|
||||
[3]: https://ostechnix.com/docker-desktop-for-linux/
|
||||
[4]: https://ostechnix.com/wp-content/uploads/2022/07/Run-Watchtower-Docker-Container.png
|
||||
[5]: https://ostechnix.com/wp-content/uploads/2022/07/View-Running-Docker-Containers.png
|
||||
[6]: https://github.com/v2tec/watchtower
|
||||
[7]: https://containrrr.dev/watchtower/
|
||||
[8]: https://ostechnix.tradepub.com/free/w_java39/prgm.cgi
|
@ -1,99 +0,0 @@
|
||||
[#]: subject: "Delete the local reference to a remote branch in Git"
|
||||
[#]: via: "https://opensource.com/article/22/8/delete-local-reference-remote-branch-git"
|
||||
[#]: author: "Agil Antony https://opensource.com/users/agantony"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "MCGA"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Delete the local reference to a remote branch in Git
|
||||
======
|
||||
Follow a few simple steps to keep your Git repository tidy.
|
||||
|
||||
![A diagram of a branching process][1]
|
||||
|
||||
Image by: Opensource.com
|
||||
|
||||
After you merge a GitLab or GitHub pull request, you usually delete the topic branch in the remote repository to maintain repository hygiene. However, this action deletes the topic branch only in the remote repository. Your local Git repository also benefits from routine cleanup.
|
||||
|
||||
To synchronize the information in your local repository with the remote repository, you can execute the `git prune` command to delete the local reference to a remote branch in your local repository.
|
||||
|
||||
Follow these three simple steps:
|
||||
|
||||
### 1. Checkout the central branch of your repository (such as main or master)
|
||||
|
||||
```
|
||||
$ git checkout <central_branch_name>
|
||||
```
|
||||
|
||||
### 2. List all the remote and local branches
|
||||
|
||||
```
|
||||
$ git branch -a
|
||||
```
|
||||
|
||||
Example output:
|
||||
|
||||
```
|
||||
4.10.z
|
||||
* master
|
||||
remotes/mydata/4.9-stage
|
||||
remotes/mydata/4.9.z
|
||||
remotes/mydata/test-branch
|
||||
```
|
||||
|
||||
In this example, `test-branch` is the name of the topic branch that you deleted in the remote repository.
|
||||
|
||||
### 3. Delete the local reference to the remote branch
|
||||
|
||||
First, list all the branches that you can delete or prune on your local repository:
|
||||
|
||||
```
|
||||
$ git remote prune origin --dry-run
|
||||
```
|
||||
|
||||
Example output:
|
||||
|
||||
```
|
||||
Pruning origin
|
||||
URL: git@example.com:myorg/mydata-4.10.git
|
||||
* [would prune] origin/test-branch
|
||||
```
|
||||
|
||||
Next, prune the local reference to the remote branch:
|
||||
|
||||
```
|
||||
$ git remote prune origin
|
||||
```
|
||||
|
||||
Example output:
|
||||
|
||||
```
|
||||
Pruning origin
|
||||
URL: git@example.com:myorg/mydata-4.10.git
|
||||
* [pruned] origin/test-branch
|
||||
```
|
||||
|
||||
That's it!
|
||||
|
||||
### Maintaining your Git repository
|
||||
|
||||
Keeping your Git repository tidy may not seem urgent at first, but the more a repository grows, the more important it becomes to prune unnecessary data. Don't slow yourself down by forcing yourself to sift through data you no longer need.
|
||||
|
||||
Regularly deleting local references to remote branches is a good practice for maintaining a usable Git repository.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/8/delete-local-reference-remote-branch-git
|
||||
|
||||
作者:[Agil Antony][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/agantony
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/sites/default/files/lead-images/freesoftwareway_law3.png
|
@ -2,7 +2,7 @@
|
||||
[#]: via: "https://itsfoss.com/upgrade-linux-mint-version/"
|
||||
[#]: author: "Abhishek Prakash https://itsfoss.com/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: translator: "robsean"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
@ -0,0 +1,157 @@
|
||||
[#]: subject: "List Files and Directories in Style Using lsd and exa"
|
||||
[#]: via: "https://www.debugpoint.com/list-files-directories-style/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
List Files and Directories in Style Using lsd and exa
|
||||
======
|
||||
Reimagine and style your file and directories list using two ls utilities – lsd and exa.
|
||||
|
||||
![][0]
|
||||
|
||||
The ls command in Linux is the most used command. This command lists files and directories in the terminal. So, as you can see, it’s pretty popular and perhaps used by everyone.
|
||||
|
||||
But the command outputs a large set of information, and it’s sometimes easier to view them colourfully.
|
||||
|
||||
For example, if you run the ls command in the most basic way, it should look somewhat like this.
|
||||
|
||||
![The default list files and directories view via ls command][1]
|
||||
|
||||
It seems a little bland, isn’t it? What if you can style it a bit so that it becomes more readable while looking nice?
|
||||
|
||||
### List Files and Directories in Style
|
||||
|
||||
#### lsd
|
||||
|
||||
The first application I want to show you is called “lsd” aka “LSDeluxe”. It’s a rewrite of the GNU `ls` command with additional features such as column heading, colours for various items, font and icon support.
|
||||
|
||||
Here’s how it looks after installation.
|
||||
|
||||
```
|
||||
lsd -l --header
|
||||
```
|
||||
|
||||
![lsd command showing list of files][2]
|
||||
|
||||
As you can see, it looks stunning with different colour codes for permission, file types, and folders and even adds icons beside a file name.
|
||||
|
||||
The application is full of features such as tree view (see below) which even gives you a list of files inside a folder as well in a single command.
|
||||
|
||||
```
|
||||
lsd -l --header --tree
|
||||
```
|
||||
|
||||
![lsd command showing a tree view][3]
|
||||
|
||||
You can learn more about its feature on the [official GitHub page][4].
|
||||
|
||||
I’m sure you are excited. Let’s see how you can install it.
|
||||
|
||||
You can download the deb file from here for Ubuntu and related distribution. And after that, simply run dpkg to install.
|
||||
|
||||
```
|
||||
sudo dpkg -i lsd_vvvv_amd64.deb
|
||||
```
|
||||
|
||||
For Fedora Linux, use the following command.
|
||||
|
||||
```
|
||||
sudo dnf install lsd
|
||||
```
|
||||
|
||||
And Arch Linux users can get it using the below command.
|
||||
|
||||
```
|
||||
pacman -S lsd
|
||||
```
|
||||
|
||||
The application is also available for other distros, macOS, BSD and Windows. For those instructions, you can [find them here][5].
|
||||
|
||||
For a better experience, use it with the [Zsh shell with Oh My Zsh][6] program.
|
||||
|
||||
#### exa
|
||||
|
||||
The next program is `exa`, similar to `lsd` but with more features. The `exa` command can colourize your ls output, detect various file types in Unix systems, headings, tree view and many more features.
|
||||
|
||||
Exa is a single binary and has a small resource footprint. Here’s how it looks with some sample commands.
|
||||
|
||||
```
|
||||
exa -al
|
||||
```
|
||||
|
||||
```
|
||||
exa -abghHliS
|
||||
```
|
||||
|
||||
```
|
||||
exa -abghHliS --long --tree
|
||||
```
|
||||
|
||||
![Various exa commands][7]
|
||||
|
||||
You can learn more about exa parameters and switches on [GitHub][8].
|
||||
|
||||
Installation of exa is easy and requires just one command. For Ubuntu and related distributions, you can install it using the below command.
|
||||
|
||||
```
|
||||
sudo apt install exa
|
||||
```
|
||||
|
||||
For Fedora and Arch Linux, use the following commands, respectively.
|
||||
|
||||
```
|
||||
sudo dnf install exa
|
||||
```
|
||||
|
||||
```
|
||||
pacman -S exa
|
||||
```
|
||||
|
||||
Likewise, all other installation instructions for various OSes can be [found here][9].
|
||||
|
||||
### Copying from the terminal as HTML
|
||||
|
||||
One of the interesting tips is that all the above colourful lists can be copied as HTML via the default Ubuntu terminal. And you can use it for your web pages or documents.
|
||||
|
||||
For example, I copied a sample from the above to a LibreOffice Writer document.
|
||||
|
||||
It’s one of the best features, although it depends on the terminal program and NOT the above utilities.
|
||||
|
||||
![Exporting the command output as HTML][10]
|
||||
|
||||
### Wrapping Up
|
||||
|
||||
I explained the inner workings of two programs – ls and exa to list files and directories in style. I hope you get to use them for different needs.
|
||||
|
||||
Do let me know in the comment box if you like them, Or if you know any such utility.
|
||||
|
||||
Cheers.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/list-files-directories-style/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
[0]: https://www.debugpoint.com/wp-content/uploads/2022/08/cool-ls.jpg
|
||||
[1]: https://www.debugpoint.com/wp-content/uploads/2022/08/The-default-list-files-and-directories-view-via-ls-command.jpg
|
||||
[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/lsd-command-showing-list-of-files-2.jpg
|
||||
[3]: https://www.debugpoint.com/wp-content/uploads/2022/08/lsd-command-showing-a-tree-view.jpg
|
||||
[4]: https://github.com/Peltoche/lsd
|
||||
[5]: https://github.com/Peltoche/lsd#installation
|
||||
[6]: https://www.debugpoint.com/install-use-zsh/
|
||||
[7]: https://www.debugpoint.com/wp-content/uploads/2022/08/Various-exa-commands.jpg
|
||||
[8]: https://github.com/ogham/exa#command-line-options
|
||||
[9]: https://github.com/ogham/exa#installation
|
||||
[10]: https://www.debugpoint.com/wp-content/uploads/2022/08/Exporting-the-command-output-as-HTML.jpg
|
75
sources/tech/20220808 Fix file permission errors on Linux.md
Normal file
75
sources/tech/20220808 Fix file permission errors on Linux.md
Normal file
@ -0,0 +1,75 @@
|
||||
[#]: subject: "Fix file permission errors on Linux"
|
||||
[#]: via: "https://opensource.com/article/22/8/fix-file-permission-errors-linux"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Fix file permission errors on Linux
|
||||
======
|
||||
Don't let file permissions slow you down. Here's how to manage them on Linux and macOS.
|
||||
|
||||
![open source button on keyboard][1]
|
||||
|
||||
Image by: Opensource.com
|
||||
|
||||
If you're sharing files between two users over the network or "sneaker net" (saving a file to a hard drive and copying it to a computer), you may encounter permission errors when you try to read or write the file. Even if you understand the concept of , you may not know exactly how to diagnose the problem or solve it. I used to perform data migration as a service, so I've run into my fair share of permission errors and ownership conflicts. Here's how I fix them fast.
|
||||
|
||||
### 1. Determine the correct user
|
||||
|
||||
Before you can fix a permission error, you must determine who requires permission. You might think you already know that, but what you may not realize is that the user *name* isn't the most definitive attribute of user identity. Your computer doesn't see you as a person so much as it sees you as a number. To learn your number, take a look at your user ID:
|
||||
|
||||
```
|
||||
$ id --user
|
||||
1005
|
||||
```
|
||||
|
||||
### 2. Get the current owner
|
||||
|
||||
Next, determine the owner of the file you're unable to interact with. Because there's a file permission problem happening, you may need to use the `sudo` command to see the information about the file:
|
||||
|
||||
```
|
||||
$ sudo ls --numeric-uid-gid
|
||||
-rw------- 1 1000 100 23041 Aug 2 05:26 bar
|
||||
-rw------- 1 1000 100 54281 Aug 2 04:58 baz
|
||||
-rw------- 1 1000 100 822 Aug 2 08:19 foo
|
||||
```
|
||||
|
||||
In this example, the user owning the files is identified as user ID 1000, and that's why user ID 1005 can't interact with them. Worse yet, the files are marked as readable and writable only by the user that owns them, so not even members of the same group can interact with the files.
|
||||
|
||||
### 3. Change permissions to match
|
||||
|
||||
You know the user requiring permission, so you can change the current owner to match your current user:
|
||||
|
||||
```
|
||||
$ sudo chown 1005 foo
|
||||
```
|
||||
|
||||
You can also grant members of your group, and possibly other users on the system, access to the files by changing the file mode. For instance, to maintain read and write permissions (7) while granting read permissions (4) to the group and any other user:
|
||||
|
||||
```
|
||||
$ sudo chmod 744 foo
|
||||
```
|
||||
|
||||
### Learn more
|
||||
|
||||
File permissions can seem tricky when you're not comfortable with them. For more information on how file ownership works, read [Introduction to chown][2]. For more information on how file permissions work, read [Introduction to chmod][3].
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/8/fix-file-permission-errors-linux
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/seth
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/sites/default/files/lead-images/button_push_open_keyboard_file_organize.png
|
||||
[2]: https://opensource.com/article/19/8/linux-chown-command
|
||||
[3]: https://opensource.com/article/19/8/linux-chmod-command
|
@ -0,0 +1,141 @@
|
||||
[#]: subject: "Sunamu: Display Lyrics for Currently Playing Music on the Desktop in Linux"
|
||||
[#]: via: "https://itsfoss.com/sunamu-music-widget/"
|
||||
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Sunamu: Display Lyrics for Currently Playing Music on the Desktop in Linux
|
||||
======
|
||||
|
||||
Being an eye candy **music widget** (or controller).
|
||||
|
||||
That’s the only focus of Sunamu, and it does its job pretty well.
|
||||
|
||||
Sunamu is an intriguing tool. It is not a music player but lets you display the music you’re playing and control it.
|
||||
|
||||
I’m not a fan of having a floating widget on my primary workspace, but Sunamu’s minimal yet elegant approach changed my mind!
|
||||
|
||||
So, I will walk you through its features, installation, configuration tweaks, and my experience with it.
|
||||
|
||||
### Sunamu: An Open-Source Music Controller
|
||||
|
||||
![playing music with sunamu][1]
|
||||
|
||||
As you can notice in the screenshot above, it looks like a pretty nice way to display the music being played, with the lyrics, while having the basic controls.
|
||||
|
||||
You can play/pause, go to the next/previous track, shuffle, and enable a loop.
|
||||
|
||||
Sunamu supports a wide range of audio platforms, including Spotify. It also detects music from your local collection, supporting some of the [best music players][2] available for Linux.
|
||||
|
||||
Additionally, it supports Windows. So, if you are streaming something through the Microsoft Edge browser on Windows, it should work well.
|
||||
|
||||
You can check the [compatibility list][3] on its GitHub page to learn more about the supported players and browsers.
|
||||
|
||||
Fortunately, you do not have to be limited by what it offers by default. It provides an easy way to tweak the config file (learn more about it on its [GitHub page][4]). This makes it possible for newbies to tweak some settings and have fun.
|
||||
|
||||
I’ll mention a few tips about it in the later section of this article.
|
||||
|
||||
### Features of Sunamu
|
||||
|
||||
![Sunamu on empty workspace][5]
|
||||
|
||||
Sunamu comes with a set of promising features, and some of them are:
|
||||
|
||||
* Detects and display the song that is currently playing.
|
||||
* Fetch color schemes from the album art and use the same color palette for better visuals.
|
||||
* Customizable through its config file.
|
||||
* Integrates well with Discord.
|
||||
* Consumes minimal system resources.
|
||||
|
||||
### Install Sunamu on Linux
|
||||
|
||||
![Disable lyrics in sunamu][6]
|
||||
|
||||
It provides AppImage, deb, and rpm packages for easy installation across various Linux distributions. I used AppImage for testing, and it worked like a charm.
|
||||
|
||||
You can also benefit from our guide on [how to use AppImage][7] or [install deb packages][8] and [rpm packages][9], if you are new to Linux.
|
||||
|
||||
Interestingly, Sunamu is one of the few open-source music tools that provide direct support for ARM-based machines.
|
||||
|
||||
Visit their [GitHub releases page][10] to download packages or build it from the source.
|
||||
|
||||
**Let me show you a quick installation method** for a Debian-based distro via the terminal. Just follow the given instructions, and you’ll be good to go:
|
||||
|
||||
First, let’s download the .deb package using wget command as follows:
|
||||
|
||||
```
|
||||
wget https://github.com/NyaomiDEV/Sunamu/releases/download/v2.0.0/sunamu_2.0.0_amd64.deb
|
||||
```
|
||||
|
||||
Once you are done downloading the package, use the given command for installation:
|
||||
|
||||
```
|
||||
sudo dpkg -i sunamu_2.0.0_amd64.deb
|
||||
```
|
||||
|
||||
![install sunamu in ubuntu][11]
|
||||
|
||||
### Tip: Tweak the Configuration file
|
||||
|
||||
By default, Sunamu won’t fetch colors from the album art but show the lyrics for each song. And like many others, I like to avoid reading lyrics.
|
||||
|
||||
Config file of Sunamu is usually located at **~/.config/sunamu/config.json5**.
|
||||
|
||||
To open the Sunamu config file, type the given command:
|
||||
|
||||
```
|
||||
nano ~/.config/sunamu/config.json5
|
||||
```
|
||||
|
||||
Make changes in the electron section as given below (to enable colors and disable lyrics):
|
||||
|
||||
```
|
||||
electron: {
|
||||
type: 'electron',
|
||||
widgetMode: true,
|
||||
colors: true,
|
||||
font: '',
|
||||
theme: 'default',
|
||||
showLyrics: false,
|
||||
}
|
||||
```
|
||||
|
||||
Here’s what the final config file should look like:
|
||||
|
||||
![modify config file of sunamu][12]
|
||||
|
||||
### Final Thoughts
|
||||
|
||||
Unless you are someone who avoids electron-based apps, Sunamu is a good enough app to enhance your music experience on Linux. After, [Amberol][13], this is the second Music-related app I have liked recently.
|
||||
|
||||
If you try it, don’t forget to share your experience in the comment section.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/sunamu-music-widget/
|
||||
|
||||
作者:[Sagar Sharma][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/sagar/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://itsfoss.com/wp-content/uploads/2022/08/playing-music-with-sunamu.png
|
||||
[2]: https://itsfoss.com/best-music-players-linux/
|
||||
[3]: https://github.com/NyaomiDEV/Sunamu/blob/master/COMPATIBILITY.md
|
||||
[4]: https://github.com/NyaomiDEV/Sunamu/blob/master/assets/config.json5
|
||||
[5]: https://itsfoss.com/wp-content/uploads/2022/08/song-with-no-lyrics-min.png
|
||||
[6]: https://itsfoss.com/wp-content/uploads/2022/08/playing-music-with-sunamu-inclusing-lyrics-min1.png
|
||||
[7]: https://itsfoss.com/use-appimage-linux/
|
||||
[8]: https://itsfoss.com/install-deb-files-ubuntu/
|
||||
[9]: https://itsfoss.com/install-rpm-files-fedora/
|
||||
[10]: https://github.com/NyaomiDEV/Sunamu/releases/tag/v2.0.0
|
||||
[11]: https://itsfoss.com/wp-content/uploads/2022/08/install-sunamu-in-ubuntu.png
|
||||
[12]: https://itsfoss.com/wp-content/uploads/2022/08/modified-config-file-of-sunamu.png
|
||||
[13]: https://itsfoss.com/amberol-music-player/
|
@ -0,0 +1,127 @@
|
||||
[#]: subject: "What is Firefox Multi-Account Containers? Why and How to Use It?"
|
||||
[#]: via: "https://itsfoss.com/firefox-containers/"
|
||||
[#]: author: "Hunter Wittenborn https://itsfoss.com/author/hunter/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "hanszhao80"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
浅议 Firefox 多账户容器
|
||||
======
|
||||
|
||||
随着在设备上使用各种程序的用户的需求变得越来越复杂,程序本身也需要跟上用户的现实需求和未来期望。
|
||||
|
||||
我发现我每天都需要的东西是用一个简便的方法在网页浏览器保持登录多个账号。我 _可以_ 根据需要对我的每个账号进行登录和注销操作,但在短时间内切换多个账号时,这变得非常乏味。
|
||||
|
||||
最初,我使用谷歌浏览器,它拥有管理多个帐户的能力。这很有效,但管理起来略显繁琐,而且明明只需 _一个_ 账号就能搞定的事却要创建一个新的谷歌账号来完成,这显得有点儿笨拙。
|
||||
|
||||
这是我转而使用 Firefox <ruby>多账户容器<rt>Multi-Account Containers</rt></ruby> 功能的原因。它不仅比我在谷歌 Chrome 浏览器上的设置灵活得多,而且我还使用了由我的浏览器开发者自己创建的工具,从而在整体上获得了更流畅和更简单的体验。
|
||||
|
||||
![Firefox 中的容器图示][1]
|
||||
|
||||
### Firefox 中的多帐户容器是什么?
|
||||
|
||||
如果你想将数字生活的各个部分彼此分开,多账户容器也非常有效。当你使用容器时,你在一个容器中的浏览活动不会与其他容器共享。这种隔离意味着你可以在不同容器中登录同一网站上的两个不同帐户。你的登录会话、网站偏好和跟踪数据将被限制在你使用某个网站的容器中。
|
||||
|
||||
它还有什么其他优势?想象一下,你在亚马逊或其他电子商务网站上购物。你浏览了一些商品,但没有购买任何东西。现在,如果你浏览网络,你会看到与你浏览的产品相关的广告。尽管有广告拦截器,一些网站仍会显示广告。使用容器,你可以将你的购物网站与其他网站分开。
|
||||
|
||||
再给大家分享一个例子。Firefox 默认提供一个 Facebook 容器。默认情况下,此容器包括 Facebook、Messenger 和 Instagram 网站。这意味着当你打开这三个网站中的任何一个时,它们都只会在“Facebook 容器”中打开。因此,Facebook 将无法跟踪你在其他网站上的活动。
|
||||
|
||||
这是 [很少有人知道或使用的 Firefox 功能][2] 之一。
|
||||
|
||||
### 使用多账户容器
|
||||
|
||||
安装 Firefox 多账户容器是一个非常简单的过程,只需点击几下。
|
||||
|
||||
首先,前往 Firefox 附加组件网站上的 [扩展程序页面][3]。之后你唯一需要做的就是单击 `添加到 Firefox` 按钮。
|
||||
|
||||
![][4]
|
||||
|
||||
安装完成!现在我们可以实际使用一下这个新的扩展。
|
||||
|
||||
可能你还没有注意到,你的搜索栏右侧应该会出现一个新图标:
|
||||
|
||||
![][5]
|
||||
|
||||
这是你将用于与 Firefox 多帐户容器交互的图标。如果你单击该图标,你将看到一个小菜单:
|
||||
|
||||
![][6]
|
||||
|
||||
让我们使用这个扩展尝试一些例子,看看多账户容器是如何工作的。
|
||||
|
||||
#### 设置容器
|
||||
|
||||
首先,我们需要生成一个容器。点击多账户容器菜单中的 `<ruby>管理容器<rt>Manage Containers</rt></ruby>,然后点击 <ruby>新建容器<rt>New Container</rt></ruby>。
|
||||
|
||||
![][7]
|
||||
|
||||
![][8]
|
||||
|
||||
接着输入新容器的名称,选择颜色和图标。然后,点击 `OK` 保存新容器。
|
||||
|
||||
![][9]
|
||||
|
||||
大功告成!我们现在可以返回主菜单在新容器中打开一个新选项卡:
|
||||
|
||||
![][10]
|
||||
|
||||
你还会注意到新选项卡有一些样式,表示它正在容器内运行:
|
||||
|
||||
![][11]
|
||||
|
||||
#### 观察容器工作
|
||||
|
||||
现在让我们看看容器在使用时实际做了什么。
|
||||
|
||||
我们将在一个普通的浏览器选项卡中访问 Linode 管理网站,我已经在其中登录:
|
||||
|
||||
![][12]
|
||||
|
||||
现在让我们尝试在 Firefox 容器中打开相同的页面,此时我被重定向到 Linode 登录页面:
|
||||
|
||||
![][13]
|
||||
|
||||
为什么我被重定向了?因为现在我没有登录。这就是 Firefox 容器的乐趣之一:在一个浏览器会话中登录后,再进入一个容器,就好像你以前从未访问过该站点一样。
|
||||
|
||||
如果你在容器内完成对某个网站的登录,你从容器中访问该网站时将会保持登录状态。你还可以使用此功能从容器内登录网站,从而使该网站的所有数据远离你的正常浏览器数据。
|
||||
|
||||
注意:你的浏览器历史记录本身之类的内容仍会暴露给你的正常浏览器会话。容器功能只是提供了一种方法来分离本文中提到的登录帐户等内容。
|
||||
|
||||
### 总结
|
||||
|
||||
对于那些在乎自己的隐私,或者只是想真正尝试对其系统的安全性进行严格控制的人来说,多账户容器被证明是一个很棒的功能。
|
||||
|
||||
例如,你可以在容器内登录你的 Google 帐户,Google 永远不会知悉你在容器外的信息。
|
||||
个帐户的人来说,此扩展程序是一个不错的选择。有了它无需为你要使用的每样东西创建单独的浏览器帐户。
|
||||
|
||||
好了,这就是 Firefox 的多帐户容器的基本知识。
|
||||
|
||||
需要任何帮助,或者只是有一个一般的问题?请随时在评论区指出。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/firefox-containers/
|
||||
|
||||
作者:[Hunter Wittenborn][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[hanszhao80](https://github.com/hanszhao80)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/hunter/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/Firefox-container.png?resize=800%2C450&ssl=1
|
||||
[2]: https://itsfoss.com/firefox-useful-features/
|
||||
[3]: https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=search
|
||||
[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-install-page.png?resize=800%2C366&ssl=1
|
||||
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-searchbar-icon-1.png?resize=800%2C48&ssl=1
|
||||
[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-main-menu.png?resize=302%2C474&ssl=1
|
||||
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-manage-containers-1.png?resize=291%2C402&ssl=1
|
||||
[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-new-container.png?resize=290%2C399&ssl=1
|
||||
[9]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-new-container-itsfoss.png?resize=292%2C401&ssl=1
|
||||
[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-opening-new-container.png?resize=290%2C398&ssl=1
|
||||
[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-new-container-styling.png?resize=800%2C370&ssl=1
|
||||
[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-linode.png?resize=800%2C114&ssl=1
|
||||
[13]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-linode-login.png?resize=800%2C405&ssl=1
|
212
translated/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md
Normal file
212
translated/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md
Normal file
@ -0,0 +1,212 @@
|
||||
[#]: subject: "MAKE MORE with Inkscape – Ink/Stitch"
|
||||
[#]: via: "https://fedoramagazine.org/make-more-with-inkscape-ink-stitch/"
|
||||
[#]: author: "Sirko Kemter https://fedoramagazine.org/author/gnokii/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "aREversez"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
MAKE MORE with Inkscape – Ink/Stitch
|
||||
======
|
||||
|
||||
![MAKE more with Inkscape - Ink/Stitch][1]
|
||||
|
||||
Inkscape 是 Fedora 设计团队最喜爱最常用的软件,它的功能可不止于制作精美的矢量图形。矢量图形(也就是 SVG 文件)可以帮助实现更多操作,许多软件也支持这一格式。不过,Inkscape 还有其他功能有待发掘。[本系列][2] 第一篇文章介绍了如何 [使用 Inkscape 生成 GCode 文件][3];本篇文章将探索 Inkscape 的另一项拓展功能:用于绣花设计的 [Ink/Stitch][4]。
|
||||
|
||||
### 绣花 DIY
|
||||
|
||||
在过去数年里,DIY 风靡一时。可以说,这一现象始于廉价的 [3D 打印][5] 技术,以及后来的 [数控][6] 机床与激光切割机、激光雕刻机。这些设备都算不上非常昂贵。同时,绣花机等“传统”机器的价格也有下降。[家用绣花机现在只需 500 美元就能买到了][7]。
|
||||
|
||||
如果你不想买或者买不到绣花机,离你最近的 [创客空间][8] 一般也会有。即便是一台商用单头绣花机,价格也下降到了 5000 美元。对于购置绣花机这种投资来说,一般很快就能看到回报。
|
||||
|
||||
### 绣花设计软件
|
||||
|
||||
一些家用绣花机附有配套的绣花设计软件,不过大部分都只能在 Windows 系统上运行,就算该领域最常用的、独立于各绣花机制造商的软件 [Embird][9] 也是如此。不过,你也可以通过 Wine 来运行这些软件。
|
||||
|
||||
在 Linux 上,另一个办法就是使用 [Embroidermodde][10]。不过,该软件在 2014 年的募捐活动之后,就停止了开发活动。
|
||||
|
||||
到今天,只剩下一个办法:[Ink/Stitch][4]
|
||||
|
||||
![The logo of the Ink/Stitch project][11]
|
||||
|
||||
### 开源与绣花设计
|
||||
|
||||
绣花机价格高以及 Linux 用户少都怪不得制造商,毕竟为 Linux 开发应用的确不太值得。
|
||||
|
||||
#### 绣花文件格式问题
|
||||
|
||||
绣花机所用文件格式大量涌现,甚至还有一些制造商为自家机器定制了文件格式。在某些情况下,即便是一家制造商,可能也会使用多种文件格式。
|
||||
|
||||
* **.10o** – 丰田绣花机
|
||||
* **.100** – 丰田绣花机
|
||||
* **.CSD** – Poem,Huskygram 和胜家家用绣花缝纫机
|
||||
* **.DSB** – 百灵达绣花机
|
||||
* **.JEF** – 车乐美 MemoryCraft 10000
|
||||
* **.SEW** – 车乐美 MemoryCraft 5700, 8000, and 9000
|
||||
* **.PES** – 兄弟和 Babylock 家用绣花缝纫机
|
||||
* **.PEC** – 兄弟和 Babylock 家用绣花缝纫机
|
||||
* **.HUS** – 好时运家用绣花缝纫机
|
||||
* **.PCS** – 百福家用绣花缝纫机
|
||||
* **.VIP** – 百福旧格式 & 好时运格式
|
||||
* **.VP3** – 百福家用缝纫机新格式
|
||||
* **.DST** – 田岛商用绣花缝纫机
|
||||
* **.EXP** – 美高商用绣花缝纫机
|
||||
* **.XXX** – Compucon 和 胜家家用绣花缝纫机
|
||||
* **.ZSK** – 美国市场的 ZSK 绣花机
|
||||
|
||||
|
||||
|
||||
关于绣花机会用到的文件格式,上面列出来的只是九牛一毛,可 [在此][14] 查看全部格式。如果你想进一步了解这些文件格式,可点击 [此处][15] 获取更多信息。
|
||||
|
||||
#### Ink/Stitch 文件格式
|
||||
|
||||
Ink/Stitch 最初使用的是 [libembroidery][12] 库,现在则使用 [pyembroidery][13] 库。在 pyembroidery 库的支持下,Ink/Stitch 目前可以读取以下格式:100, 10o, BRO, DAT, DSB, DST, DSZ, EMD, EXP, EXY, FXY, GT, INB, JEF, JPX, KSM, MAX, MIT, NEW, PCD, PCM, PCQ, PCS, PEC, PES, PHB, PHC, SEW, SHV, STC, STX, TAP, TBF, U01, VP3, XXX, ZXY 以及 TXT(内容为 GCode 代码)。
|
||||
|
||||
不过,Ink/Stitch 支持的储存格式则比较少:DST, EXP, JEF, PEC, PES, U01, VP3 and of course SVG, CSV 以及 TXT(内容为 GCode 代码)。
|
||||
|
||||
除了文件格式,绣花缝纫软件还需解决其它一些问题。
|
||||
|
||||
支持繁杂多样的线迹类型是一个难题,绘制工具与缝制工具的搭配使用又是另一个难题。不过,为什么非要从无到有搞出一套新应用?为什么不依赖现有的矢量软件?这样一来,开发者只需要在其基础上增添绣花拓展功能即可。后者就是 [Ink/Stitch 项目][4] 过去四年来的设计理念。
|
||||
|
||||
### 安装 Ink/Stitch
|
||||
|
||||
Ink/Stitch 是 [Inkscape 的一个拓展功能][16]。不过,由于 Inkscape 下载安装拓展的新功能还处于测试阶段,在其提供的拓展功能中可能无法找到 Ink/Stitch。因此,你需要自行手动 [下载][17] 该拓展。下载后,将压缩包解压到 Inkscape 拓展所在路径,默认路径为 _~/.config/Inkscape/extensions_(或者放置在系统全局路径:_/usr/share/inkscape/extensions_)。若你改变了默认路径,则需检查 Inkscape 设置选项,找到拓展文件的存放位置。
|
||||
|
||||
### 自定义:为 Ink/Stitch 安装插件
|
||||
|
||||
Ink/Stitch 提供了为 Inkscape 安装插件的功能,用户需首先执行这一功能。
|
||||
|
||||
依次点击如下选项:_<ruby>扩展<rt>Extensions</rt></ruby> > Ink/Stitch > <ruby>线条颜色管理<rt>Thread Color Management</rt></ruby> > <ruby>为 Inkscape 安装线条调色板<rt>Install thread color palettes for Inkscape</rt></ruby>_,之后等待片刻。
|
||||
|
||||
虽然这一过程不会出现进度条之类的提示,不过也无需着急。
|
||||
|
||||
该功能执行后,将会安装来自不同纱线制造商的 70 套色板,以及一套符号库。
|
||||
|
||||
![Inkscape with the swatches dialogue open, which shows the Madeira Rayon color palette][18]
|
||||
|
||||
如果你使用的 Ink/Stitch 是从 Github 下载的 2.0.0 版本,那么下载下来的 ZIP 文件里就包括了色板文件。你只需将其解压到正确的路径:_~/.config/inkscape/palettes/_。如果你需要环形模板,可以点击 [此处][19] 下载,并将其保存到 _~/.config/inkscape/templates_ 目录下.
|
||||
|
||||
重新启动 Inkscape,可在 _<ruby>文件<rt>File</rt></ruby> > <ruby>由模板新建<rt>New From Template</rt></ruby>_ 下找到该模板。
|
||||
|
||||
### Ink/Stitch 绣字
|
||||
|
||||
到目前为止,绣花设计最简单也最常用的方法就是使用 Ink/Stitch 的 _<ruby>文字缝制<rt>Lettering</rt></ruby>_ 功能。该功能位于 _<ruby>拓展<rt>Extensions</rt></ruby> > Ink/Stitch > <ruby>文字缝制<rt>Lettering</rt></ruby>_。绣花文字缝制可不是一件简单事儿,它其实就是所谓的缎面绣字,需要做好特殊的文字设置。
|
||||
|
||||
![Inkscape with a “Chopin” glyph for satin stitching defined for the Lettering function][20]
|
||||
|
||||
你可以将路径转换为缎面绣,但是这种方法比使用文字缝制功能还要繁琐许多。多亏了社区的活跃,2021 年 5 月份发布的 Ink/Stitch 2.0 版本预置了更多的字体。2.0 版本还增加了 _<ruby>拓展<rt>Extensions</rt></ruby> > Ink/Stitch > <ruby>字体管理<rt>Font Management</rt></ruby>_ 功能,让用户更方便地管理这些字体。
|
||||
|
||||
此外,还有制作字体的功能,但是你需要了解如何使用 Inkscape 设计字体,可在 [此处][21] 浏览相关英文教程。这里只给出大概的介绍:首先创建一个 SVG 字体,接着将其储存在 JSON 文件中,这样便可以在 Ink/Stitch 字体管理功能中使用。
|
||||
|
||||
![On the left side the Lettering dialogue and on the right the preview of this settings][22]
|
||||
|
||||
该功能将打开一个对话窗口,你可以把文字输进去,调整字体及其大小,然后即可将输入的文字渲染出来。
|
||||
|
||||
### 绣制区域、路径等对象
|
||||
|
||||
Ink/Stitch 最容易实现的就是绣制区域或者路径。你需要做的只是画出路径。如果你使用的是形状,那么你需要将其转换成路径,然后执行如下操作:_<ruby>拓展<rt>Extensions</rt></ruby> > Ink/Stitch > <ruby>填充工具<rt>Fill Tools</rt></ruby> > <ruby>分离填充对象<rt>Break Apart Fill Objects…<ruby><rt>_,将路径分割成若干部分。
|
||||
|
||||
虽然 Inkscape 也有 _<ruby>路径<rt>Path</rt></ruby> > <ruby>分离<rt>Break apart</rt></ruby>_ 功能,但是在这种情况下并不可行。
|
||||
|
||||
接下来,运行 Ink/Stitch 内置模拟器:_<ruby>拓展<rt>Extensions</rt></ruby> > Ink/Stitch > <ruby>可视化并导出<rt>Visualise and Export</rt></ruby> > <ruby>模拟器/实际预览<rt>Simulator/Realistic Preview</rt></ruby>_.
|
||||
|
||||
![The new Fedora logo as Stitch Plan Preview][23]
|
||||
|
||||
注意,模拟器运行时需要占用大量的系统资源,而且启动时间也比较长。其实,以下功能操作起来会更加简便:_<ruby>拓展<rt>Extensions</rt></ruby> > Ink/Stitch > <ruby>可视化并导出<rt>Visualise and Export</rt></ruby> > <ruby>线迹计划预览<rt>Stitch Plan Preview</rt></ruby>_。该功能会在文件外部对线条进行渲染。
|
||||
|
||||
![Nicubunu’s Fedora hat icon as embroidery. The angles for the stitches of the head part and the brim are different so that it looks more realistic. The outline is done in Satin stitching][24]
|
||||
|
||||
### 简单的缎面及缎面绣
|
||||
|
||||
Ink/Stitch 会使用连续的线条(非虚线)将每个笔画转换成之字形或简单的缎面。依照预先设置好的描边宽度,沿着路径绣出线迹。只要路径上没有过多的曲线,使用这一方法就没问题。
|
||||
|
||||
![Parameter setting dialogue and on the right the Fedora logo shape embroidered as Zig-Zag line][25]
|
||||
|
||||
这个方法虽然简单,但绝不是最好的选择。最好的选择是使用缎面工具,该功能可以在 _<ruby>拓展<rt>Extensions</rt></ruby> > <ruby>缎面工具<rt>Satin Tools</rt></ruby>_ 找到。其中,转换功能又是重中之重,它可以将路径转换为缎面笔画。
|
||||
|
||||
![Fedora logo shape as Satin Line embroidery][26]
|
||||
|
||||
通过 _<ruby>拓展<rt>Extensions</rt></ruby> > <ruby>缎面工具<rt>Satin Tools</rt></ruby> > <ruby>旋转缎纹路径<rt>Flip Satin Column Rails</rt></ruby>_,你还可以改变线迹的方向。这样做可以凸显缎面绣的立体感,典型的例子就是泡芙刺绣(一种非常具有立体感的刺绣)。支持这种功能的机器还可以为绣花时产生的多余的连线线迹标记出修剪记号。这些记号正是从 Ink/Stitch 自身符号库里安装得到的符号。
|
||||
|
||||
### Ink/Stitch 线迹库
|
||||
|
||||
线迹库包括了 Ink/Stitch 可以创建的线迹类型。在前文,填充式线迹和之字形/缎纹线迹已经介绍过了,不过其他还有很多。
|
||||
|
||||
* **平针**:平针用于边缘装饰,沿直线或曲线缝制出一排短小的线迹,由此组成的一条条虚线就是平针。虚线的尺寸可大可小。
|
||||
|
||||
|
||||
|
||||
![A running stitch – each dashed line will be converted in such one][27]
|
||||
|
||||
* **豆针**:豆针可用于边缘装饰或添加设计细节。使用平针来回缝制就是豆针,这种缝法会增加线迹的厚度。
|
||||
|
||||
|
||||
|
||||
![Bean Stitches – creating a thicker line][28]
|
||||
|
||||
* **手工针**:在该模式下,Ink/Stitch 会将路径的每个节点当作穿针点;这些节点也正是针穿入的位置。
|
||||
|
||||
|
||||
|
||||
![In manual mode – each node will be the needle penetration point][29]
|
||||
|
||||
* **E 字针**:E 字针是一种简单但十分好用的绷缝线迹,用于贴花织物。这种线迹多用于婴儿装,因为婴儿的皮肤比较敏感。
|
||||
|
||||
|
||||
|
||||
![E-Stitch mostly used for applications on baby cloths, soft but strong connection][30]
|
||||
|
||||
### 绣花用线列表
|
||||
|
||||
有些绣花机,尤其是商用的绣花机,根据设计的需要,可以提前适配不同的针线。必要时,这类机器会自动切换使用合适的针线。有些绣花文件格式支持这一功能,但有些并不支持。Ink/Stitch 可以将用户设置好的线条列表应用到绣花设计中。
|
||||
|
||||
如果你想在现有的设计上导入线条列表,可执行如下操作:_<ruby>拓展<rt>Extensions</rt></ruby> > Ink/Stitch > <ruby>导入线条列表<rt>Import Threadlist</rt></ruby>_。同样的,线条列表也可以导出:_<ruby>另存为 zip 文件,打包多种不同的文件格式<rt>Save As different file formats as *.zip</rt></ruby>_。当然,也可以将其打印出来:_<ruby>拓展<rt>Extensions</rt></ruby> > Ink/Stitch > <ruby>可视化并导出<rt>Visualise and Export</rt></ruby> > <ruby>打印 PDF<rt>Print PDF</rt></ruby>_。
|
||||
|
||||
### 结语
|
||||
|
||||
为绣花设计编写软件可不是一件简单的事儿,软件需要支持很多功能,还要应对不同文件格式(有些属于闭源文件格式)带来的难题。Ink/Stitch 已经做得很好了,尽力打造出了一款功能多样的绣花工具,让用户能够进行基础的绣花设计。当然,它也不是完美的,有些功能还需要完善。但是,Ink/Stitch 绝对是一款十分优秀的工具,我也希望它能越来越好。绣花是个不错的兴趣爱好,有了 Ink/Stitch,Fedora Linux 用户便可开启天马行空的设计之门。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://fedoramagazine.org/make-more-with-inkscape-ink-stitch/
|
||||
|
||||
作者:[Sirko Kemter][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[aREversez](https://github.com/aREversez)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://fedoramagazine.org/author/gnokii/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://fedoramagazine.org/wp-content/uploads/2021/08/drawing2-816x345.png
|
||||
[2]: https://fedoramagazine.org/series/make-more/
|
||||
[3]: https://fedoramagazine.org/make-more-with-inkscape-g-code-tools/
|
||||
[4]: https://inkstitch.org/
|
||||
[5]: https://fedoramagazine.org/3d-printing-in-fedora-from-an-idea-to-the-thing/
|
||||
[6]: https://en.wikipedia.org/wiki/Numerical_control
|
||||
[7]: https://www.amazon.com/-/de/dp/B07VZ2YBLL/ref=sr_1_11?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=1MFJJWXMKQD6R&dchild=1&keywords=home+embroidery+machine&qid=1628388092&rnid=2941120011&s=arts-crafts&sprefix=home+embroider+%2Caps%2C-1&sr=1-11
|
||||
[8]: https://www.fablabs.io/labs/map
|
||||
[9]: https://www.embird.net/
|
||||
[10]: https://embroidermodder.org/
|
||||
[11]: https://fedoramagazine.org/wp-content/uploads/2021/08/inkstitch_logo.png
|
||||
[12]: https://github.com/Embroidermodder/libembroidery
|
||||
[13]: https://github.com/inkstitch/pyembroidery
|
||||
[14]: http://www.needlework.ru/page/embroidery.htm
|
||||
[15]: http://edutechwiki.unige.ch/en/Embroidery_format
|
||||
[16]: https://inkscape.org/~wwderw/%E2%98%85inkstitch-embroidery-extension
|
||||
[17]: https://github.com/inkstitch/inkstitch/releases/tag/v2.0.0
|
||||
[18]: https://fedoramagazine.org/wp-content/uploads/2021/08/swatches-1024x556.png
|
||||
[19]: https://inkstitch.org/assets/images/tutorials/templates/hoop-template.svg
|
||||
[20]: https://fedoramagazine.org/wp-content/uploads/2021/08/satinfont-1024x556.png
|
||||
[21]: https://inkstitch.org/tutorials/font-creation/
|
||||
[22]: https://fedoramagazine.org/wp-content/uploads/2021/08/lettering-1024x523.png
|
||||
[23]: https://fedoramagazine.org/wp-content/uploads/2021/08/stitch-preview-1024x556.png
|
||||
[24]: https://fedoramagazine.org/wp-content/uploads/2021/08/nicu-stitch.gif
|
||||
[25]: https://fedoramagazine.org/wp-content/uploads/2021/08/zigzag-1024x463.png
|
||||
[26]: https://fedoramagazine.org/wp-content/uploads/2021/08/satin.png
|
||||
[27]: https://fedoramagazine.org/wp-content/uploads/2021/08/running-stitch-detail.jpg
|
||||
[28]: https://fedoramagazine.org/wp-content/uploads/2021/08/bean-stitch-detail.jpg
|
||||
[29]: https://fedoramagazine.org/wp-content/uploads/2021/08/manual-stitch-detail.png
|
||||
[30]: https://fedoramagazine.org/wp-content/uploads/2021/08/e-stitch-detail.jpg
|
@ -0,0 +1,181 @@
|
||||
[#]: subject: "How To Automatically Update Running Docker Containers Using Watchtower"
|
||||
[#]: via: "https://ostechnix.com/automatically-update-running-docker-containers/"
|
||||
[#]: author: "sk https://ostechnix.com/author/sk/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "Donkey"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
如何使用 Watchtower 自动更新正在运行的 Docker 容器
|
||||
======
|
||||
使用 Watchtower 自动更新 Docker 容器基础镜像
|
||||
|
||||
对开发运维人员来说,保持 Docker 容器为最新版本是重要工作之一。手动更新 Docker 容器是一项耗时的工作。这篇文章解释了 **Watchtower** 是什么,如何安装它,以及在 Linux 中如何 **使用 Watchtower 自动更新正在运行的 Docker 容器** 。
|
||||
|
||||
### Watchtower 是什么?
|
||||
|
||||
**Watchtower** 是一款免费、开源的应用,用来监控运行中的 Docker 容器,并且当它发现基础镜像被更改后,可以自动的更新容器。
|
||||
|
||||
若 watchtower 发现一个运行中的容器需要更新,它会以发送 SIGTERM 信号的方式,优雅的结束运行中容器的运行。
|
||||
|
||||
它会下载新镜像,然后以最初部署时使用的方式,重启容器。所有文件会在后台自动下载,因此不需要用户的介入。
|
||||
|
||||
在这份指南中,我们将会明白如何在类 Unix 系统中使用 Watchtower 自动更新正在运行的 Docker 容器。
|
||||
|
||||
我已经在 CentOS 和 Ubuntu 中测试了这份指南,所有的 Linux 发行版中操作过程都一样。
|
||||
|
||||
### 在 Linux 中安装 Watchtower
|
||||
|
||||
可以通过 Docker 镜像的方式下载 Watchtower 。因此,部署它小事一桩。在你的 Linux 中安装 Docker 镜像,然后运行 Watchtower 立即开始监控 Docker 容器。
|
||||
|
||||
参考下方指导在基于 PRM 和 DEB 包管理系统中安装 Docker
|
||||
|
||||
* [如何在 CentOS 中安装 Docker][1]
|
||||
* [如何在 Ubuntu 中安装 Docker][2]
|
||||
* [适用于 Linux 的 Docker 桌面初学者手册][3]
|
||||
|
||||
|
||||
安装 Docker 后,你可以使用以下命令以 **root** 用户身份部署 Watchtower 容器:
|
||||
|
||||
```
|
||||
# docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower
|
||||
```
|
||||
|
||||
如果你已经安装了 Docker 桌面版,以普通用户运行 Watchtower 容器。
|
||||
|
||||
```
|
||||
$ docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower
|
||||
```
|
||||
|
||||
该命令会拉取最新版的 watchtower 镜像,并运行 watchtower 容器。
|
||||
|
||||
**输出样例:**
|
||||
|
||||
```
|
||||
Unable to find image 'containrrr/watchtower:latest' locally
|
||||
latest: Pulling from containrrr/watchtower
|
||||
1045b2f97fda: Pull complete
|
||||
35a104a262d3: Pull complete
|
||||
1a0671483169: Pull complete
|
||||
Digest: sha256:bbf9794a691b59ed2ed3089fec53844f14ada249ee5e372ff0e595b73f4e9ab3
|
||||
Status: Downloaded newer image for containrrr/watchtower:latest
|
||||
91c104ef0e9896e8cd5ff30d9f13e728dbfad66443830ec2ac85dde6d7d37564
|
||||
```
|
||||
|
||||
![Run Watchtower Docker Container][4]
|
||||
|
||||
### 使用 Watchtower 自动更新 Docker 容器
|
||||
|
||||
你系统上,Watchtower 正在和其他容器一起运行。你可以使用一下命令查看运行中的 Docker 容器列表:
|
||||
|
||||
```
|
||||
$ docker ps
|
||||
```
|
||||
|
||||
**输出样例:**
|
||||
|
||||
```
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
91c104ef0e98 containrrr/watchtower "/watchtower" 14 minutes ago Up 14 minutes 8080/tcp watchtower
|
||||
f90b462b0712 bitnami/wordpress-nginx:6 "/opt/bitnami/script…" 19 minutes ago Up 19 minutes 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp ostechnix-wordpress-1
|
||||
```
|
||||
|
||||
正如上方输出所示,watchtower 容器正在和名为 **"ostechnix-wordpress-1"** 的容器一起运行。从现在开始,watchtower 会每隔几分钟会检查该容器。
|
||||
|
||||
如果 watchtower 发现该容器的基础镜像的任何变化,它会优雅的关闭 "ostechnix-wordpress-1" 容器,然后使用与最初启动它时使用的相同方式,启动新的镜像。
|
||||
|
||||
类似的,它会自动地每隔几分钟检查所有的运行中容器,并自动更新它们。
|
||||
|
||||
### Watchtower 如何更新多连接的容器?
|
||||
|
||||
在监视多连接容器时,Watchtower 十分智能。
|
||||
|
||||
假设我们现在运行两个容器。
|
||||
|
||||
```
|
||||
$ docker ps
|
||||
```
|
||||
|
||||
**输出样例:**
|
||||
|
||||
```
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
91c104ef0e98 containrrr/watchtower "/watchtower" 14 minutes ago Up 14 minutes 8080/tcp watchtower
|
||||
f90b462b0712 bitnami/wordpress-nginx:6 "/opt/bitnami/script…" 19 minutes ago Up 19 minutes 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp ostechnix-wordpress-1
|
||||
a895f082438a bitnami/mariadb:10.6 "/opt/bitnami/script…" 20 minutes ago Up 19 minutes 3306/tcp ostechnix-mariadb-1
|
||||
```
|
||||
|
||||
![View Running Docker Containers][5]
|
||||
|
||||
正如你看到的,我们正在运行 "ostechnix-wordpress-1" 和 "ostechnix-mariadb-1" 这两个容器。Mariadb 容器链接到 wordpress 容器。
|
||||
|
||||
如果 Watchtower 发现 "wordpress" 容器有个新版本,它会先关闭与之相连接的 "mariadb" 容器 ,然后才会关闭 "wordpress" 容器。
|
||||
|
||||
更新 wordpress 容器后,Watchtower 会以正确的顺序,且与最初启动它们时使用的相同方式,重启这两个容器,以便应用程序正确恢复。在我们的例子中,首先启动的是 mariadb 容器,然后是 wordpress 容器,以确保连接能够继续运行。
|
||||
|
||||
### 监控特定容器
|
||||
|
||||
默认情况下,Watchtower 将监控在它所指向的 Docker 守护进程中运行的所有 Docker 容器。
|
||||
|
||||
不过,你可以像下面这样,通过指定容器名称限制 watchtower 监视特定的 Docker 容器。
|
||||
|
||||
```
|
||||
$ docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower ostechnix-wordpress-1
|
||||
```
|
||||
|
||||
在上方的例子中,watchtower 会忽略其他容器,只监视名为 "ostechnix-wordpress-1" 的容器更新情况。
|
||||
|
||||
如果你不指定任何参数,watchtower 会照常监视所有运行中的 Docker 容器。
|
||||
|
||||
### 发送提示 Sending Notifications
|
||||
|
||||
或许你想收到容器更新的通知。你可以通过电子邮件、Slack 、MSTeams 以及 Gotify 发送通知。
|
||||
|
||||
下面这个例子展示了如何通过电子邮件发送通知。假设你已经设置了 SMTP 服务器。
|
||||
|
||||
```
|
||||
docker run -d \
|
||||
--name watchtower \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-e WATCHTOWER_NOTIFICATIONS=email \
|
||||
-e WATCHTOWER_NOTIFICATION_EMAIL_FROM=fromaddress@gmail.com \
|
||||
-e WATCHTOWER_NOTIFICATION_EMAIL_TO=toaddress@gmail.com \
|
||||
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com \
|
||||
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 \
|
||||
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=fromaddress@gmail.com \
|
||||
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=app_password \
|
||||
-e WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2 \
|
||||
containrrr/watchtower
|
||||
```
|
||||
|
||||
参考下方 Watchtower Github 仓库和 Watchtower 官方主页获取更多信息:
|
||||
|
||||
**资料**
|
||||
|
||||
* [Watchtower GitHub][6]
|
||||
* [Watchtower 主页][7]
|
||||
|
||||
> **推荐下载** — [免费电子书: "Docker Containerization Cookbook"][8]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://ostechnix.com/automatically-update-running-docker-containers/
|
||||
|
||||
作者:[sk][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[Donkey](https://github.com/Donkey-Hao)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://ostechnix.com/author/sk/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://ostechnix.com/install-docker-centos/
|
||||
[2]: https://ostechnix.com/install-docker-ubuntu/
|
||||
[3]: https://ostechnix.com/docker-desktop-for-linux/
|
||||
[4]: https://ostechnix.com/wp-content/uploads/2022/07/Run-Watchtower-Docker-Container.png
|
||||
[5]: https://ostechnix.com/wp-content/uploads/2022/07/View-Running-Docker-Containers.png
|
||||
[6]: https://github.com/v2tec/watchtower
|
||||
[7]: https://containrrr.dev/watchtower/
|
||||
[8]: https://ostechnix.tradepub.com/free/w_java39/prgm.cgi
|
@ -0,0 +1,102 @@
|
||||
[#]: subject: "Delete the local reference to a remote branch in Git"
|
||||
[#]: via: "https://opensource.com/article/22/8/delete-local-reference-remote-branch-git"
|
||||
[#]: author: "Agil Antony https://opensource.com/users/agantony"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "Yufei-Yan"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
删除 Git 上远程分支的本地引用
|
||||
======
|
||||
|
||||
遵循几个简单的步骤来保持 Git 仓库的整洁
|
||||
|
||||
![A diagram of a branching process][1]
|
||||
|
||||
Image by: Opensource.com
|
||||
|
||||
图片来源:Opensource.com
|
||||
|
||||
在合并一个 GibLab 或 GitHub 的 pull request 后,通常需要从远程仓库中删掉这个主题分支来保持仓库的整洁。然而,这只会删掉远程仓库的主题分支。本地 Git 仓库也会从例行清理中收益。
|
||||
|
||||
要同步本地仓库和远程仓库的信息,可以执行 `git prune` 命令来删除本地仓库中远程分支的本地引用。
|
||||
|
||||
按照以下三个简单的步骤:
|
||||
|
||||
### 1. 检出仓库中的核心分支(比如 main 或者 master)
|
||||
|
||||
```
|
||||
$ git checkout <central_branch_name>
|
||||
```
|
||||
|
||||
### 2. 列出所有远程和本地分支
|
||||
|
||||
```
|
||||
$ git branch -a
|
||||
```
|
||||
|
||||
示例输出:
|
||||
|
||||
```
|
||||
4.10.z
|
||||
* master
|
||||
remotes/mydata/4.9-stage
|
||||
remotes/mydata/4.9.z
|
||||
remotes/mydata/test-branch
|
||||
```
|
||||
|
||||
在这个例子中,`test-branch` 是从远程仓库中删除的主题分支的名字。
|
||||
|
||||
### 3. 删除远程分支的本地引用
|
||||
|
||||
首先,列出所有可以从本地仓库中删除的分支:
|
||||
|
||||
```
|
||||
$ git remote prune origin --dry-run
|
||||
```
|
||||
|
||||
示例输出:
|
||||
|
||||
```
|
||||
Pruning origin
|
||||
URL: git@example.com:myorg/mydata-4.10.git
|
||||
* [would prune] origin/test-branch
|
||||
```
|
||||
|
||||
然后,删除远程分支的本地引用:
|
||||
|
||||
```
|
||||
$ git remote prune origin
|
||||
```
|
||||
|
||||
示例输出:
|
||||
|
||||
```
|
||||
Pruning origin
|
||||
URL: git@example.com:myorg/mydata-4.10.git
|
||||
* [pruned] origin/test-branch
|
||||
```
|
||||
|
||||
就是这样!
|
||||
|
||||
### 维护 Git 仓库
|
||||
|
||||
保持 Git 仓库的整洁,一开始似乎并不紧急,但是随着仓库规模的增长,删除不必要的数据就变得更为重要。不要因为需要从无用的数据中挣脱出来而降低你的节奏。
|
||||
|
||||
经常删除远程分支的本地引用,对于维护一个可用的 Git 仓库是一个非常好的习惯。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/8/delete-local-reference-remote-branch-git
|
||||
|
||||
作者:[Agil Antony][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[https://github.com/Yufei-Yan](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/agantony
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/sites/default/files/lead-images/freesoftwareway_law3.png
|
Loading…
Reference in New Issue
Block a user