mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
Merge branch 'master' of https://github.com/LCTT/TranslateProject
This commit is contained in:
commit
16e1635068
@ -0,0 +1,226 @@
|
||||
[#]: subject: "Learn Tcl/Tk and Wish with this simple game"
|
||||
[#]: via: "https://opensource.com/article/23/4/learn-tcltk-wish-simple-game"
|
||||
[#]: author: "James Farrell https://opensource.com/users/jamesf"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "ChatGPT"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16170-1.html"
|
||||
|
||||
通过这个简单的游戏学习 Tcl/Tk 和 Wish
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> 以下是一个简单的编程项目,能够帮助你开始学习 Tcl/Tk。
|
||||
|
||||
探索 Tcl/Tk 的基础构造,包括用户输入、输出、变量、条件评估、简单函数和基础事件驱动编程。
|
||||
|
||||
我写这篇文章的初衷源于我想更深入地利用基于 Tcl 的 Expect。这让我写下了以下两篇文章:[通过编写一个简单的游戏学习 Tcl][1] 和 [通过编写一个简单的游戏学习 Expect][2]。
|
||||
|
||||
我进行了一些 [Ansible][3] 自动化工作,逐渐积累了一些本地脚本。有些脚本我频繁使用,以至于以下循环操作变得有些烦人:
|
||||
|
||||
- 打开终端
|
||||
- 使用 `cd` 命令跳转至合适的目录
|
||||
- 输入一条带有若干选项的长命令启动所需的自动化流程
|
||||
|
||||
我日常使用的是 macOS。实际上我更希望有一个菜单项或者一个图标,能够弹出一个简单的界面接受参数并执行我需要的操作,[这就像在 Linux 的 KDE 中一样][4]。
|
||||
|
||||
经典的 Tcl 类书籍都包含了关于流行的 Tk 扩展的文档。既然我已经深入研究了这个主题,我尝试着对其(即 `wish`)进行编程。
|
||||
|
||||
虽然我并非一名 GUI 或者前端开发者,但我发现 Tcl/Tk 脚本编写的方式相当直接易懂。我很高兴能重新审视这个 UNIX 历史的古老且稳定的部分,这种技术在现代平台上依然有用且可用。
|
||||
|
||||
### 安装 Tcl/Tk
|
||||
|
||||
对于 Linux 系统,你可以按照下面的方式安装:
|
||||
|
||||
```
|
||||
$ sudo dnf install tcl
|
||||
$ which wish
|
||||
/bin/wish
|
||||
```
|
||||
|
||||
而在 macOS 上,你可以通过 [Homebrew][5] 来安装最新版的 Tcl/Tk:
|
||||
|
||||
```
|
||||
$ brew install tcl-tk
|
||||
$ which wish
|
||||
/usr/local/bin/wish
|
||||
```
|
||||
|
||||
### 编程理念
|
||||
|
||||
许多编写游戏的教程都会介绍到典型的编程语言结构,如循环、条件判断、变量、函数和过程等等。
|
||||
|
||||
在此篇文章中,我想要介绍的是 [事件驱动编程][6]。当你的程序使用事件驱动编程,它会进入一个特殊的内置循环,等待特定的事件发生。当这个特定的事件发生时,相应的代码就会被触发,产生预期的结果。
|
||||
|
||||
这些事件可以包括键盘输入、鼠标移动、点击按钮、定时器触发,甚至是任何你的电脑硬件能够识别的事件(可能来自特殊的设备)。你的程序中的代码决定了用户看到了什么,以及程序需要监听什么输入,当这些输入被接收后程序会怎么做,然后进入事件循环等待输入。
|
||||
|
||||
这篇文章的理念并没有脱离我之前的 Tcl 文章太远。这里最大的不同在于用 GUI 设置和用于处理用户输入的事件循环替代了循环结构。其他的不同则是 GUI 开发需要采取的各种方式来制作一个可用的用户界面。在采用 Tk GUI 开发的时候,你需要了解两个基础的概念:<ruby>部件<rt>widget</rt></ruby>和<ruby>几何管理器<rt>geometry manager</rt></ruby>。
|
||||
|
||||
部件是构成可视化元素的 UI 元素,通过这些元素用户可以与程序进行交互。这其中包括了按钮、文本区域、标签和文本输入框。部件还包括了一些选项选择,如菜单、复选框、单选按钮等。最后,部件也包括了其他的可视化元素,如边框和线性分隔符。
|
||||
|
||||
几何管理器在放置部件在显示窗口中的位置上扮演着至关重要的角色。有一些不同的几何管理器可以供你使用。在这篇文章中,我主要使用了 `grid` 几何来让部件在整齐的行中进行布局。我会在这篇文章的结尾地方解释一些几何管理器的不同之处。
|
||||
|
||||
### 用 wish 进行猜数字游戏
|
||||
|
||||
这个示例游戏代码与我其他文章中的示例有所不同,我将它分解为若干部分以方便解释。
|
||||
|
||||
首先创建一个基本的可执行脚本 `numgame.wish` :
|
||||
|
||||
```
|
||||
$ touch numgame.wish
|
||||
$ chmod 755 numgame.wish
|
||||
```
|
||||
|
||||
使用你喜欢的文本编辑器打开此文件,输入下列代码的第一部分:
|
||||
|
||||
```
|
||||
#!/usr/bin/env wish
|
||||
set LOW 1
|
||||
set HIGH 100
|
||||
set STATUS ""
|
||||
set GUESS ""
|
||||
set num [expr round(rand()*100)]
|
||||
```
|
||||
|
||||
第一行定义了该脚本将通过 `wish` 执行。接下来,创建了几个全局变量。这里我使用全部大写字母定义全局变量,这些变量将绑定到跟踪这些值的窗口小部件(`LOW`、`HIGH`等等)。
|
||||
|
||||
全局变量 `num` 是游戏玩家要猜测的随机数值,这个值是通过 Tcl 的命令执行得到并保存到变量中的:
|
||||
|
||||
```
|
||||
proc Validate {var} {
|
||||
if { [string is integer $var] } {
|
||||
return 1
|
||||
}
|
||||
return 0
|
||||
}
|
||||
```
|
||||
|
||||
这是一个验证用户输入的特殊函数,它只接受整数并拒绝其他所有类型的输入:
|
||||
|
||||
```
|
||||
proc check_guess {guess num} {
|
||||
global STATUS LOW HIGH GUESS
|
||||
|
||||
if { $guess < $LOW } {
|
||||
set STATUS "What?"
|
||||
} elseif { $guess > $HIGH } {
|
||||
set STATUS "Huh?"
|
||||
} elseif { $guess < $num } {
|
||||
set STATUS "Too low!"
|
||||
set LOW $guess
|
||||
} elseif { $guess > $num } {
|
||||
set STATUS "Too high!"
|
||||
set HIGH $guess
|
||||
} else {
|
||||
set LOW $guess
|
||||
set HIGH $guess
|
||||
set STATUS "That's Right!"
|
||||
destroy .guess .entry
|
||||
bind all <Return> {.quit invoke}
|
||||
}
|
||||
|
||||
set GUESS ""
|
||||
}
|
||||
```
|
||||
|
||||
这是主要的猜数逻辑循环。`global` 语句让我们能够修改在文件开头创建的全局变量(关于此主题后面将会有更多解释)。这个条件判断寻找入力范围在 1 至 100 之外以及已经被用户猜过的值。有效的猜测和随机值进行比较。`LOW` 和 `HIGH` 的猜测会被追踪,作为 UI 中的全局变量进行报告。在每一步,全局 `STATUS` 变量都会被更新,这个状态信息会自动在 UI 中显示。
|
||||
|
||||
对于正确的猜测,`destroy` 语句会移除 “Guess” 按钮以及输入窗口,并重新绑定回车键,以激活 “Quit” 按钮。
|
||||
|
||||
最后的语句 `set GUESS ""` 用于在下一个猜测之前清空输入窗口。
|
||||
|
||||
```
|
||||
label .inst -text "Enter a number between: "
|
||||
label .low -textvariable LOW
|
||||
label .dash -text "-"
|
||||
label .high -textvariable HIGH
|
||||
label .status -text "Status:"
|
||||
label .result -textvariable STATUS
|
||||
button .guess -text "Guess" -command { check_guess $GUESS $num }
|
||||
entry .entry -width 3 -relief sunken -bd 2 -textvariable GUESS -validate all \
|
||||
-validatecommand { Validate %P }
|
||||
focus .entry
|
||||
button .quit -text "Quit" -command { exit }
|
||||
bind all <Return> {.guess invoke}
|
||||
```
|
||||
|
||||
这是设置用户界面的部分。前六个标签语句在你的 UI 上创建了不同的文本展示元素,`-textvariable` 选项监控给定的变量,并自动更新标签的值,这展示了全局变量 `LOW`、`HIGH`、`STATUS` 的绑定。
|
||||
|
||||
`button` 行创建了 “Guess” 和 “Quit” 按钮, `-command` 选项设定了当按钮被按下时要执行的操作。按下 “Guess” 按钮执行了上面的 `check_guess` 函数以检查用户输入的值。
|
||||
|
||||
`entry` 部件更有趣。它创建了一个三字符宽的输入框,并将输入绑定到 `GUESS` 全局变量。它还通过 `-validatecommand` 选项设置了验证,阻止输入部件接收除数字以外的任何内容。
|
||||
|
||||
`focus` 命令是用户界面的一项改进,使程序启动时输入部件处于激活状态。没有此命令,你需要先点击输入部件才可以输入。
|
||||
|
||||
`bind` 命令允许你在按下回车键时自动点击 “Guess” 按钮。如果你记得 `check_guess` 中的内容,猜测正确之后会重新绑定回车键到 “Quit” 按钮。
|
||||
|
||||
最后,这部分设定了图形用户界面的布局:
|
||||
|
||||
```
|
||||
grid .inst
|
||||
grid .low .dash .high
|
||||
grid .status .result
|
||||
grid .guess .entry
|
||||
grid .quit
|
||||
```
|
||||
|
||||
`grid` 几何管理器被逐步调用,以逐渐构建出预期的用户体验。它主要设置了五行部件。前三行是显示不同值的标签,第四行是 “Guess” 按钮和 `entry` 部件,最后是 “Quit” 按钮。
|
||||
|
||||
程序到此已经初始化完毕,`wish` shell 进入事件循环,等待用户输入整数并按下按钮。基于其在被监视的全局变量中找到的变化,它会更新标签。
|
||||
|
||||
注意,输入光标开始就在输入框中,而且按下回车键将调用适当且可用的按钮。
|
||||
|
||||
这只是一个初级的例子,Tcl/Tk 有许多可以让间隔、字体、颜色和其他用户界面方面更具有吸引力的选项,这超出了本文中简单 UI 的示例。
|
||||
|
||||
运行这个应用,你可能会注意到这些部件看起来并不很精致或现代。这是因为我正在使用原始的经典部件集,它们让人回忆起 X Windows Motif 的时代。不过,还有一些默认的部件扩展,被称为主题部件,它们可以让你的应用程序有更现代、更精致的外观和感觉。
|
||||
|
||||
### 启动游戏!
|
||||
|
||||
保存文件之后,在终端中运行它:
|
||||
|
||||
```
|
||||
$ ./numgame.wish
|
||||
```
|
||||
|
||||
在这种情况下,我无法给出控制台的输出,因此这里有一个动画 GIF 来展示如何玩这个游戏:
|
||||
|
||||
![用 Wish 编写的猜数游戏][7]
|
||||
|
||||
### 进一步了解 Tcl
|
||||
|
||||
Tcl 支持命名空间的概念,所以在这里使用的变量并不必须是全局的。你可以把绑定的部件变量组织进不同的命名空间。对于像这样的简单程序,可能并不太需要这么做。但对于更大规模的项目,你可能会考虑这种方法。
|
||||
|
||||
`proc check_guess` 函数体内有一行 `global` 代码我之前没有解释。在 Tcl 中,所有变量都按值传递,函数体内引用的变量的范围是局部的。在这个情况下,我希望修改的是全局变量,而不是局部范围的版本。Tcl 提供了许多方法来引用变量,在执行堆栈的更高级别执行代码。在一些情况下,像这样的简单引用可能带来一些复杂性和错误,但是调用堆栈的操作非常有力,允许 Tcl 实现那些在其他语言中实现起来可能较为复杂的新的条件和循环结构。
|
||||
|
||||
最后,在这篇文章中,我没有提到几何管理器,它们用于以特定的顺序展示部件。只有被某种几何管理器管理的部件才能显示在屏幕上。grid 管理器相当简洁,它按照从左到右的方式放置部件。我使用了五个 grid 定义来创建了五行。另外还有两个几何管理器:place 和 pack。pack 管理器将部件围绕窗口边缘排列,而 place 管理器允许固定部件的位置。除这些几何管理器外,还有一些特殊的部件,如 `canvas` ,`text` 和 `panedwindow`,它们可以容纳并管理其他部件。你可以在经典的 Tcl/Tk 参考指南,以及 [Tk 命令][8] 文档页上找到这些部件的全面描述。
|
||||
|
||||
### 继续学习编程
|
||||
|
||||
Tcl 和 Tk 提供了一个简单有效的方法来构建图形用户界面和事件驱动应用程序。这个简单的猜数游戏只是你能用这些工具做到的事情的起点。通过继续学习和探索 Tcl 和 Tk,你可以打开构建强大且用户友好的应用程序的无数可能性。继续尝试,继续学习,看看你新习得的 Tcl 和 Tk 技能能带你到哪里。
|
||||
|
||||
*(题图:MJ/40621c50-6577-4033-9f3c-8013bd0286f1)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/23/4/learn-tcltk-wish-simple-game
|
||||
|
||||
作者:[James Farrell][a]
|
||||
选题:[lkxed][b]
|
||||
译者:ChatGPT
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/jamesf
|
||||
[b]: https://github.com/lkxed/
|
||||
[1]: https://opensource.com/article/23/2/learn-tcl-writing-simple-game
|
||||
[2]: https://opensource.com/article/23/2/learn-expect-automate-simple-game
|
||||
[3]: https://www.redhat.com/en/technologies/management/ansible/what-is-ansible?intcmp=7013a000002qLH8AAM
|
||||
[4]: https://opensource.com/article/23/2/linux-kde-desktop-ansible
|
||||
[5]: https://opensource.com/article/20/6/homebrew-mac
|
||||
[6]: https://developers.redhat.com/topics/event-driven/all?intcmp=7013a000002qLH8AAM
|
||||
[7]: https://opensource.com/sites/default/files/2023-03/numgame-wish.gif
|
||||
[8]: https://tcl.tk/man/tcl8.7/TkCmd/index.html
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/07/231710i7u72ttuzlt4thhr.jpg
|
@ -0,0 +1,251 @@
|
||||
[#]: subject: "Guide to Set up Full Wayland with Arch Linux"
|
||||
[#]: via: "https://www.debugpoint.com/wayland-arch-linux/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "ChatGPT"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16171-1.html"
|
||||
|
||||
Arch Linux 下全面使用 Wayland 的配置指南
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> 我们能否在 Arch Linux 中通过主流的桌面环境或窗口管理器来全面运行 Wayland?一起来探索答案。
|
||||
|
||||
Wayland 是一种针对 Linux 运行图形应用的高效、现代化的协议。相较之下,它在安全、稳定和图形性能方面相较老旧的 X.Org 显示服务器表现更出色。
|
||||
|
||||
尽管 X.Org 多年来一直是默认的显示服务器,但其年代漫长且复杂度高,导致了许多问题,包括安全漏洞和对新型硬件的兼容性问题。而 Wayland 提供了一个更简洁和安全的显示协议,用以解决这些问题。
|
||||
|
||||
虽然向 Wayland 转型已经有近十年的时间,但这是可以理解的。大型 Linux 发行版,例如 Ubuntu 和 Fedora,自 2021 年起就默认使用 Wayland,因为该协议现已逐渐稳定。
|
||||
|
||||
然而,对 Arch Linux 用户来说,使用 Wayland 进行自定义安装可能会比较复杂。在所有主流桌面环境中,只有 KDE Plasma 和 GNOME 有最新的 Wayland 支持。Xfce、LXQt 及其他桌面环境正在开发支持 Wayland 的功能,但现在还没有做好准备。
|
||||
|
||||
在窗口管理器方面,Sway 在 Arch Linux 中已经全面支持 Wayland。尽管如此,我还是希望能测试 Wayland 在 Arch 中的表现,并给你提供一个截至今日的状态报告。
|
||||
|
||||
让我们来尝试在 Arch Linux 中配置 KDE Plasma 和 GNOME 以全面支持 Wayland。
|
||||
|
||||
### Arch Linux 中的 Wayland 设置
|
||||
|
||||
在理想的情况下,你应已经安装了 [基础的 wayland 包][1]。打开一个终端,并通过运行下列命令进行核实:
|
||||
|
||||
```
|
||||
pacman -Qi wayland
|
||||
```
|
||||
|
||||
如果你尚未安装,则可以使用以下命令进行安装:
|
||||
|
||||
```
|
||||
sudo pacman -S --needed wayland
|
||||
```
|
||||
|
||||
#### KDE Plasma 桌面环境
|
||||
|
||||
接下来的步骤设定的前提条件是你拥有一个没有安装任何桌面环境或窗口管理器的裸机 Arch Linux 环境。你可以通过使用 [高效的 archinstall 脚本][2] 进行 Arch Linux 的裸机安装。
|
||||
|
||||
在 Arch Linux 中,为了设置标准的 KDE Plasma,我们需要对 Wayland 进行一些调整。因此,该过程中需要从 AUR 安装一些包进来,这就要求你已经 [设置了 Yay][3] 或者其他的 AUR 辅助工具。
|
||||
|
||||
首先,利用以下命令从 AUR 安装一个定制的 sddm 显示管理器 Wayland 软件包。请注意,这个 `sddm` 包与 Arch Extra 仓库中的 `sddm` 包并不相同。根据 [ArchWiki][4] 的指南,只有 GDM 和 `sddm-git` 在 Arch Linux 中提供了完善的 Wayland 支持。
|
||||
|
||||
```
|
||||
yay -S sddm-git
|
||||
```
|
||||
|
||||
安装完成后,执行下述命令来安装更多 Wayland 包。
|
||||
|
||||
- `xorg-xwayland`:使得 xclients 能在 Wayland 下运行
|
||||
- `xorg-xlsclients`:列出正在一个显示端口上运行的客户端应用(可选)
|
||||
- `qt5-wayland`:为 Wayland 提供的 Qt API
|
||||
- `glfw-wayland`:供 Wayland 使用的 GUI 应用开发包
|
||||
|
||||
```
|
||||
pacman -S --needed xorg-xwayland xorg-xlsclients qt5-wayland glfw-wayland
|
||||
```
|
||||
|
||||
然后,执行以下命令以安装 Plasma 和与 Wayland 会话关联的应用。请保持以下的安装顺序。
|
||||
|
||||
```
|
||||
pacman -S --needed plasma kde-applications
|
||||
```
|
||||
|
||||
```
|
||||
pacman -S --needed plasma-wayland-session
|
||||
```
|
||||
|
||||
**注意**:如果你是英伟达用户,你可能需要考虑安装 `egl-wayland` 包,但需要说明的是,我没有尝试过此操作。
|
||||
|
||||
我们现在来安装 Firefox 和 Chromium,这样能够帮助我们测试 Wayland 是否正常运行。
|
||||
|
||||
```
|
||||
pacman -S --needed firefox chromium
|
||||
```
|
||||
|
||||
安装完成后,启动 sddm 显示管理器和 NetworkManager 服务。
|
||||
|
||||
```
|
||||
sudo systemctl enable sddm
|
||||
sudo systemctl enable NetworkManager
|
||||
```
|
||||
|
||||
另外,sddm 显示管理器需要做一些额外设置。使用你喜欢的文本编辑器,打开 sddm 的配置文件,然后在 `[Theme]` 下面添加 `Current=breeze`。
|
||||
|
||||
```
|
||||
sudo nano /usr/lib/sddm/sddm.conf.d/default.conf
|
||||
```
|
||||
|
||||
```
|
||||
[Theme]
|
||||
# current theme name
|
||||
Current=breeze
|
||||
```
|
||||
|
||||
设置完成后,保存并关闭文件,然后进行重启。
|
||||
|
||||
```
|
||||
reboot
|
||||
```
|
||||
|
||||
重启后,在登录屏幕上,你应该可以看到 Wayland 的选项。选择并登录 KDE Plasma 的 Wayland 会话。
|
||||
|
||||
![Plasma Wayland 会话登录界面][5]
|
||||
|
||||
你还能通过查看 `$XDG_SESSION_TYPE` 变量来 [核实你是否在运行 Wayland][6]。
|
||||
|
||||
![Arch Linux 中运行的 KDE Plasma 与 Wayland][7]
|
||||
|
||||
如果你希望强制让 Firefox 以 Wayland 运行,那么就在 `/etc/environment` 中添加以下行。
|
||||
|
||||
```
|
||||
MOZ_ENABLE_WAYLAND=1
|
||||
```
|
||||
|
||||
然后重新启动或执行下方的命令使其生效。
|
||||
|
||||
```
|
||||
source /etc/environment
|
||||
```
|
||||
|
||||
打开 Firefox,进入 `about:support` 页面来校验 “Window protocol” 的值。你也可以通过在终端中运行 `xlsclients` 来查看哪些外部应用正在运行在 Wayland 下。
|
||||
|
||||
![在 Arch 和 KDE Plasma 下 Firefox 使用的是 xwayland][8]
|
||||
|
||||
至此,你已经完成了在 Arch Linux 中使用 Wayland 安装配置 KDE Plasma 的全部步骤。
|
||||
|
||||
#### Wayland KDE Plasma 在 Arch 中的性能表现
|
||||
|
||||
总体而言,Arch Linux 下的 KDE Plasma 配合 Wayland 运行得相当顺畅,未出现任何中断使用或重大问题的情形。截图和屏幕录制应用 Spectacle 功能一切正常。尽管如此,我在测试过程中还是注意到了几个小问题。
|
||||
|
||||
首先,在开启如 Dolphin 这类应用程序时,底部面板时不时会出现闪烁,这主要是在 VirtualBox 会话中观察到的。
|
||||
|
||||
其次,鼠标指针的变化行为有点奇怪。它无法适時地从指针状态切换到操作手柄状态(详见下图)。
|
||||
|
||||
![][8A]
|
||||
|
||||
最后,当从待机/屏幕关闭状态恢复在线时(在没有安装客户机插件的 VirtualBox 中),KWin 会崩溃。虽然这可能只是虚拟机特有的现象,但仍然需要进行硬重启才能返回到桌面。
|
||||
|
||||
在 Arch Linux 的 Wayland 会话闲置状态下,内存消耗大约为 2GB。
|
||||
|
||||
### GNOME
|
||||
|
||||
在 Arch Linux 中,GDM 显示管理器已经完全支持 Wayland。首先,我们通过下列命令安装 GDM:
|
||||
|
||||
```
|
||||
pacman -S --needed gdm
|
||||
```
|
||||
|
||||
安装完毕后,使用以下命令安装几个 Wayland 需要的包。
|
||||
|
||||
- `xorg-xwayland`:使得 xclients 能在 Wayland 下运行
|
||||
- `xorg-xlsclients`:用于列出在显示器上运行的应用程序(可选)
|
||||
- `glfw-wayland`:Wayland 的图形用户界面应用开发包
|
||||
|
||||
```
|
||||
pacman -S --needed xorg-xwayland xorg-xlsclients glfw-wayland
|
||||
```
|
||||
|
||||
接下来,你可以用下面的一系列命令来安装 GNOME 和一些与 Wayland 会话相关的应用。请确保按照下列给出的顺序来执行这些命令。
|
||||
|
||||
```
|
||||
sudo pacman -S --needed gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme
|
||||
```
|
||||
|
||||
**注意**:如果你正在使用英伟达,你可能需要安装 `egl-wayland` 软件包,但我并未亲自试过此方法。
|
||||
|
||||
接下来,我们还要安装 Firefox 和 Chromium,这样你就能测试 Wayland 是否在 GNOME 中正常运行。
|
||||
|
||||
```
|
||||
pacman -S --needed firefox chromium
|
||||
```
|
||||
|
||||
一旦这项任务完成,就启动 GDM 显示管理器和 NetworkManager 服务。
|
||||
|
||||
```
|
||||
sudo systemctl enable gdm
|
||||
sudo systemctl enable NetworkManager
|
||||
```
|
||||
|
||||
保存并关闭文件之后,进行重启。
|
||||
|
||||
```
|
||||
reboot
|
||||
```
|
||||
|
||||
在登录界面,你能看到 “GNOME (Wayland)” 选项。选择并登录到 GNOME 的 Wayland 会话中,以进入 Arch Linux。
|
||||
|
||||
![在 Arch Linux 中运行的带有 Wayland 的 GNOME][9]
|
||||
|
||||
#### GNOME 的性能
|
||||
|
||||
如果将 GNOME 和 KDE Plasma 进行对比,你会发现 GNOME 在 Arch Linux 的 Wayland 下的表现更胜一筹。没有遇到重大问题或应用屏幕闪烁。这可能源于 GNOME 44 针对 Wayland 的最新改进已普及至 Arch Linux。
|
||||
|
||||
此外,Firefox 是在 GNOME 上直接在 Wayland 上运行,而不是使用 xwayland 包装器。
|
||||
|
||||
![在 GNOME 中的 Firefox 使用 Wayland][10]
|
||||
|
||||
### 解决常见 Wayland 问题
|
||||
|
||||
虽然 Wayland 提供了众多优点,但在使用过程中你可能会遇到一些挑战。以下列出了几个常见的问题以及可能的解决方案:
|
||||
|
||||
- **处理不兼容的应用程序**:部分较旧或不常用的应用可能还未完全支持 Wayland。你可以考虑寻找专为 Wayland 设计的替代应用,或利用 XWayland 作为兼容性层。
|
||||
- **解决性能相关问题**:如果你在特定的应用程序中遇到性能问题,确保你已经安装了最新的图形驱动。另外,也可以查看是否有特定的合成器设置或适用于特定应用程序的优化措施。
|
||||
- 在 [这个页面][11] 中,也有**更多**疑难解答的建议。
|
||||
|
||||
### 结论
|
||||
|
||||
在 Arch Linux 中将 Wayland 设置为默认的显示服务器可以大大提升安全性、稳定性和图形性能。遵循本指南的安装和配置步骤,你能够从 Xorg 平稳过渡到 Wayland,享受一个更为现代高效的显示体验。
|
||||
|
||||
然而,对于 Arch Linux 加 Wayland 的组合来说,整个过程可能会显得稍微复杂一些,因为许多问题崩溃时都需要额外的注意。
|
||||
|
||||
这个指南并没包括在 Arch 使用 Wayland 游戏的测试,所以你可能需要在配置完成后自行试验。我希望这篇教程能帮助你在 Arch Linux 中配置 Wayland。
|
||||
|
||||
如果你有任何进展,欢迎在下面的评论框中告诉我。
|
||||
|
||||
*(题图:MJ/188e0c86-ed52-4185-b583-23814fb72ce7)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/wayland-arch-linux/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:ChatGPT
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed/
|
||||
[1]: https://archlinux.org/packages/extra/x86_64/wayland/
|
||||
[2]: https://www.debugpoint.com/archinstall-guide/
|
||||
[3]: https://www.debugpoint.com/install-yay-arch/
|
||||
[4]: https://wiki.archlinux.org/title/wayland#Display_managers
|
||||
[5]: https://www.debugpoint.com/wp-content/uploads/2023/05/Plasma-Wayland-session-during-login.jpg
|
||||
[6]: https://www.debugpoint.com/check-wayland-or-xorg/
|
||||
[7]: https://www.debugpoint.com/wp-content/uploads/2023/05/KDE-Plasma-with-Wayland-in-Arch-Linux.jpg
|
||||
[8]: https://www.debugpoint.com/wp-content/uploads/2023/05/Firefox-is-using-xwayland-in-KDE-Plasma-with-Arch.jpg
|
||||
[8A]: https://www.debugpoint.com/wp-content/uploads/2023/05/Screencast-from-2023-05-15-17-30-51.webm
|
||||
[9]: https://www.debugpoint.com/wp-content/uploads/2023/05/GNOME-with-Wayland-running-in-Arch-Linux.jpg
|
||||
[10]: https://www.debugpoint.com/wp-content/uploads/2023/05/Firefox-with-Wayland-in-GNOME.jpg
|
||||
[11]: https://wiki.archlinux.org/title/wayland#Troubleshooting
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/08/090159qe0jkbtj5z55bbeq.jpg
|
@ -0,0 +1,158 @@
|
||||
[#]: subject: "How to Change the default kernel in RHEL 8 and 9"
|
||||
[#]: via: "https://www.2daygeek.com/changing-default-kernel-rhel-8-rhel-9/"
|
||||
[#]: author: "Rasool Cool https://www.2daygeek.com/author/rasool/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "onionstalgia"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16147-1.html"
|
||||
|
||||
如何使用 grubby 更改 RHEL 8 和 9 的默认内核
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
通常 Linux 系统会默认引导系统进入最新安装的内核,并保留最新的 3 个 Linux 内核引导条目。
|
||||
|
||||
假设你已经执行了 `yum update`,并且新的内核作为更新的一部分已经安装了。这时,由于这个新内核与应用程序不兼容,它会阻止应用程序启动。
|
||||
|
||||
想要暂时解决这个问题,你应该还是引导系统进入旧内核。
|
||||
|
||||
在本文中,我们将向您展示如何使用 `grubby` 工具将旧的内核版本设置为 RHEL 8 和 RHEL 9 系统上的默认版本。
|
||||
|
||||
### grubby 是什么
|
||||
|
||||
`grubby` 是一个命令行工具,用于在多个架构上更新和显示引导加载配置文件的信息。
|
||||
|
||||
### 检查当前引导的内核
|
||||
|
||||
你可以使用如下的 `uname` 命令来检查当前引导/加载的内核。
|
||||
|
||||
```
|
||||
# uname -r
|
||||
4.18.0-477.13.1.el8_8.x86_64
|
||||
```
|
||||
|
||||
### 列出默认内核
|
||||
|
||||
使用 `grubby` 验证默认内核版本,运行以下命令:
|
||||
|
||||
```
|
||||
# grubby --default-kernel
|
||||
/boot/vmlinuz-4.18.0-477.13.1.el8_8.x86_64
|
||||
```
|
||||
|
||||
要获取当前默认内核的索引号,请运行以下命令:
|
||||
|
||||
```
|
||||
# grubby --default-index
|
||||
0
|
||||
```
|
||||
|
||||
### 检查已安装的内核
|
||||
|
||||
要检查已安装的内核的列表,请运行以下命令:
|
||||
|
||||
我们来解释以下的输出信息。最新安装的内核的**条目索引**为 `0`,接下来的 **较旧的内核** 版本将会是 `1`,第二个更旧的内核版本将会是 `2`,而 **救援内核** 的条目索引将会是 `3`。
|
||||
|
||||
```
|
||||
# grubby --info=ALL | egrep -i 'index|title'
|
||||
index=0
|
||||
title="Red Hat Enterprise Linux (4.18.0-477.13.1.el8_8.x86_64) 8.8 (Ootpa)"
|
||||
index=1
|
||||
title="Red Hat Enterprise Linux (4.18.0-425.19.2.el8_7.x86_64) 8.7 (Ootpa)"
|
||||
index=2
|
||||
title="Red Hat Enterprise Linux (4.18.0-425.13.1.el8_7.x86_64) 8.7 (Ootpa)"
|
||||
index=3
|
||||
title="Red Hat Enterprise Linux (0-rescue-13iu76884ec5490puc67j8789s249b0c) 8.2 (Ootpa)"
|
||||
```
|
||||
|
||||
### 更改默认内核引导条目
|
||||
|
||||
我们可以用两种方式,使用 “内核文件名”,或者使用 “内核条目索引”。我们设置索引号为 `1` 的 `4.18.0-425.19.2.el8_7.x86_64` 为默认内核,以此满足应用程序的依赖关系。
|
||||
|
||||
语法:
|
||||
|
||||
```
|
||||
# grubby --set-default [kernel-filename]
|
||||
```
|
||||
|
||||
```
|
||||
# grubby --set-default /boot/vmlinuz-4.18.0-425.19.2.el8_7.x86_64
|
||||
```
|
||||
|
||||
或者
|
||||
|
||||
```
|
||||
# grubby --set-default vmlinuz-4.18.0-425.19.2.el8_7.x86_64
|
||||
```
|
||||
|
||||
使用内核条目索引更改默认的内核引导:
|
||||
|
||||
语法:
|
||||
|
||||
```
|
||||
# grubby --set-default-index=[kernel-entry-index]
|
||||
```
|
||||
|
||||
```
|
||||
# grubby --set-default-index=1
|
||||
```
|
||||
|
||||
### 重启系统
|
||||
|
||||
重启系统,检查旧内核是否持久更改。
|
||||
|
||||
```
|
||||
# reboot
|
||||
```
|
||||
|
||||
或者
|
||||
|
||||
```
|
||||
# init 6
|
||||
```
|
||||
|
||||
### 验证更改
|
||||
|
||||
让我们检查一下在上一步中添加的内核是否生效了。好了,按我们的预期使用了较旧的内核 “N-1” 进行引导了。
|
||||
|
||||
```
|
||||
# uname -r
|
||||
4.18.0-425.19.2.el8_7.x86_64
|
||||
# grubby --default-kernel
|
||||
/boot/vmlinuz-4.18.0-425.19.2.el8_7.x86_64
|
||||
```
|
||||
|
||||
要检查所有内核的详细信息,请运行以下命令:
|
||||
|
||||
```
|
||||
# grubby --info=ALL
|
||||
```
|
||||
|
||||
![][2]
|
||||
|
||||
### 总结
|
||||
|
||||
在本教程中,我们展示了如何使用 `grubby` 工具在 RHEL 8 和 RHEL 9 系统上将旧版本内核设置为默认。
|
||||
|
||||
如果有任何问题或反馈,欢迎在下方发表评论。
|
||||
|
||||
*(题图:MJ/9204b9c1-c1ad-4694-b2f6-a7d983976d22)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.2daygeek.com/changing-default-kernel-rhel-8-rhel-9/
|
||||
|
||||
作者:[Rasool Cool][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[onionstalgia](https://github.com/onionstalgia)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.2daygeek.com/author/rasool/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.2daygeek.com/upgrading-from-rhel-7-to-rhel-8/
|
||||
[2]: https://www.2daygeek.com/wp-content/uploads/2023/06/changing-default-kernel-rhel-8-rhel-9-1024x494.jpg
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/01/105123phdy0f0fmgavquqq.jpg
|
@ -3,14 +3,16 @@
|
||||
[#]: author: "Prakash Subramanian https://www.2daygeek.com/author/prakash/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16164-1.html"
|
||||
|
||||
如何在 Linux 中查找映射到 VxVM 磁盘的 SAN LUN
|
||||
======
|
||||
|
||||
我们过去写过几篇文章来查找映射到块设备/磁盘的 LUN ID,但是当你管理 **[VCS 集群][1]**时,在某些情况下你可能需要映射 LUN 用于 VxFS 文件系统扩展的 VxVM (Veritas Volume Manager) 磁盘的 ID。
|
||||
![][0]
|
||||
|
||||
我们过去写过几篇文章来查找映射到块设备/磁盘的 LUN ID,但是当你管理 [VCS 集群][1]时,在某些情况下你可能需要映射 LUN 用于 VxFS 文件系统扩展的 VxVM(Veritas 卷管理器)磁盘的 ID。
|
||||
|
||||
这篇短文介绍了如何在 Linux 中查找与 VxVM 磁盘关联的 LUN 号。
|
||||
|
||||
@ -21,38 +23,35 @@
|
||||
* **[如何在 Linux 中映射 SAN LUN、磁盘和文件系统][4]**
|
||||
* **[如何在 Linux 中映射 LUN、磁盘、LVM 和文件系统][5]**
|
||||
|
||||
|
||||
|
||||
### 在 Linux 中查找映射到 VxVM 磁盘的 LUN 号的 Shell 脚本
|
||||
|
||||
这个方便的 shell 脚本可帮助你识别哪个存储 LUN 与 Linux 上的哪个 VxVM 磁盘关联。
|
||||
这个方便的 Shell 脚本可帮助你识别哪个存储 LUN 与 Linux 上的哪个 VxVM 磁盘关联。
|
||||
|
||||
#### 这个脚本是如何工作的
|
||||
|
||||
该脚本按照以下步骤收集和打印这些信息。
|
||||
|
||||
* 它收集系统上活动**“磁盘组”(DG)**的列表
|
||||
* 查找与相应 DG 关联的**“设备名称”**。
|
||||
* 接下来,它列出了与各个设备映射的**“块设备”**。
|
||||
* 它收集系统上活动 “磁盘组”(DG)的列表
|
||||
* 查找与相应 DG 关联的 “设备名称”。
|
||||
* 接下来,它列出了与各个设备映射的 “块设备”。
|
||||
* 最后收集与这些块设备关联的 **LUN ID** 并将它们全部打印在一起,如 DG 名称、块设备名称和 LUN 编号。
|
||||
|
||||
|
||||
|
||||
```
|
||||
vi VxVM_disk_mapping_with_LUN_number.sh
|
||||
```
|
||||
|
||||
vi VxVM_disk_mapping_with_LUN_number.sh
|
||||
```
|
||||
#!/bin/bash
|
||||
###########################################################
|
||||
# Purpose: Mapping LUN Number to VxVM Disk in Linux
|
||||
# Author: 2DayGeek
|
||||
# Version: v1.0
|
||||
###########################################################
|
||||
|
||||
#!/bin/bash
|
||||
###########################################################
|
||||
# Purpose: Mapping LUN Number to VxVM Disk in Linux
|
||||
# Author: 2DayGeek
|
||||
# Version: v1.0
|
||||
###########################################################
|
||||
|
||||
echo "DG_Name Block_Device LUN_Number"
|
||||
echo "-------------------------------------------------------------------"
|
||||
for dg_name in `vxdg list | awk '{print $1}' | grep -v NAME`
|
||||
do
|
||||
echo "DG_Name Block_Device LUN_Number"
|
||||
echo "-------------------------------------------------------------------"
|
||||
for dg_name in `vxdg list | awk '{print $1}' | grep -v NAME`
|
||||
do
|
||||
for d_name in `vxdisk -e list | grep -i $dg_name | awk '{print $1}'
|
||||
do
|
||||
for b_device in `vxdisk list $d_name | grep -w state=enabled | awk '{print $1}' | head -1`
|
||||
@ -60,24 +59,20 @@
|
||||
echo "$dg_name --> $b_device --> $(lsscsi --scsi | grep $b_device | awk '{print $NF}'"
|
||||
done
|
||||
done
|
||||
done | column -t
|
||||
done | column -t
|
||||
|
||||
```
|
||||
|
||||
设置shell脚本文件的可执行权限。
|
||||
设置 Shell 脚本文件的可执行权限。
|
||||
|
||||
```
|
||||
|
||||
chmod +x VxVM_disk_mapping_with_LUN_number.sh
|
||||
|
||||
chmod +x VxVM_disk_mapping_with_LUN_number.sh
|
||||
```
|
||||
|
||||
最后执行脚本查看结果。
|
||||
|
||||
```
|
||||
|
||||
sh VxVM_disk_mapping_with_LUN_number.sh
|
||||
|
||||
sh VxVM_disk_mapping_with_LUN_number.sh
|
||||
```
|
||||
|
||||
你的输出将类似于此。但是,DG 名称、块设备和 LUN 会与此不同。
|
||||
@ -87,23 +82,25 @@
|
||||
如果你想即时运行上述脚本,请使用下面的单行脚本。
|
||||
|
||||
```
|
||||
|
||||
# for dg_name in `vxdg list | awk '{print $1}' | grep -v NAME`; do for d_name in `vxdisk -e list | grep -i $dg_name | awk '{print $1}'; do for b_device in `vxdisk list $d_name | grep -w state=enabled | awk '{print $1}' | head -1`; do echo "$dg_name --> $b_device --> $(lsscsi --scsi | grep $b_device | awk '{print $NF}'"; done; done; done | column -t
|
||||
|
||||
apachedg --> sde --> 3600d0230000000000e11404639558823
|
||||
apachedg --> sdf --> 3600d0230000000000e11404639558824
|
||||
apachedg --> sdg --> 3600d0230000000000e11404639558825
|
||||
sftpdg --> sdh --> 3600d0230000000000e11404639558826
|
||||
sftpdg --> sdi --> 3600d0230000000000e11404639558827
|
||||
|
||||
# for dg_name in `vxdg list | awk '{print $1}' | grep -v NAME`; do for d_name in `vxdisk -e list | grep -i $dg_name | awk '{print $1}'; do for b_device in `vxdisk list $d_name | grep -w state=enabled | awk '{print $1}' | head -1`; do echo "$dg_name --> $b_device --> $(lsscsi --scsi | grep $b_device | awk '{print $NF}'"; done; done; done | column -t
|
||||
```
|
||||
|
||||
##### 总结
|
||||
```
|
||||
apachedg --> sde --> 3600d0230000000000e11404639558823
|
||||
apachedg --> sdf --> 3600d0230000000000e11404639558824
|
||||
apachedg --> sdg --> 3600d0230000000000e11404639558825
|
||||
sftpdg --> sdh --> 3600d0230000000000e11404639558826
|
||||
sftpdg --> sdi --> 3600d0230000000000e11404639558827
|
||||
```
|
||||
|
||||
在本教程中,我们向你展示了如何在 Linux 中查找与 VxVM (Veritas Volume Manager) 磁盘映射的 LUN 号。
|
||||
### 总结
|
||||
|
||||
在本教程中,我们向你展示了如何在 Linux 中查找与 VxVM 磁盘映射的 LUN 号。
|
||||
|
||||
如果你有任何问题或反馈,请随时在下面发表评论。
|
||||
|
||||
*(题图:MJ/251ada36-41d9-4a1b-b857-a1def52f27f2)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.2daygeek.com/find-san-lun-mapping-with-vxvm-disk-veritas-linux/
|
||||
@ -111,7 +108,7 @@ via: https://www.2daygeek.com/find-san-lun-mapping-with-vxvm-disk-veritas-linux/
|
||||
作者:[Prakash Subramanian][a]
|
||||
选题:[lujun9972][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/) 荣誉推出
|
||||
|
||||
@ -123,3 +120,4 @@ via: https://www.2daygeek.com/find-san-lun-mapping-with-vxvm-disk-veritas-linux/
|
||||
[4]: https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-linux/
|
||||
[5]: https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-lvm-info-linux/
|
||||
[6]: https://www.2daygeek.com/wp-content/uploads/2023/07/find-san-lun-mapping-with-vxvm-disk-veritas-linux-1024x298.jpg
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/06/145937qzio9bi65iq6uozu.jpg
|
@ -0,0 +1,103 @@
|
||||
[#]: subject: "How to map LUN, Disk, LVM and FileSystem in Linux"
|
||||
[#]: via: "https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-lvm-info-linux/"
|
||||
[#]: author: "Rasool Cool https://www.2daygeek.com/author/rasool/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16160-1.html"
|
||||
|
||||
如何在 Linux 中映射 LUN、磁盘、LVM 和文件系统
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
在某些情况下,你需要映射存储 LUN(逻辑单元号)、块设备、LVM(LV 和 VG 名称)和文件系统(FS)信息以进行文件系统扩展或灾难恢复(DR)操作。
|
||||
|
||||
这是大多数 Linux 管理员的例行活动,我们通常使用一些脚本来显示针对 SAN LUN 的块设备映射,然后我们将手动添加 LVM 和文件系统信息来完成操作。
|
||||
|
||||
今后,你无需手动干预此活动,因为这些信息可以通过 Shell 脚本进行映射,如下所示。
|
||||
|
||||
参考以下类似文章:
|
||||
|
||||
* [如何在 Linux 中查找 SAN 磁盘 LUN id][1]
|
||||
* [如何在 Linux 中将 ASM 磁盘映射到物理磁盘][2]
|
||||
* [如何在 Linux 中映射 SAN LUN、磁盘和文件系统][3]
|
||||
|
||||
### 在 Linux 中映射 LUN、磁盘、LVM 和文件系统的 Shell 脚本
|
||||
|
||||
这个 Shell 脚本可帮助你识别哪些 SAN 磁盘映射到 Linux 上的哪些块设备、LV、VG 和文件系统。
|
||||
|
||||
**请注意:** 我们排除了 `sda` 磁盘,因为这是操作系统(OS)盘,它有多个分区。
|
||||
|
||||
```
|
||||
vi block_device_mapping_with_LUN_FS_LVM.sh
|
||||
```
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
for bdevice in `lsblk | grep disk | awk '{print $1}' | grep -v 'sda'`; do
|
||||
for mpoint in `lsblk /dev/$bdevice | grep lvm | awk '{print $NF}'`; do
|
||||
LVM_INFO=`lvs -o +devices | grep -i $bdevice | awk '{print $1,$2}'`
|
||||
LUN_ID=`lsscsi --scsi | grep $bdevice | awk '{print $NF}'`
|
||||
echo "$bdevice --> $mpoint --> $LVM_INFO --> $LUN_ID"
|
||||
done
|
||||
done
|
||||
|
||||
```
|
||||
|
||||
设置 `block_device_mapping_with_LUN_FS_LVM.sh` 文件的可执行权限。
|
||||
|
||||
```
|
||||
chmod +x block_device_mapping_with_LUN_FS_LVM.sh
|
||||
```
|
||||
|
||||
最后运行脚本查看结果。
|
||||
|
||||
```
|
||||
sh block_device_mapping_with_LUN_FS_LVM.sh
|
||||
```
|
||||
|
||||
![][4]
|
||||
|
||||
**注意:** 在上面的输出中,设备 `sdb` 不会显示任何 LUN 信息,因为它是从 VMWare 端添加的虚拟磁盘,没有任何 LUN。其他 3 块磁盘是从存储映射的,这就是为什么可以看到 LUN 信息。
|
||||
|
||||
如果你想即时运行上述脚本,请使用下面的一行脚本。
|
||||
|
||||
```
|
||||
for bdevice in `lsblk | grep disk | awk '{print $1}' | grep -v 'sda'`; do for mpoint in `lsblk /dev/$bdevice | grep lvm | awk '{print $NF}'`; do LVM_INFO=`lvs -o +devices | grep -i $bdevice | awk '{print $1,$2}'`; LUN_ID=`lsscsi --scsi | grep $bdevice | awk '{print $NF}'`; echo "$bdevice --> $mpoint --> $LVM_INFO --> $LUN_ID"; done; done
|
||||
```
|
||||
|
||||
```
|
||||
sdb --> [SWAP] --> swap2lv swapvg --> -
|
||||
sdc --> /appserver --> appserver_lv appserver_vg --> 360000670000415600477312020662021
|
||||
sdd --> /data --> data_lv data_vg --> 360000670000415600477312020662022
|
||||
sde --> /backup --> backup_lv backup_vg --> 360000670000415600477312020662023
|
||||
```
|
||||
|
||||
### 总结
|
||||
|
||||
在本教程中,我们向你展示了如何在 Linux 上检查 SAN 提供的 LUN 以及底层操作系统磁盘、LV 名称、VG 名称和关联的文件系统。
|
||||
|
||||
如果你有任何问题或反馈,请随时在下面发表评论。
|
||||
|
||||
*(题图:MJ/f5da2270-4e5a-4b2c-8998-fae974214384)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-lvm-info-linux/
|
||||
|
||||
作者:[Rasool Cool][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.2daygeek.com/author/rasool/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.2daygeek.com/find-san-disk-lun-id-linux/
|
||||
[2]: https://www.2daygeek.com/shell-script-map-oracle-asm-disks-physical-disk-lun-in-linux/
|
||||
[3]: https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-linux/
|
||||
[4]: https://www.2daygeek.com/wp-content/uploads/2023/06/map-san-lun-physical-disk-filesystem-lvm-info-linux-1024x155.jpg
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/05/150634a78yslwka2lilnvr.jpg
|
@ -3,87 +3,89 @@
|
||||
[#]: author: "Rasool Cool https://www.2daygeek.com/author/rasool/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16154-1.html"
|
||||
|
||||
如何在 Linux 中映射 SAN LUN、磁盘和文件系统
|
||||
======
|
||||
|
||||
对于某些需求,你可能需要找到映射到逻辑单元号 (LUN) 和文件系统 (FS) 的块设备,以进行文件系统扩展或灾难恢复 (DR) 活动。
|
||||
![][0]
|
||||
|
||||
对于某些需求,你可能需要找到映射到逻辑单元号(LUN)和文件系统(FS)的块设备,以进行文件系统扩展或灾难恢复(DR)活动。
|
||||
|
||||
当你管理更大的基础设施时,类似的活动可能会经常发生。假设有超过 1000 台服务器托管各种应用。
|
||||
|
||||
**参考以下类似文章:**
|
||||
|
||||
* **[如何在 Linux 中查找 SAN 磁盘 LUN id][1]**
|
||||
* **[如何在 Linux 中查找 SAN 磁盘 LUN][1]**
|
||||
* **[如何在 Linux 中将 ASM 磁盘映射到物理磁盘][2]**
|
||||
|
||||
在本文中,我们将向你展示如何在 Linux 中映射物理磁盘、存储 LUN 和文件系统 (FS)。
|
||||
在本文中,我们将向你展示如何在 Linux 中映射物理磁盘、存储 LUN 和文件系统(FS)。
|
||||
|
||||
### 将物理磁盘映射到 Linux 中的存储 LUN 和文件系统的 Shell 脚本
|
||||
|
||||
这个小 shell 脚本可帮助你识别哪些 SAN 磁盘映射到 Linux 上的哪些块设备和文件系统。
|
||||
|
||||
```
|
||||
vi block_device_mapping_with_LUN_FS.sh
|
||||
```
|
||||
|
||||
vi block_device_mapping_with_LUN_FS.sh
|
||||
|
||||
#!/bin/bash
|
||||
for lunmap in `lsblk | grep disk | grep ^s | awk '{print $1}'`
|
||||
do
|
||||
for mpoint in `lsblk /dev/$lunmpa | grep lvm | awk '{print $NF}'`
|
||||
do
|
||||
```
|
||||
#!/bin/bash
|
||||
for lunmap in `lsblk | grep disk | grep ^s | awk '{print $1}'`; do
|
||||
for mpoint in `lsblk /dev/$lunmpa | grep lvm | awk '{print $NF}'`; do
|
||||
echo "$lunmap --> $mpoint --> $(smartctl -a /dev/$lunmap | grep "Logical Unit id" | awk -F":" '{print $2}')"
|
||||
done
|
||||
done
|
||||
|
||||
done
|
||||
```
|
||||
|
||||
设置 “block_device_mapping_with_LUN_FS.sh” 文件的可执行权限。
|
||||
设置 `block_device_mapping_with_LUN_FS.sh` 文件的可执行权限。
|
||||
|
||||
```
|
||||
|
||||
chmod +x block_device_mapping_with_LUN_FS.sh
|
||||
|
||||
chmod +x block_device_mapping_with_LUN_FS.sh
|
||||
```
|
||||
|
||||
最后运行脚本查看结果。
|
||||
|
||||
```
|
||||
|
||||
sh block_device_mapping_with_LUN_FS.sh
|
||||
|
||||
sh block_device_mapping_with_LUN_FS.sh
|
||||
```
|
||||
|
||||
![][3]
|
||||
|
||||
**注意:** 在上面的输出中,设备 sda 不会显示任何 LUN 信息,因为它是从 VMWare 端添加的虚拟磁盘,没有任何 LUN。其他 3 个磁盘是从存储映射的,这就是我们能够看到 LUN 信息的原因。
|
||||
**注意:** 在上面的输出中,设备 `sda` 不会显示任何 LUN 信息,因为它是从 VMWare 端添加的虚拟磁盘,没有任何 LUN。其他 3 个磁盘是从存储映射的,这就是我们能够看到 LUN 信息的原因。
|
||||
|
||||
如果你想即时运行该脚本,请使用下面的一行脚本。
|
||||
|
||||
```
|
||||
|
||||
for lunmap in `lsblk | grep disk | grep ^s | awk '{print $1}'`; do for mpoint in `lsblk /dev/$lunmpa | grep lvm | awk '{print $NF}'`; do echo "$lunmap --> $mpoint --> $(smartctl -a /dev/$lunmap | grep "Logical Unit id" | awk -F":" '{print $2}')"; done; done
|
||||
|
||||
sda --> /
|
||||
sda --> /usr
|
||||
sda --> /opt
|
||||
sda --> /tmp
|
||||
sda --> /var
|
||||
sda --> /home
|
||||
sdb --> /data --> 0x3600d0230000000000e1140463955737c
|
||||
sdc --> /app --> 0x3600d0230000000000e114046395577cd
|
||||
sdd --> /backup --> 0x3600d0230000000000e11404639558cc5
|
||||
|
||||
for lunmap in `lsblk | grep disk | grep ^s | awk '{print $1}'`; do
|
||||
for mpoint in `lsblk /dev/$lunmpa | grep lvm | awk '{print $NF}'`; do
|
||||
echo "$lunmap --> $mpoint --> $(smartctl -a /dev/$lunmap | grep "Logical Unit id" | awk -F":" '{print $2}')"
|
||||
done
|
||||
done
|
||||
```
|
||||
|
||||
##### 总结
|
||||
```
|
||||
sda --> /
|
||||
sda --> /usr
|
||||
sda --> /opt
|
||||
sda --> /tmp
|
||||
sda --> /var
|
||||
sda --> /home
|
||||
sdb --> /data --> 0x3600d0230000000000e1140463955737c
|
||||
sdc --> /app --> 0x3600d0230000000000e114046395577cd
|
||||
sdd --> /backup --> 0x3600d0230000000000e11404639558cc5
|
||||
```
|
||||
|
||||
### 总结
|
||||
|
||||
在本教程中,我们向你展示了如何在 Linux 上检查 SAN 提供的 LUN 以及底层操作系统磁盘和关联的文件系统。
|
||||
|
||||
如果你有任何问题或反馈,请随时在下面发表评论。
|
||||
|
||||
*(题图:MJ/09a00c62-f6a1-48b0-bf43-dc1bcb3c7861)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-linux/
|
||||
@ -91,7 +93,7 @@ via: https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-linux/
|
||||
作者:[Rasool Cool][a]
|
||||
选题:[lujun9972][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/) 荣誉推出
|
||||
|
||||
@ -100,3 +102,4 @@ via: https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-linux/
|
||||
[1]: https://www.2daygeek.com/find-san-disk-lun-id-linux/
|
||||
[2]: https://www.2daygeek.com/shell-script-map-oracle-asm-disks-physical-disk-lun-in-linux/
|
||||
[3]: https://www.2daygeek.com/wp-content/uploads/2023/06/map-san-lun-physical-disk-filesystem-linux-1a-1024x364.jpg
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/03/091608o1ggrda4gnca98dl.jpg
|
186
published/20230818 What is a Virtual Machine.md
Normal file
186
published/20230818 What is a Virtual Machine.md
Normal file
@ -0,0 +1,186 @@
|
||||
[#]: subject: "What is a Virtual Machine?"
|
||||
[#]: via: "https://itsfoss.com/virtual-machine/"
|
||||
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "ChatGPT"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16153-1.html"
|
||||
|
||||
什么是虚拟机?
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> 这是终端用户需要知道的所有关于虚拟机的信息,包括它的工作方式及其必要性。
|
||||
|
||||
**虚拟机(VM)是一个模拟版的物理计算机,它在虚拟环境中模拟各种功能并分配资源。**
|
||||
|
||||
简言之,你可以在你当前的操作系统中运行另一个操作系统,就像运行媒体播放器或网络浏览器一样。
|
||||
|
||||
![在 Manjaro Linux 里 VirtualBox 中运行 Windows 10][1]
|
||||
|
||||
你可以在 VM 中执行与裸机(例如你的笔记本电脑或个人电脑)相同的操作,例如连接到网络、下载软件、更新操作系统等等。
|
||||
|
||||
当然,根据使用场景,VM 的体验可能会与实体计算机有所不同。
|
||||
|
||||
让我们来探索虚拟机,它们的应用场景,以及它们的工作原理。
|
||||
|
||||
### 虚拟机:起源
|
||||
|
||||
![][2]
|
||||
|
||||
虚拟机是最重要的基于软件的创新之一。它的起源可以追溯到 **1966 年的 IBM CP-40 和 CP-67** 虚拟机操作系统,那时候人们在研究和测试虚拟内存和资源的概念。
|
||||
|
||||
快进到我们发表此文的 2023 年,虚拟机已经无处不在,涵盖从个人电脑,到大型企业,再到小型企业。每个人以某种或其他方式都在使用虚拟机。
|
||||
|
||||
考虑到所有这些,显然,虚拟机非常有用。但是,它是如何工作的,我们具体用它来做什么?
|
||||
|
||||
> 💡
|
||||
> - 裸机 = 实体的物理电脑,例如你的 PC 或笔记本电脑
|
||||
> - 宿主操作系统 = 安装在你实体电脑上的操作系统
|
||||
> - 客户操作系统 = 在虚拟机内运行的操作系统
|
||||
> - 虚拟机(VM)= 是虚拟化应用的通用术语
|
||||
|
||||
### 虚拟机如何运作
|
||||
|
||||
![][3]
|
||||
|
||||
理解虚拟化的概念会有助于你弄清楚虚拟机是如何运作的。
|
||||
|
||||
回顾我们在一篇文章中的描述:
|
||||
|
||||
> “虚拟化为你提供了计算机硬件的抽象概念,以便你创建虚拟机(VM)、网络、存储等。”
|
||||
|
||||
**虚拟化**允许用户在虚拟环境中利用物理系统的资源。这使得一个进程可以单独地使用资源,而不会影响物理计算机。
|
||||
|
||||
而**虚拟机就是运用这一能力的过程**,在此你会得到以虚拟磁盘、内存,及其他配置文件形式的虚拟资源,让你能在其上运行操作系统。
|
||||
|
||||
你或许已经熟悉一些能帮助你创建这些虚拟机的 [专为 Linux 的虚拟化软件][4]。
|
||||
|
||||
为了详细展示虚拟机和物理计算机之间的技术差异,这里提供一张图帮助你理解:
|
||||
|
||||
![][6]
|
||||
|
||||
### 我们为什么需要使用虚拟机?
|
||||
|
||||
虚拟机已经成为一种多功能的概念,对于几乎每一个小任务都十分实用,这也是你应该 [在虚拟机中运行 Linux][7] 的其中一个理由。
|
||||
|
||||
不仅对个人用户有帮助,虚拟机在云计算的领域中也起着重要的作用,而云计算是构成互联网必不可少的一部分。
|
||||
|
||||
![][8]
|
||||
|
||||
下面是虚拟机能够帮助你完成的一些任务:
|
||||
|
||||
* 软件测试
|
||||
* 操作系统测试
|
||||
* 为临时的网络浏览会话增强你的在线隐私
|
||||
* 在不影响物理计算机的情况下进行网络安全研究
|
||||
* 利用虚拟机作为服务器,使同一硬件上可以托管更多的虚拟机,(从而让硬件资源使用更加高效)
|
||||
* 各种开发活动,拥有了更强大的迁移、复制等功能
|
||||
* 利用虚拟机在云中复制系统
|
||||
|
||||
因此,虚拟机的隔离能力使我们能采用它进行测试和开发,也使其成为服务器可扩展性和灵活性的核心。
|
||||
|
||||
**建议阅读 📖**
|
||||
|
||||
> [在虚拟机中运行 Linux 的十大原因][8A]
|
||||
|
||||
无论你是学生、专业人员,还是企业,你都会发现虚拟机在某个时间点会发挥出重要的作用。
|
||||
|
||||
### 虚拟机消耗系统资源吗?
|
||||
|
||||
当你创建一个虚拟机在其中运行另一个操作系统时,你会为它分配一些系统资源,主要包括:
|
||||
|
||||
* 处理器:只有当在虚拟机中运行操作系统时才消耗
|
||||
* 内存:只有当在虚拟机中运行操作系统时才消耗
|
||||
* 磁盘空间:创建虚拟机时预留,无论虚拟机是否运行,都会占据一定的空间。
|
||||
|
||||
有些人认为处理器和内存会一直被虚拟机占用,这并不正确。它们只在虚拟机运行操作系统时才会被使用。
|
||||
|
||||
然而,无论虚拟机是否在运行,磁盘空间始终会被占用。
|
||||
|
||||
### 使一切成为可能的虚拟化类型
|
||||
|
||||
如果你对能够帮助创建虚拟机的虚拟化概念感兴趣,那么我将列举并简要解释所有的不同类型。
|
||||
|
||||
<ruby>管理程序<rt>Hypervisor</rt></ruby> 管理着硬件,并将系统资源从虚拟环境中隔离出来。它在技术上被标记为 “<ruby>虚拟机监视器<rt>Virtual Machine Monitor</rt></ruby>(VMM)”。
|
||||
|
||||
而管理程序就是那个**能让我们创建和运行虚拟机的软件**。
|
||||
|
||||
管理程序有两种类型:
|
||||
|
||||
* **一级管理程序** :它直接连接到物理机,用于管理虚拟机的资源。一个很好的例子就是 [KVM][9],它直接集成在 Linux 系统里。
|
||||
* **二级管理程序** :它存在于操作系统上,在操作系统上运行,让你能够管理虚拟机资源等等。例如 [VirtualBox][10]。
|
||||
|
||||
虽然管理程序使虚拟化成为可能,但是各种虚拟化类型则能使你在使用虚拟机时带来更多便利和功能。
|
||||
|
||||
一些相关的类型包括:
|
||||
|
||||
* **存储虚拟化** :这能通过将可用的磁盘空间划分为小块,以被虚拟机使用,从而创建虚拟磁盘。
|
||||
* **网络虚拟化** :允许物理网络连接通过虚拟网络(或者适配器)路由到虚拟机。
|
||||
* **桌面虚拟化** :通过该方式,你可以同时向多台物理设备部署多个虚拟桌面环境。可以从一个中心点配置和管理所有虚拟桌面。
|
||||
|
||||
为了深入了解所有的技术细节,我建议你查阅 [AWS 关于虚拟化的文档][11]。
|
||||
|
||||
### 虚拟机的优势
|
||||
|
||||
![][12]
|
||||
|
||||
虽然你已经通过其使用案例了解到了一些虚拟机带给你的好处,但是我还是想再补充一些你需要知道的要点:
|
||||
|
||||
* 虚拟机能够让你充分地利用硬件资源,而不影响宿主机
|
||||
* 有了虚拟机,你可以自由地进行测试或者做任何你想做的事情。无论是一个极老的应用,或是一个有风险的软件,你都可以完全依赖虚拟机来完成一切,并且不会对你宿主机产生影响
|
||||
* 你可以在一个地方运行多个操作系统,而不需要面对双启动或增加额外的物理驱动器来使用其它操作系统的麻烦。这样可以帮你节省成本,时间,同时避免管理的困扰
|
||||
* 有了虚拟机,你可以在不需增加任何硬件的情况下快速地克隆你的配置。
|
||||
|
||||
### 虚拟机的劣势
|
||||
|
||||
![][13]
|
||||
|
||||
虽然虚拟机在许多场景中都非常有帮助,但是它也有可能带来什么不利影响吗?
|
||||
|
||||
嗯,实际上,使用虚拟机并没有直接的缺点,但是你仍然需要对一些虚拟机可能带来的影响持谨慎态度:
|
||||
|
||||
* 尽管虚拟机被认为能够有效地利用资源,但是如果你不监控它们或者粗心大意地运行多个虚拟机,它们还是有可能会耗尽系统的资源
|
||||
* 虚拟机永远无法替代裸机的体验和性能。无论宿主机有多么强大,虚拟机的运行速度总是比你在物理计算机上预期的要慢
|
||||
* 虚拟机虽然与宿主机隔离,但你必须要注意文件共享可能会将恶意软件暴露给你的宿主机系统
|
||||
|
||||
### 虚拟机的利用广泛
|
||||
|
||||
虚拟机的概念让许多事情变得可能。
|
||||
|
||||
如果没有虚拟机,你认为云计算行业会如何发展?如果每次尝试不同的操作系统都需要重新安装,这将带来多大的不方便?
|
||||
|
||||
💬 无论是哪种形式,每个电脑用户或服务器用户都需要虚拟机。你对虚拟机有什么看法呢?你会如何定义它?
|
||||
|
||||
*(题图:MJ/be913487-080e-4869-98d9-ccd996f68a7f)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/virtual-machine/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:ChatGPT
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/content/images/2023/08/windows-without-menu.png
|
||||
[2]: https://itsfoss.com/content/images/2023/06/origin.png
|
||||
[3]: https://itsfoss.com/content/images/2023/06/vm.png
|
||||
[4]: https://itsfoss.com/virtualization-software-linux/
|
||||
[5]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png
|
||||
[6]: https://itsfoss.com/content/images/2023/06/vm-vs-physical-computer.png
|
||||
[7]: https://itsfoss.com/why-linux-virtual-machine/
|
||||
[8]: https://itsfoss.com/content/images/2023/06/why-we-use-vm.png
|
||||
[8A]: https://itsfoss.com/why-linux-virtual-machine/
|
||||
[9]: https://www.linux-kvm.org/page/Main_Page?ref=itsfoss.com
|
||||
[10]: https://www.virtualbox.org/?ref=itsfoss.com
|
||||
[11]: https://aws.amazon.com/what-is/virtualization/?ref=itsfoss.com
|
||||
[12]: https://itsfoss.com/content/images/2023/08/advantage.png
|
||||
[13]: https://itsfoss.com/content/images/2023/08/disadvantage.png
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/02/221631eu7kz2vqk2kvwtzv.jpg
|
@ -3,13 +3,17 @@
|
||||
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16151-1.html"
|
||||
|
||||
从 Ubuntu 桌面上删除主文件夹图标
|
||||
简单技巧:从 Ubuntu 桌面上删除主文件夹图标
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> 对于不想在桌面上看到主文件夹图标的 Ubuntu 用户,这里有一个简单技巧。
|
||||
|
||||
Ubuntu 使用定制的 GNOME 版本,由于侧边启动器,它的外观与旧的 Unity 桌面有些相似。
|
||||
|
||||
普通 GNOME 和 Ubuntu 的 GNOME 之间的另一个区别是桌面上主文件夹和回收站的使用。这些图标就在那里,以便你可以快速访问它们。
|
||||
@ -22,25 +26,23 @@ Ubuntu 使用定制的 GNOME 版本,由于侧边启动器,它的外观与旧
|
||||
|
||||
### 在 Ubuntu 中隐藏桌面上的主文件夹图标
|
||||
|
||||
这是你需要做的。
|
||||
你只需要这样做:
|
||||
|
||||
**在 Ubuntu 中按 Super + D [键盘快捷键][2]访问桌面**。
|
||||
**在 Ubuntu 中按 `Super + D` [键盘快捷键][2]访问桌面**。
|
||||
|
||||
现在**右键单击桌面上的空白区域**。
|
||||
|
||||
从右键单击上下文菜单中,**选择桌面图标设置**。
|
||||
从右键单击上下文菜单中,**选择<ruby>桌面图标设置<rt>Desktop Icons Settings</rt></ruby>**。
|
||||
|
||||
![Right click on the desktop and click the Desktop Icons Settings][3]
|
||||
|
||||
它将在“设置”应用中打开 Ubuntu 桌面设置选项。你也可以通过打开“设置”应用并转到侧边栏中的“Ubuntu 桌面”选项来访问它。
|
||||
它将在“<ruby>设置<rt>Settings</rt></ruby>”应用中打开 <ruby>Ubuntu 桌面<rt>Ubuntu Desktop</rt></ruby>设置选项。你也可以通过打开“设置”应用并转到侧边栏中的“Ubuntu 桌面”选项来访问它。
|
||||
|
||||
在这里,你将看到**显示个人文件夹的切换选项**。将其关闭以禁用桌面上的主文件夹图标。
|
||||
在这里,你将看到**<ruby>显示个人文件夹<rt>Show Personal folder</rt></ruby>的切换选项**。将其关闭以禁用桌面上的主文件夹图标。
|
||||
|
||||
![Disable the Show Personal folder button][4]
|
||||
|
||||
💡
|
||||
|
||||
想要恢复主文件夹图标吗? 再次切换它。
|
||||
> 💡 想要恢复主文件夹图标吗? 再次切换它。
|
||||
|
||||
### 使用命令行禁用主文件夹图标
|
||||
|
||||
@ -49,9 +51,7 @@ Ubuntu 使用定制的 GNOME 版本,由于侧边启动器,它的外观与旧
|
||||
打开终端并使用以下命令。
|
||||
|
||||
```
|
||||
|
||||
gsettings set org.gnome.shell.extensions.ding show-home false
|
||||
|
||||
gsettings set org.gnome.shell.extensions.ding show-home false
|
||||
```
|
||||
|
||||
效果将是立竿见影的。
|
||||
@ -59,14 +59,14 @@ Ubuntu 使用定制的 GNOME 版本,由于侧边启动器,它的外观与旧
|
||||
要恢复图标,请使用相同的命令,但使用 `true` 而不是 `false`:
|
||||
|
||||
```
|
||||
|
||||
gsettings set org.gnome.shell.extensions.ding show-home true
|
||||
|
||||
gsettings set org.gnome.shell.extensions.ding show-home true
|
||||
```
|
||||
|
||||
看到那有多简单了吗? 也可以采取类似的步骤来删除回收站图标。
|
||||
|
||||
![][5]
|
||||
> **[如何在 Ubuntu 中移走桌面的回收站图标][5]**
|
||||
|
||||
*(题图:MJ/84c2e427-a8b3-40b7-a753-22f020800242)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -85,4 +85,5 @@ via: https://itsfoss.com/ubuntu-remove-home-icon/
|
||||
[2]: https://itsfoss.com/ubuntu-shortcuts/
|
||||
[3]: https://itsfoss.com/content/images/2023/08/access-ubuntu-desktop-icon-settings.png
|
||||
[4]: https://itsfoss.com/content/images/2023/08/disable-home-folder-icon-on-ubuntu-desktop.png
|
||||
[5]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png
|
||||
[5]: https://itsfoss.com/remove-trash-icon-ubuntu-desktop/
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/02/153353a01ouhl1a5svhym0.jpg
|
@ -0,0 +1,221 @@
|
||||
[#]: subject: "Using Your Phone as Camera and Mic in Ubuntu Linux"
|
||||
[#]: via: "https://itsfoss.com/ubuntu-phone-camera-mic/"
|
||||
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "ChatGPT"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16168-1.html"
|
||||
|
||||
将手机作为你的 Linux 桌面的摄像头和麦克风
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> 当你的桌面系统缺乏网络摄像头和专用麦克风时,你可以考虑使用智能手机。这里将教你如何在 Ubuntu Linux 中完成这个设置。
|
||||
|
||||
我和许多 Linux 用户一样,使用的是台式机。相较于笔记本电脑,并没有预装摄像头和麦克风。
|
||||
|
||||
若要获得与现代智能手机相媲美的画质,你可能需要购买一款高端的网络摄像头。
|
||||
|
||||
在此教程中,我将逐步指导你如何将你的手机用作麦克风和摄像头,这将非常适用于在线会议场景。
|
||||
|
||||
### Ubuntu 下使用手机的摄像头和麦克风
|
||||
|
||||
> 🚧 本教程采用第三方网站 <https://vdo.ninja/> 来托管音频和视频,因此,这并不是一项完全的开源方案。
|
||||
|
||||
我将指引你完成以下步骤:
|
||||
|
||||
* 安装 OBS (如果你还未安装)
|
||||
* 通过 `vdo.ninja` 生成邀请链接
|
||||
* 设置虚拟音频线缆(用于音频输出)
|
||||
* 配置 OBS 以便从 `vdo.ninja` 重定向音视频流
|
||||
|
||||
首先,我们来看第一步。
|
||||
|
||||
> 📋 虽然本教程是在 Ubuntu 系统下完成的,但我相信,这些同样可以在其他 Linux 发行版上实现。你只需为你的发行版安装所需的包即可。你可以自行尝试,看看效果如何。
|
||||
|
||||
#### 1、在 Ubuntu 中安装 OBS
|
||||
|
||||
OBS(Open Broadcaster Software)是众多用于录制和直播视频的优秀软件之一,许多直播者都选择使用 OBS 在各个数字化平台进行直播。
|
||||
|
||||
幸运的是,OBS 已经包含在 Ubuntu 的默认仓库中,你可以通过以下命令来安装:
|
||||
|
||||
```
|
||||
sudo apt install obs-studio
|
||||
```
|
||||
|
||||
#### 2、通过 VDO.ninja 生成直播邀请
|
||||
|
||||
在这一节,我将教你如何在 vdo.ninja 上生成一个直播邀请,进而从你的手机上开始直播音频和视频。
|
||||
|
||||
首先,访问 [VDO.ninja][1] 并点击 “<ruby>创建可重用的邀请<rt>Create Reusable Invite</rt></ruby>”:
|
||||
|
||||
![][2]
|
||||
|
||||
接下来你会看到很多选项,包括质量设置,添加视频效果等。我推荐你使用默认设置,因为高质量视频需要更快的处理速度和更多的带宽。
|
||||
|
||||
为了创建一个链接,你只需要点击 “<ruby>生成邀请链接<rt>GENERATE THE INVITE LINK</rt></ruby>” 按钮:
|
||||
|
||||
![][3]
|
||||
|
||||
完成后你会看到:
|
||||
|
||||
* 你需要用你的手机扫描的二维码(当然,你也可以选择使用链接)。
|
||||
* OBS 的链接。
|
||||
|
||||
**稍后我会在本教程中继续介绍 OBS 配置,所以请暂时别关闭这个窗口。**
|
||||
|
||||
首先,用你的手机扫描二维码,它会将你跳转到 VDO.ninja 的另一个页面,此时你需要:
|
||||
|
||||
* 选择 “<ruby>共享你的相机<rt>Share your Camera</rt></ruby>” 选项。
|
||||
* 在视频源中选择使用前置或后置摄像头(默认为前置)。
|
||||
* 点击 “<ruby>开始<rt>Start</rt></ruby>” 按钮后,它将开始在 OBS 连接的页面上进行直播。
|
||||
|
||||
![][4]
|
||||
|
||||
#### 3、在 Ubuntu 上为 OBS 配置虚拟线缆
|
||||
|
||||
> 🚧 这种设置方法仅适用于 PulseAudio,并且在重启系统后虚拟线缆将被撤销。
|
||||
|
||||
首先,我们来解释一下“<ruby>虚拟线缆<rt>virtual cable</rt></ruby>”的概念,以及为何我们需要它来将手机做为摄像头和麦克风使用。
|
||||
|
||||
虚拟线缆是一种用于将音频流从一个应用传输到另一个应用的软件。
|
||||
|
||||
然而遗憾的是,它只支持 Windows 和 macOS。
|
||||
|
||||
啥?!那我为什么还要介绍这个呢?
|
||||
|
||||
答案其实很简单。我找到了一种变通方法,你可以在**当前的会话**中获得与虚拟线缆类似的功能。
|
||||
|
||||
要设置虚拟线缆,首先需要使用以下命令加载 `module-null-sink` 模块:
|
||||
|
||||
```
|
||||
pactl load-module module-null-sink sink_name=Source
|
||||
```
|
||||
|
||||
然后,执行下面的命令创建一个名为 `VirtualMic` 的虚拟音源:
|
||||
|
||||
```
|
||||
pactl load-module module-virtual-source source_name=VirtualMic master=Source.monitor
|
||||
```
|
||||
|
||||
这两个命令将返回一些数字,但无需对其过多关注。
|
||||
|
||||
接下来,前往系统“<ruby>设置<rt>Settings</rt></ruby>”,找到“<ruby>声音<rt>Sound</rt></ruby>”部分的设置:
|
||||
|
||||
![][5]
|
||||
|
||||
然后进入 “<ruby>输入<rt>Input</rt></ruby>” 部分,在此你会找到选择输入设备的选项。
|
||||
|
||||
将 “VirtualMic” 设为输入设备:
|
||||
|
||||
![][6]
|
||||
|
||||
这样就设置完了!
|
||||
|
||||
不过,如我之前所述,一旦你重启电脑,虚拟音频的设置就会被撤销,如果你打算经常使用手机作为摄像头和麦克风,这可能会造成一定的不便。
|
||||
|
||||
为了解决这个问题,你可以为这两个命令 [创建别名][7],例如,为命令创建别名:`vc1` 和 `vc2`。
|
||||
|
||||
完成后,你就可以像这样 [一次执行两个命令][8]:`vc1 && vc2`。
|
||||
|
||||
#### 4、配置 OBS 从手机直播音视频
|
||||
|
||||
开始阶段,你需要打开我之前告诉你不要关闭的 VDO.ninja 标签页,并复制 OBS 链接:
|
||||
|
||||
![][9]
|
||||
|
||||
然后启动 OBS,在 “<ruby>源<rt>Sources</rt></ruby>” 区域你会看到一个 “➕(加号)”按钮,点击这个按钮并选择 “<ruby>浏览<rt>Browser</rt></ruby>”。
|
||||
|
||||
接着会弹出一个对话框,让你创建或选择一个源,你只需按下 “OK” 按钮即可:
|
||||
|
||||
![][10]
|
||||
|
||||
最后,将已经复制的链接粘贴进 “URL” 字段:
|
||||
|
||||
![][11]
|
||||
|
||||
然后你将能看到 OBS 正在使用你手机的摄像头:
|
||||
|
||||
![][12]
|
||||
|
||||
不过为了从你的手机接收音频,还有一些额外步骤需要执行。
|
||||
|
||||
首先,在菜单中点击 “<ruby>文件<rt>File</rt></ruby>” 并选择 “<ruby>设置<rt>Settings</rt></ruby>”:
|
||||
|
||||
![][13]
|
||||
|
||||
在出现的设置选项中选择 “<ruby>音频<rt>Audio</rt></ruby>”,然后寻找到 “<ruby>高级<rt>Advanced</rt></ruby>” 区域。
|
||||
|
||||
在 “高级” 区域里,你能找到 “<ruby>监控设备<rt>Monitoring Device</rt></ruby>” 的选项,这里你需要选择 “Source Audio/Sink sink”:
|
||||
|
||||
![][14]
|
||||
|
||||
点击 “<ruby>应用<rt>Apply</rt></ruby>” 保存更改。
|
||||
|
||||
对于大部分用户,此时音频应该已经能够正常工作了。如果你的音频依然无法工作,那么你可以按照以下步骤操作。
|
||||
|
||||
在 “<ruby>音频混音器<rt>Audio Mixer</rt></ruby>” 区域,可能显示的是 “<ruby>浏览<rt>Browser</rt></ruby>” 或 “<ruby>桌面音频<rt>Desktop Audio</rt></ruby>”,也可能两者都显示。
|
||||
|
||||
点击 “桌面音频” 或 “浏览” 旁边的三个点(在我这个例子中,是 “桌面音频”),并选择 “<ruby>高级音频属性<rt>Advanced Audio Properties</rt></ruby>”:
|
||||
|
||||
![][15]
|
||||
|
||||
然后,对于 “浏览” 和 “桌面音频”,都选择 “<ruby>监控和输出<rt>Monitor and Output</rt></ruby>”:
|
||||
|
||||
![][16]
|
||||
|
||||
这样就可以了!现在你可以从你的手机上享受摄像头和麦克风的功能了。
|
||||
|
||||
#### 5、测试所有设置
|
||||
|
||||
为了测试这个设置,我在我们读书俱乐部的周会上用我的手机做为摄像头和麦克风,效果极佳。
|
||||
|
||||
![][17]
|
||||
|
||||
你可以看到,上图显示摄像头和麦克风都在正常工作,这真的让我笑容满面 😸。
|
||||
|
||||
视频质量会取决于你的网络带宽,所以在开始重要的会议前,确保你有稳定的网络连接。
|
||||
|
||||
### 结语
|
||||
|
||||
作为一个没有摄像头和麦克风的台式计算机用户,我必须依靠笔记本或手机来参加工作会议,这让我感到非常烦躁。
|
||||
|
||||
需要注意的是,每次重启机器后,你都需要重新配置虚拟线缆,但这并不费时,因为只需要执行两条命令即可。
|
||||
|
||||
我已经多次使用这种解决方案,每一次都顺利运行。我真的希望你也能得到同样的结果。
|
||||
|
||||
*(题图:MJ/223b56b7-ffcc-4311-bfa6-8a25bfd5ad11)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/ubuntu-phone-camera-mic/
|
||||
|
||||
作者:[Sagar Sharma][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:ChatGPT
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/sagar/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://vdo.ninja/
|
||||
[2]: https://itsfoss.com/content/images/2023/08/Click-on-create-reusable-Invite-button.png
|
||||
[3]: https://itsfoss.com/content/images/2023/08/Click-on-the-generate-invite-link-button.png
|
||||
[4]: https://itsfoss.com/content/images/2023/08/setup-vdo.ninja-on-phone.png
|
||||
[5]: https://itsfoss.com/content/images/2023/08/Open-sound-settings.png
|
||||
[6]: https://itsfoss.com/content/images/2023/08/Choose-virtul-mic-as-an-audio-input-in-Linux-to-use-phone-s-camera-and-mic-.png
|
||||
[7]: https://linuxhandbook.com/linux-alias-command/
|
||||
[8]: https://linuxhandbook.com/run-multiple-commands/
|
||||
[9]: https://itsfoss.com/content/images/2023/08/Copy-link-for-OBS.png
|
||||
[10]: https://itsfoss.com/content/images/2023/08/Create-new-source-for-streaming-in-OBS-to-use-camera-and-mic-of-your-phone-in-Ubuntu-1.png
|
||||
[11]: https://itsfoss.com/content/images/2023/08/Paste-VDO.ninja-link-in-OBS-to-use-your-phone-s-camera-and-mic-in-Ubuntu-Linux.png
|
||||
[12]: https://itsfoss.com/content/images/2023/08/Stream-audio-and-video-from-your-phone-to-Ubuntu-Linux-using-OBS.png
|
||||
[13]: https://itsfoss.com/content/images/2023/08/Open-settings-in-OBS.png
|
||||
[14]: https://itsfoss.com/content/images/2023/08/Choose-virtual-audio-in-OBS-to-use-phone-s-mic-in-ubuntu-Linux.png
|
||||
[15]: https://itsfoss.com/content/images/2023/08/Choose-advanced-option-to-use-audio-from-phone-in-Ubuntu-linux-using-OBS.png
|
||||
[16]: https://itsfoss.com/content/images/2023/08/Enable-monitor-and-output-for-OBS.png
|
||||
[17]: https://itsfoss.com/content/images/2023/08/Using-phone-s-camera-and-mic-in-Ubuntu-Linux.png
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/07/155221kxjpb8j8j998xj50.jpg
|
@ -0,0 +1,89 @@
|
||||
[#]: subject: "Murena Fairphone 5 Unveiled With DeGoogled /e/OS"
|
||||
[#]: via: "https://news.itsfoss.com/murena-fairphone-5/"
|
||||
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: "ChatGPT"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16157-1.html"
|
||||
|
||||
Murena Fairphone 5 发布:搭载去谷歌化的 /e/OS 系统
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> Murena Fairphone 5 现已接受预订,其特色在于搭载了备受瞩目的、以隐私保护为中心的移动操作系统 /e/OS。
|
||||
|
||||
[Murena][1] 是一家在欧洲的智能手机和云服务供应商,凭借其去谷歌化的产品,受到了越来越多的关注。他们和智能手机制造商合作,提供开箱即用的隐私关注体验。
|
||||
|
||||
在近期的发布中,他们公布了其最新款产品;这款 **定制版 Fairphone 5** ,最初由 [Fairphone][2] 制造,其突出特点是预装了以隐私保护为重点的开源移动操作系统 /e/OS。
|
||||
|
||||
**推荐阅读** 📖
|
||||
|
||||
> **[五款去谷歌化的基于安卓的操作系统][3]**
|
||||
|
||||
> 🚧 这款智能手机可能并不适合每一个人,各位在决定是否购买前,最好先做好研究,了解如何适应一种定制的安卓使用体验。这篇文章并非对该设备的背书,也不是我们的赞助内容。
|
||||
|
||||
### 📱 对 Murena Fairphone 5,有何期待?
|
||||
|
||||
![][4]
|
||||
|
||||
Murena Fairphone 5 是一款 **支持 5G 的智能手机**,**运行着** [/e/OS][5]**,这是一个去谷歌化的,**开源的手机操作系统**,系统内精选了多款软件,以取代各类谷歌应用。
|
||||
|
||||
这款操作系统 **基于安卓 13 开发**,而这款手机则是 **通过环保的方式制造出来**。
|
||||
|
||||
Murena Fairphone 5 的外壳使用了回收材料,并且凭借其模块化设计,着重强调了 **维修的便利性**。
|
||||
|
||||
你也许会问;**这款手机的硬件配置如何?**
|
||||
|
||||
![][6]
|
||||
|
||||
事实上,Murena Fairphone 5 是一款 **配置非常全面的智能手机**,拥有以下硬件规格:
|
||||
|
||||
* **CPU:[Qualcomm QCM 6490][7]**
|
||||
* **RAM:8 GB**
|
||||
* **储存空间:256 GB**
|
||||
* **可扩展存储:最高能达 2 TB(SDXC)**
|
||||
* **显示屏:90hz 6.46" 的 POLED**
|
||||
* **电池:4200 mAH 的锂离子电池**
|
||||
* **网络连接:支持 2G、3G、4G、5G**
|
||||
* **Wi-Fi:支持 802.11 a/b/g/n/ac/ax**
|
||||
* **蓝牙:5.2 + LE**
|
||||
* **NFC:有**
|
||||
|
||||
你可以在 [官方公告][8] 中了解更多有关这款去掉谷歌化的智能手机的信息。
|
||||
|
||||
### 🛒 获取 Murena Fairphone 5
|
||||
|
||||
Murena Fairphone 5 提供了三种不同的颜色选择:**黑色、蓝色和透明色**,而 RAM 和存储容量均为同样的 8 GB/256 GB 组合。
|
||||
|
||||
它 **目前在部分国家已开始接受预订**,可以通过 [官方网站][9] 预购,并且还有 “选择你最喜欢的手机壳” 的优惠。预计将在九月底开始发货。
|
||||
|
||||
> **[Murena Fairphone 5][9]**
|
||||
|
||||
💬 我个人很喜欢 “透明色” 这款,它有点像 Nothing 手机,因为这款颜色可以让人看见 Murena Fairphone 5 的内部构造。你更喜欢哪一款颜色呢?
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/murena-fairphone-5/
|
||||
|
||||
作者:[Sourav Rudra][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/sourav/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://murena.com/?sld=5
|
||||
[2]: https://www.fairphone.com/
|
||||
[3]: https://itsfoss.com/android-distributions-roms/
|
||||
[4]: https://news.itsfoss.com/content/images/2023/08/Murena_Fairphone5_1.jpg
|
||||
[5]: https://e.foundation/e-os/
|
||||
[6]: https://news.itsfoss.com/content/images/2023/08/Murena_Fairphone5_2.jpg
|
||||
[7]: https://www.qualcomm.com/products/internet-of-things/industrial/building-enterprise/qcm6490
|
||||
[8]: https://murena.com/murena-fairphone-5-is-now-available-for-pre-order-at-murena-com/
|
||||
[9]: https://murena.com/shop/smartphones/brand-new/murena-fairphone-5/?sld=5
|
||||
[0]: https://news.itsfoss.com/content/images/size/w1304/2023/08/murena-fairphone-5-ft.png
|
@ -0,0 +1,87 @@
|
||||
[#]: subject: "PyCharm and Android Studio to Feature Wayland Support for Linux"
|
||||
[#]: via: "https://news.itsfoss.com/intellij-wayland-support/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: "ChatGPT"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16148-1.html"
|
||||
|
||||
PyCharm 和 Android Studio 为 Linux 版本增加 Wayland 支持
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> 如果你是在 Linux 或 WSL 环境下进行开发的开发者,以下这个好消息会让你兴奋起来。
|
||||
|
||||
JetBrains 平台近日宣布,基于 IntelliJ 的 IDE 最终将实现对 Wayland [显示服务器][1] 协议的支持。可能你并不知道,PyCharm 和 IntelliJ IDEA 就是搭建在 IntelliJ 平台之上的出色 IDE,而由谷歌打造的 Android Studio 也是同样的应用。
|
||||
|
||||
Wayland 协议逐步成为 Linux 发行版的默认选择,与 X11 相比,它可以提供更快、更安全和更稳定的体验。如果你使用的编程环境能够支持 Wayland,那么用户体验会得到显著提升。
|
||||
|
||||
但是,具体表现在哪些方面有所增强,他们怎么实现这个目标的呢?下文有详细解说。
|
||||
|
||||
### 分数缩放和 WSL 集成
|
||||
|
||||
使用 [Linux 版本的 IntelliJ IDEA][3] 等 IDE 的用户,终将借助分数缩放,可以在高分辨率显示屏上自定义字体、图标的大小。
|
||||
|
||||
无论是多屏幕环境,还是高清显示屏,都可以通过 Wayland 的支持享受到提升的 IDE 体验。
|
||||
|
||||
你不再需要担心 IDE 的文本显示模糊的问题。
|
||||
|
||||
不仅仅局限于原生的 Linux 环境,同样适用于使用 Windows 的 Linux 子系统(WSL),即那些 “[Bash on Windows][4]” 用户。
|
||||
|
||||
Wayland 的支持将确保你可以无缝集成 WSL。
|
||||
|
||||
此外,作为用户,你还将享受到 Wayland 带来的以下新特性:
|
||||
|
||||
* 弹出式窗口
|
||||
* HiDPI 支持
|
||||
* 窗口的交互式缩放
|
||||
|
||||
总的说来,通过实现 Wayland 的支持,基于 IntelliJ 的 IDE 将会更具响应速度,实现更高的稳定性和安全性。
|
||||
|
||||
### 构建 Wayland 工具集
|
||||
|
||||
让 Java 支持 Wayland 是件颇具挑战性的任务,但 IntelliJ 已经找到了应对之策。
|
||||
|
||||
JetBrains 和 Oracle 的桌面团队共同开发出一个基于 OpenJDK 21 的 **Wayland 工具集**。
|
||||
|
||||
由于拥有该工具集,你将获得一系列能力,包括:
|
||||
|
||||
* 基于软件的渲染。
|
||||
* 极简的窗口装饰。
|
||||
* 弹出窗口,包括应用于顶层菜单的窗口。
|
||||
* 提供包括不同每台监视器比例的 HiDPI 和多监视器支持。
|
||||
|
||||
此外,他们还计划添加剪贴板**拖放支持**、**基于 Vulkan 的加速渲染**,以及**使用快捷键在窗口间切换**的功能。
|
||||
|
||||
你可以通过访问 [OpenJDK 维基][5] 来关注 Wayland 工具集的开发进程。
|
||||
|
||||
至于 Wayland 支持的具体实现时间并未明确,但可以肯定的是,这项工作正在进行中,而且这也表明 IntelliJ 平台也正在关注以 Linux 为主的用户群。
|
||||
|
||||
如需获取更多信息,你可以访问 [官方公告][6] 进行查阅。
|
||||
|
||||
💬对于 IntelliJ 决定在其 IDE 加入 Wayland 原生支持你有什么看法呢?欢迎在评论区分享你的意见。
|
||||
|
||||
*(题图:MJ/dbd4f013-3c11-4c2d-83c1-c11df7c8c17b)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/intellij-wayland-support/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:ChatGPT
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/display-server/
|
||||
[2]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png
|
||||
[3]: https://itsfoss.com/install-intellij-ubuntu-linux/
|
||||
[4]: https://itsfoss.com/install-bash-on-windows/
|
||||
[5]: https://wiki.openjdk.org/display/wakefield/Work+breakdown
|
||||
[6]: https://blog.jetbrains.com/platform/2023/08/wayland-support/
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/01/155506s4y763kpkilia3z9.jpg
|
@ -0,0 +1,109 @@
|
||||
[#]: subject: "Fedora Linux Flatpak cool apps to try for September"
|
||||
[#]: via: "https://fedoramagazine.org/fedora-linux-flatpak-cool-apps-to-try-for-september/"
|
||||
[#]: author: "Eduard Lucena https://fedoramagazine.org/author/x3mboy/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16167-1.html"
|
||||
|
||||
Fedora Linux Flatpak 九月推荐应用
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> 本文介绍了 Flathub 中可用的项目以及安装说明。
|
||||
|
||||
[Flathub][4] 是获取和分发适用于所有 Linux 的应用的地方。它由 Flatpak 提供支持,允许 Flathub 应用在几乎任何 Linux 发行版上运行。
|
||||
|
||||
请阅读 “[Flatpak 入门][5]”。为了启用 Flathub 作为你的 Flatpak 提供商,请参照 [Flatpak 站点][6] 上的说明。
|
||||
|
||||
### Flatseal
|
||||
|
||||
[Flatseal][7] 是一个图形程序,用于检查和修改 Flatpak 应用的权限。这是 Flatpak 世界中最常用的应用之一,它允许你提高 Flatpak 应用的安全性。然而,它需要谨慎使用,因为会让你的权限过于开放。
|
||||
|
||||
使用起来非常简单:只需启动 Flatseal,选择一个应用,然后修改其权限即可。进行更改后重新启动应用。如果出现任何问题,只需按重置按钮即可。
|
||||
|
||||
你可以通过单击网站上的安装按钮或手动使用以下命令来安装 Flatseal:
|
||||
|
||||
```
|
||||
flatpak install flathub com.github.tchx84.Flatseal
|
||||
```
|
||||
|
||||
你也可以在 Fedora 的仓库中找到它的 RPM 包。
|
||||
|
||||
### Reco
|
||||
|
||||
[Reco][8] 是一款录制应用,可帮助你回忆和收听之前听过的内容。
|
||||
|
||||
一些功能包括:
|
||||
|
||||
* 同时录制麦克风和系统的声音。
|
||||
* 支持 ALAC、FLAC、MP3、Ogg Vorbis、Opus 和 WAV 等格式。
|
||||
* 定时录制。
|
||||
* 自动保存或始终询问保存位置的工作流程。
|
||||
* 应用退出时保存录制。
|
||||
|
||||
我经常用它来帮助我录制 [Fedora Podcast][9] 的采访。
|
||||
|
||||
你可以单击网站上的安装按钮或手动使用以下命令来安装 Reco:
|
||||
|
||||
```
|
||||
flatpak install flathub com.github.ryonakano.reco
|
||||
```
|
||||
|
||||
### Mini Text
|
||||
|
||||
[Mini Text][10] 是一个非常小且简约的文本查看器,具有最少的编辑功能。它是一个对要粘贴的文本的进行编辑地方,它没有保存功能。它使用 GTK4,其界面与 GNOME 很好地集成。
|
||||
|
||||
我发现这对于保留我想要粘贴到任何地方的数据非常有用,它没有不需要的和/或不需要的富文本功能,只是具有最少编辑功能的纯文本。
|
||||
|
||||
你可以通过单击网站上的安装按钮或使用以下命令手动安装 Mini Text:
|
||||
|
||||
```
|
||||
flatpak install flathub io.github.nokse22.minitext
|
||||
```
|
||||
|
||||
### Tagger
|
||||
|
||||
[Tagger][11] 是一个音乐标签编辑器,适合我们这些仍然在本地保存音乐的人。
|
||||
|
||||
其中一些功能是:
|
||||
|
||||
* 一次编辑多个文件的标签和专辑封面,甚至跨子文件夹。
|
||||
* 支持多种音乐文件类型(mp3、ogg、flac、wma 和 wav)。
|
||||
* 轻松将文件名转换为标签,将标签转换为文件名。
|
||||
|
||||
你可以通过单击网站上的安装按钮或手动使用以下命令来安装 Tagger:
|
||||
|
||||
```
|
||||
flatpak install flathub org.nickvision.tagger
|
||||
```
|
||||
|
||||
*(题图:MJ/1d2d2ed0-a1c9-4cd6-954b-8ac76ddb8912)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://fedoramagazine.org/fedora-linux-flatpak-cool-apps-to-try-for-september/
|
||||
|
||||
作者:[Eduard Lucena][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://fedoramagazine.org/author/x3mboy/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://fedoramagazine.org/wp-content/uploads/2023/08/flatpak_cool_app_september-816x345.jpg
|
||||
[2]: https://unsplash.com/@joannakosinska?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
|
||||
[3]: https://unsplash.com/photos/mjC9apK53a8?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
|
||||
[4]: https://flathub.org
|
||||
[5]: https://fedoramagazine.org/getting-started-flatpak/
|
||||
[6]: https://flatpak.org/setup/Fedora
|
||||
[7]: https://flathub.org/apps/com.github.tchx84.Flatseal
|
||||
[8]: https://flathub.org/apps/com.github.ryonakano.reco
|
||||
[9]: https://fedoraproject.org/podcast/
|
||||
[10]: https://flathub.org/apps/io.github.nokse22.minitext
|
||||
[11]: https://flathub.org/apps/org.nickvision.tagger
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/07/105242i7jei9xj1zrqqfek.jpg
|
@ -0,0 +1,165 @@
|
||||
[#]: subject: "GNOME 45 Packs in Exciting Upgrades: Here's What's New"
|
||||
[#]: via: "https://news.itsfoss.com/gnome-45/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: "ChatGPT"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16150-1.html"
|
||||
|
||||
GNOME 45 引入激动人心的更新
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> 这里列出了在 GNOME 45 中你可以期待的新特性和改进。
|
||||
|
||||
每次 GNOME 的主要版本更新对我来说都充满了激动。
|
||||
|
||||
你可以始终期待看到 **以 UI 为中心的变化**、**功能增强**,以及**核心应用的更新**。
|
||||
|
||||
[GNOME 44][1] 引入了一些有趣的新功能,比如能够检查正在后台运行的应用、在文件选择器中的缩略图视图等等。
|
||||
|
||||
GNOME 45 计划于 **9 月 20 日** 发布,但你已经可以在其 beta 版本中预览到更新的功能集。现在,让我们一起看看在 GNOME 45 中有哪些你可以期待的新内容。
|
||||
|
||||
### GNOME 45:有哪些新变化?
|
||||
|
||||
![][2]
|
||||
|
||||
主要的亮点包括:
|
||||
|
||||
* 新的核心应用
|
||||
* 系统设置中的新隐私中心
|
||||
* 系统设置中新的“<ruby>关于<rt>About</rt></ruby>”面板
|
||||
* 日历应用的新图标
|
||||
* 对 Nautilus 文件管理器 UI 的微调
|
||||
|
||||
我将对所有这些改变进行分类,以帮助你更好的理解。那么,让我们立即开始:
|
||||
|
||||
#### Nautilus 的改善
|
||||
|
||||
![当前的 Nautilus 文件管理器(左侧)以及改进后的设计(右侧)][3]
|
||||
|
||||
在过去,Nautilus 文件管理器没有进行过任何 UI 调整。但是,在 GNOME 45 中,它做了一些微妙的 UI 改版,在侧边栏中你可以看到汉堡菜单。
|
||||
|
||||
总的来说,左侧边栏和窗口的其他部分更具区分度。
|
||||
|
||||
你还可以期待其性能提升和搜索功能的改善。
|
||||
|
||||
#### 系统设置的变更
|
||||
|
||||
自 GNOME 43 和 44 版本起,GNOME 在努力改进并清理<ruby>系统设置<rt>Settings</rt></ruby>,以便在简化系统设置选项的访问性的同时,简化所有的可用选项。
|
||||
|
||||
在这里,“<ruby>隐私<rt>Privacy</rt></ruby>”菜单已经改版,选项的展示更加有条理且易于访问。
|
||||
|
||||
![][4]
|
||||
|
||||
接下来,“<ruby>关于<rt>About</rt></ruby>”区域也进行了调整,以便通过“<ruby>系统详细信息<rt>System Details</rt></ruby>”菜单展示技术信息,如下图所示。
|
||||
|
||||
![][5]
|
||||
|
||||
你需要点击“系统详细信息”来获取关于操作系统和硬件的所有必要技术信息。
|
||||
|
||||
![][6]
|
||||
|
||||
另外,为了让 Linux 新手更轻松上手:
|
||||
|
||||
* 在“<ruby>用户<rt>User</rt></ruby>”面板中增加了弹出的说明,用于解释自动登录设置。
|
||||
* 向“<ruby>分享<rt>Sharing</rt></ruby>”面板中的选项添加了说明,帮助用户理解可用选项。
|
||||
* “<ruby>在线账户<rt>Online Accounts</rt></ruby>”面板进行了一些改进,以提供更细粒度的控制。
|
||||
|
||||
#### 新增的核心应用
|
||||
|
||||
GNOME 45 使用了全新的 [Loupe 图像查看器][7] 应用,替代了“<ruby>GNOME 之眼<rt>Eye of GNOME</rt></ruby>”。
|
||||
|
||||
![][8]
|
||||
|
||||
除此之外,你还可以期待出现“[Snapshot][9]”,这是一个新的摄像应用。它将替代“<ruby>茄子<rt>Cheese</rt></ruby>”并重新命名为“<ruby>相机<rt>Camera</rt></ruby>” 应用。
|
||||
|
||||
同时,GNOME <ruby>图像<rt>Photos</rt></ruby>应用已被移除。
|
||||
|
||||
#### GNOME “软件”应用的升级
|
||||
|
||||
虽然 GNOME <ruby>软件<rt>Software</rt></ruby>应用在初始阶段并未呈现出明显的 UI 变化,但它的价值实实在在地提升了。
|
||||
|
||||
![图片来源:GitLab][10]
|
||||
|
||||
包括以下一些值得注意的变化:
|
||||
|
||||
* 当卸载 Flatpak 包时,会提示你是否移除相关联的应用数据。
|
||||
* 又新增了一项指示器,用于通知哪些更新中包含了安全修复。
|
||||
* 系统更新下载时,会有通知提示。
|
||||
|
||||
#### 核心应用的改进
|
||||
|
||||
各种应用都已进行了更新。首先是“<ruby>地图<rt>Maps</rt></ruby>”应用,其中一些微妙的变化包括将缩放按钮从标题栏移动到地图的覆盖层。
|
||||
|
||||
![][11]
|
||||
|
||||
重构“变更路径”的侧边栏,使其能够适应触摸屏显示器,以及其它一般性的功能。
|
||||
|
||||
接下来是“<ruby>天气<rt>Weather</rt></ruby>”应用,其增大了默认窗口大小以容纳所有温度计小部件。这款应用还可以记住你最后一次设定的窗口大小,便于在你下次打开时,直接展示该大小。
|
||||
|
||||
![][12]
|
||||
|
||||
新的“<ruby>控制台<rt>Console</rt></ruby>”应用现在让你可以选择自定义字体,并设有新的设置窗口。
|
||||
|
||||
![][13]
|
||||
|
||||
总的来说,控制台在多项技术层面进一步优化。
|
||||
|
||||
“<ruby>连接<rt>Connections</rt></ruby>”应用现在可以通过 RDP 连接复制/粘贴文本、图像和文件。
|
||||
|
||||
同时,“<ruby>计算器<rt>Calculator</rt></ruby>”现在支持更多货币,包括尼日利亚奈拉、牙买加元等。
|
||||
|
||||
#### 其他改变
|
||||
|
||||
许多其他改变可能并不很明显,但确实存在。这些包括:
|
||||
|
||||
* 文档扫描应用已迁移至 GTK4。
|
||||
* 核心应用如文本编辑器、联系人、文件、网络、日历等的新应用样式和 [自适应行为][14]。
|
||||
* 性能提升。
|
||||
* 在初次设置过程中对数据收集信息的改进。
|
||||
|
||||
如果需要更深入的了解 GNOME 45 的改变,可以查阅 [发布说明][15]。
|
||||
|
||||
### 如何立即体验 GNOME 45?
|
||||
|
||||
可以在 **Fedora 39 预发布版** 中获得体验。较安全的方式是通过 GNOME Boxes 尝试 **[GNOME OS][16] 夜间构建版**。
|
||||
|
||||
**Ubuntu 23.10** 的日常构建可能很快就会(如果你正在阅读这篇文章,则可能已经提供)集成 GNOME 45。
|
||||
|
||||
当然,最佳的体验方式是等待 Fedora 39 的稳定版发布,或者在 GNOME 45 发布后立即在 Arch Linux 上进行安装。
|
||||
|
||||
*(题图:MJ/7a0bb088-81f1-4763-9281-b4a3b762841f)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/gnome-45/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:ChatGPT
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://news.itsfoss.com/gnome-44-release/
|
||||
[2]: https://news.itsfoss.com/content/images/2023/08/gnome-45-home.jpg
|
||||
[3]: https://news.itsfoss.com/content/images/2023/08/nautilus-file-gnome-45.jpg
|
||||
[4]: https://news.itsfoss.com/content/images/2023/08/gnome-45-privacy-hub.png
|
||||
[5]: https://news.itsfoss.com/content/images/2023/08/gnome-45-system-details-menu.png
|
||||
[6]: https://news.itsfoss.com/content/images/2023/08/gnome-45-system-details.jpg
|
||||
[7]: https://news.itsfoss.com/loupe-image-viewer/
|
||||
[8]: https://news.itsfoss.com/content/images/2023/08/gnome-45-image-viewer.png
|
||||
[9]: https://news.itsfoss.com/gnome-snapshot/
|
||||
[10]: https://news.itsfoss.com/content/images/2023/08/security-updates-gnome-software.png
|
||||
[11]: https://news.itsfoss.com/content/images/2023/08/gnome-maps.png
|
||||
[12]: https://news.itsfoss.com/content/images/2023/08/gnome-weather.png
|
||||
[13]: https://news.itsfoss.com/content/images/2023/08/gnome-45-console-app.jpg
|
||||
[14]: https://blogs.gnome.org/alicem/2023/06/15/rethinking-adaptivity/
|
||||
[15]: https://gitlab.gnome.org/Teams/Design/release-notes/-/issues/36
|
||||
[16]: https://os.gnome.org/
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/02/120332vltxag2gjanx2d6b.jpg
|
@ -0,0 +1,128 @@
|
||||
[#]: subject: "Flarum: An Open-Source Community Platform Like Discourse"
|
||||
[#]: via: "https://news.itsfoss.com/flarum/"
|
||||
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: "ChatGPT"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16158-1.html"
|
||||
|
||||
Flarum:一个像 Discourse 一样的开源社区平台
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> Flarum 可能是一个更好、更简单,或者说更具创新性的 Discourse 替代品。更多信息可在此处获取。新的一天,再来一次初次尝试😎。
|
||||
|
||||
这次,我们为你带来一个叫作 “**Flarum**” 的**开源论坛软件**,它可以作为 Discourse 的备选方案。它的目标是提供一个免费、快速且易于使用的**简洁而具有可定制性的讨论平台**。
|
||||
|
||||
Flarum 还**具有很高的可扩展性** ,允许进行大量的自定义。
|
||||
|
||||
当然,我们可以拥有的开源选项越多越好,对吧?
|
||||
|
||||
让我们一起来看看它能提供什么。
|
||||
|
||||
### Flarum 概述⭐
|
||||
|
||||
![][1]
|
||||
|
||||
Flarum 是**现已中止运营的** [esoTalk][2] 和 [FluxBB][3] 论坛软件套件的继任者。它以优化和快捷的性能为考量,提供了一整套良好的功能。
|
||||
|
||||
Flarum 主要使用 PHP 编程语言开发。它**由志愿者进行维护和管理**,并**依赖于社区的贡献来推动其发展**。
|
||||
|
||||
其主要亮点包括:
|
||||
|
||||
* **高度优化**
|
||||
* **响应式用户接口**
|
||||
* **移动优先设计**
|
||||
* **非常的灵活性**
|
||||
|
||||
> 💡 Flarum 和 Discourse 使用了不同的技术栈,同时它们也有细微但实用的功能区别。
|
||||
>
|
||||
> 例如,Discourse 的时间线控制功能就是受到 Flarum 的启发。
|
||||
|
||||
### 初步印象 👨💻
|
||||
|
||||
我开始的测试是登录 Flarum 的 [官方论坛][4],使用的是我的 GitHub 账户。
|
||||
|
||||
登录后我进入了 **首页**,那里展示了所有带有相关标签的讨论,并显示了各讨论的回复数。
|
||||
|
||||
**顶部菜单**具有通常的**搜索栏**,还有**查看草稿**、**通知**、**带有用户名/头像的菜单**以及一些**重要设定**的选项。
|
||||
|
||||
![][5]
|
||||
|
||||
首页还包括一个**侧边栏菜单**,用户可以通过这个开始新的讨论、访问标签,或者查看私有讨论。
|
||||
|
||||
我必须说,我发现它和 Discourse 存在一些相似性,但这并不是什么坏事!
|
||||
|
||||
这里有一个让我熟悉的时间线滚动条,我可以用它跳转到帖子中的不同回复。
|
||||
|
||||
![这是一个多么可爱的小袋鼠!][6]
|
||||
|
||||
然后有一个 “<ruby>关注<rt>Follow</rt></ruby>” 按钮,允许使用者选择**三种独特的设置**。其中一项是默认设置(没有任何通知),另一个是获得帖子通知,最后一个则是忽略某个帖子。
|
||||
|
||||
![][7]
|
||||
|
||||
此后,我关注到用户如何**互动回应某个帖子**,它提供了三种方式,即“<ruby>回复<rt>Reply</rt></ruby>”该帖子,“<ruby>喜欢<rt>Like</rt></ruby>”它或者“<ruby>标记<rt>Flag</rt></ruby>”它并让版主审阅。
|
||||
|
||||
![][8]
|
||||
|
||||
**回帖体验**也很好,编辑器上方会显示实时预览。它还提供了保存回复至草稿、最小化编辑器、全屏编辑以及关闭编辑器等选项。
|
||||
|
||||
![][9]
|
||||
|
||||
最后,我查看了**用户设置**,它完整地包括了通常的设置,并对通知提供了精细的控制。它还展示了与我的 Flarum 账户关联的第三方账户。
|
||||
|
||||
![][10]
|
||||
|
||||
总的来说,Flarum 与广受欢迎的 Discourse 提供了相似的舒适体验,它具有**有益的特性差异,且其技术栈易于安装和管理。**
|
||||
|
||||
Flarum 经常更新,自从发布以来,已经取得了长足的发展。它也是 Linux 服务器上最好的 [开源论坛软件][11] 之一,事实已经证明了这一点。
|
||||
|
||||
**推荐阅读** 📖
|
||||
|
||||
> **[11 个你可以部署在 Linux 服务器上的开源论坛软件][12]**
|
||||
|
||||
### 📥 获取 Flarum
|
||||
|
||||
你既可以选择遵循 [官方文档][13] 中所述的指南**自托管 Flarum**,也可以选择使用 [Free Flarum][14],这是一项与 Flarum 团队无关的**免费社区服务**。
|
||||
|
||||
目前,他们并未提供任何付费托管方案。
|
||||
|
||||
> **[Flarum][15]**
|
||||
|
||||
你同样可以通过访问其 [GitHub 仓库][16] 来查阅源代码。
|
||||
|
||||
💬 你对于 Flarum 有什么看法?你会试一试吗?
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/flarum/
|
||||
|
||||
作者:[Sourav Rudra][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/sourav/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://news.itsfoss.com/content/images/2023/08/Flarum_1.png
|
||||
[2]: https://github.com/esotalk/esoTalk
|
||||
[3]: https://github.com/fluxbb/fluxbb
|
||||
[4]: https://discuss.flarum.org/
|
||||
[5]: https://news.itsfoss.com/content/images/2023/08/Flarum_2.png
|
||||
[6]: https://news.itsfoss.com/content/images/2023/08/Flarum_3.png
|
||||
[7]: https://news.itsfoss.com/content/images/2023/08/Flarum_4.png
|
||||
[8]: https://news.itsfoss.com/content/images/2023/08/Flarum_5.png
|
||||
[9]: https://news.itsfoss.com/content/images/2023/08/Flarum_6-1.png
|
||||
[10]: https://news.itsfoss.com/content/images/2023/08/Flarum_7.png
|
||||
[11]: https://itsfoss.com/open-source-forum-software/
|
||||
[12]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png
|
||||
[13]: https://docs.flarum.org/install
|
||||
[14]: https://freeflarum.com/
|
||||
[15]: https://flarum.org/
|
||||
[16]: https://github.com/flarum/flarum
|
||||
[17]: https://itsfoss.community/uploads/default/optimized/1X/f274f9749e3fd8b4d6fbae1cf90c5c186d2f699c_2_180x180.png
|
||||
[0]: https://news.itsfoss.com/content/images/size/w1304/2023/08/flarum-first-look-ft.png
|
@ -0,0 +1,81 @@
|
||||
[#]: subject: "Linux Users Beware! GNOME 45 is Bad News for Extensions"
|
||||
[#]: via: "https://news.itsfoss.com/gnome-45-extensions/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: "ChatGPT"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16161-1.html"
|
||||
|
||||
Linux 用户注意!GNOME 45 将影响所有扩展!
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> GNOME 45 是一次重要的升级,但对扩展的影响并不令人满意!
|
||||
|
||||
每当 GNOME 升级,总会有一些扩展遭遇问题,这点并不新鲜。但如今,到了 GNOME 45,每个扩展都将面临问题! 😱
|
||||
|
||||
那么,究竟是什么原因呢?让我为你解释一番。
|
||||
|
||||
### GNOME 45 扩展的变化
|
||||
|
||||
每次升级,都意味着某种技术上的提升或者变化。
|
||||
|
||||
而 [GNOME 45][1] 带来了许多激动人心的更新,除了这一项。
|
||||
|
||||
> **[GNOME 45 引入激动人心的更新][2]**
|
||||
|
||||
**GNOME Shell 的 JavaScript 部分发生了变化**。如果你还不清楚的话,你需要知道的是,JavaScript(以及相关的模块)负责扩展的用户界面,包括面板、菜单、对话框等。
|
||||
|
||||
技术上的变更主要在于,GNOME Shell 和扩展开始使用 ESModules,而不是 GJS 的自定义导入系统。
|
||||
|
||||
虽然这个变革旨在鼓励开发人员用更加标准化的方式来处理 GNOME Shell 和扩展的代码,但可能会造成大量困扰。
|
||||
|
||||
**为什么呢?**
|
||||
|
||||
那是因为旧有系统与新的模块系统存在不兼容问题。
|
||||
|
||||
以下是 **Florian Müllner** 在谈及这个技术问题时 [提到][3] 的:
|
||||
|
||||
> 模块加载的方式与脚本有所不同,有些语句,特别是 `import` 和 `export`,只在模块中有效。这就意味着,如果一个模块使用了这些语句(几乎是必然的),那么用旧系统导入这个模块就会出现语法错误。
|
||||
|
||||
那么问题影响范围呢?**所有 GNOME 扩展都将受影响。**
|
||||
|
||||
* 所有针对老版本 GNOME 设计的扩展将无法在 GNOME 45 上运行(除非迁移)。
|
||||
* 专门为 GNOME 45 设计的新扩展,也无法在老版本上运行。
|
||||
|
||||
好消息是,GNOME 扩展的开发人员可以支持多版本的 GNOME,但他们将需要付出更多努力,为 GNOME 45 之前和之后的版本分别上传新的版本。
|
||||
|
||||
因此,即使开发人员选择了这样做,并使用 [迁移指南][4] 将他们的扩展移植到新系统中,这仍将花费他们更多的时间,而在此期间,终端用户(也就是我们)在使用 GNOME 45 时会遇到扩展无法运行的情况。
|
||||
|
||||
**这并不是一个好的用户体验,对不对?** 😒
|
||||
|
||||
GNOME 的升级从未能完美处理扩展的兼容问题,现在,**情况变得更糟**。
|
||||
|
||||
虽然我并不太依赖现有的任何 [GNOME 扩展][5],但很多用户在日常使用中都会用到。对他们来说,一个可能破坏使用体验的升级绝非喜事。
|
||||
|
||||
💬 你如何看待 GNOME 45 中对扩展的变动?在下方评论中分享你的想法吧。
|
||||
|
||||
*(题图:MJ/d67e0592-2395-4a7d-bda6-0ec3136e40db)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/gnome-45-extensions/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:ChatGPT
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://news.itsfoss.com/gnome-45/
|
||||
[2]: https://linux.cn/article-16150-1.html
|
||||
[3]: https://blogs.gnome.org/shell-dev/2023/09/02/extensions-in-gnome-45/
|
||||
[4]: https://gjs.guide/extensions/upgrading/gnome-shell-45.html#esm
|
||||
[5]: https://itsfoss.com/gnome-shell-extensions/
|
||||
[6]: https://ssl.gstatic.com/gnews/logo/google_news_1024.png
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/05/153130xbp37iw9i3cc77m7.jpg
|
@ -0,0 +1,119 @@
|
||||
[#]: subject: "Nitrux 3.0 Release Improves its Update Tool and More"
|
||||
[#]: via: "https://news.itsfoss.com/nitrux-3-0-release/"
|
||||
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: "ChatGPT"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16163-1.html"
|
||||
|
||||
Nitrux 3.0 发布:优化了更新工具及其它功能
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> Nitrux 3.0 正式发布,带来核心级别的改进。在这查看详情。
|
||||
|
||||
作为 [Linux 发行版中最美观的系统][1] 之一,Nitrux 以其精美的用户界面和强大的不变性功能吸引着大家。
|
||||
|
||||
自我们上一次了解 Nitrux已经过了 [一段时间][2]。根据最近的公告,Nitrux 3.0 在系统底层加入了许多优化。
|
||||
|
||||
下面我们简单回顾一下这次的更新内容。
|
||||
|
||||
### 🆕 Nitrux 3.0:有何新亮点?
|
||||
|
||||
![][3]
|
||||
|
||||
Nitrux 3.0 基于 **Linux 内核 6.4.12-2-liquorix**,这是一个旨在提升系统响应速度的 Linux 内核,Nitrux 3.0 专注于 **提升性能**、**硬件兼容性**以及 **核心应用的更新**。
|
||||
|
||||
本次发布的重点改进包括:
|
||||
|
||||
* MauiKit 的更新
|
||||
* 系统更新的优化
|
||||
* 桌面环境的升级
|
||||
|
||||
### MauiKit 的更新
|
||||
|
||||
![MauiKit 应用的图像(仅供参考)][4]
|
||||
|
||||
Nitrux 3.0 版本中包括了最近发布有许多性能提升,以及为 Qt6 迁移打基础的 **MauiKit 和 Maui 框架 3.0.1**。
|
||||
|
||||
这也包括了 **更新后的应用**,如 MauiKit FileBrowsing、MauiKit TextEditor、MauiKit Calendar、MauiKit Documents 和 MauiKit Terminal。
|
||||
|
||||
他们也 **针对 MauiKit 3.0.1 调整了 Maui Apps 和 NX 软件中心**。你可以在 [此处][5] 查看更多关于 MauiKit 的更新信息。
|
||||
|
||||
**推荐阅读** 📖
|
||||
|
||||
> **[11 个面向未来、不可变 Linux 发行版][6]**
|
||||
|
||||
### OS 更新的优化
|
||||
|
||||
**[Nitrux 更新工具系统][7] 更新到了 1.1.3 版本**。这次更新带来了两个主要变化:
|
||||
|
||||
首先,kexec 相关的代码被移除,因为现在有了 “<ruby>内核引导<rt>Kernel Boot</rt></ruby>”。
|
||||
|
||||
其次是新的 “急救” 功能,作为一种在没有意料到的事件中,如导致根目录不一致和无法使用的中断,确保备份冗余的方式。
|
||||
|
||||
这项新功能旨在让用户在活动会话中恢复根分区,以便于从这种情况中恢复。
|
||||
|
||||
### 桌面环境升级
|
||||
|
||||
![][8]
|
||||
|
||||
在桌面环境方面,Nitrux 3.0 集成了 [KDE Plasma 5.27.7][9] 并进行了一些优化。
|
||||
|
||||
现在,NX 桌面新增了一个可以重启 Plasma 的选项,修复了与 “自动登录” 功能相关的一些问题,并且现在英伟达 X 服务器设置能正确显示 GPU 的信息了。
|
||||
|
||||
### 🛠️ 其它的变更和优化
|
||||
|
||||
除此之外,本版本还包括一些其它的更新,最显著的有:
|
||||
|
||||
* 集成了 [Firefox 117][10]
|
||||
* 更新至 **MESA 23.3\~git2309020600.1ae3c4\~oibaf\~j**,这是一个测试版的版本。
|
||||
* 针对影响英特尔和 AMD 处理器的 Downfall 和 Inception 硬件漏洞的 **安全补丁**。
|
||||
* 加入了一个检查以 **确认英伟达专有驱动的存在**,从而在使用英伟达硬件的设备上不使用“内核引导”功能。
|
||||
* **Nitrux 的 Calamares 配置进行了优化**,比如移除了一个已弃用的内核参数,为默认的图形会话启用 “自动登录” 等等。
|
||||
|
||||
请查阅官方 [公告博客][11],和 [发布说明][12] 了解更多关于本版本以及如何更新已有安装的详情。
|
||||
|
||||
### 📥 下载 Nitrux 3.0
|
||||
|
||||
如果你需要新安装,你可以从 [官方网站][14] 下载 ISO,或者使用以下的官方链接:
|
||||
|
||||
* [直接下载][15]
|
||||
* [FOSS Torrents][16]
|
||||
* [SourceForge 镜像][17]
|
||||
|
||||
> **[Nitrux 3.0][15]**
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/nitrux-3-0-release/
|
||||
|
||||
作者:[Sourav Rudra][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:ChatGPT
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/sourav/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/beautiful-linux-distributions/
|
||||
[2]: https://news.itsfoss.com/nitrux-2-7-release/
|
||||
[3]: https://news.itsfoss.com/content/images/2023/09/Nitrux_3.0_1.png
|
||||
[4]: https://news.itsfoss.com/content/images/2023/09/Nitrux_3.0_2.jpg
|
||||
[5]: https://mauikit.org/blog/maui-release-briefing-3/
|
||||
[6]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png
|
||||
[7]: https://github.com/Nitrux/nuts
|
||||
[8]: https://news.itsfoss.com/content/images/2023/09/Nitrux_3.0_3.png
|
||||
[9]: https://news.itsfoss.com/kde-plasma-5-27-release/
|
||||
[10]: https://news.itsfoss.com/firefox-117-release/
|
||||
[11]: https://nxos.org/changelog/release-announcement-nitrux-3-0-0/
|
||||
[12]: https://nxos.org/notes/notes-nitrux-3-0-0/
|
||||
[13]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png
|
||||
[14]: https://nxos.org/
|
||||
[15]: https://nxos.org/get/latest
|
||||
[16]: https://fosstorrents.com/distributions/nitrux/
|
||||
[17]: https://sourceforge.net/projects/nitruxos/files/Release/ISO
|
||||
[0]: https://news.itsfoss.com/content/images/size/w1304/2023/09/nitrux-3-0.png
|
@ -0,0 +1,241 @@
|
||||
[#]: subject: "How to Create Persistent Live USB of Ubuntu"
|
||||
[#]: via: "https://itsfoss.com/ubuntu-persistent-live-usb/"
|
||||
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: "ChatGPT"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16165-1.html"
|
||||
|
||||
如何创建 Ubuntu 持久化立付 U 盘
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> 体验带有持久化的立付 U 盘,你在立付会话中做出的所有改动都会被保存。在此教程中,你将学习如何创建一个持久化的 U 盘。
|
||||
|
||||
如果我告诉你,你能将完整的 Ubuntu 系统装载在一个可移动的 U 盘上,你会有何感想?
|
||||
|
||||
在外置 U 盘上 [安装 Ubuntu][1] 过程相当复杂。一种更容易的方法是制作一个带有持久化存储的 <ruby>立付<rt>Live</rt></ruby> U 盘,这样你对 U 盘做出的改动都会被保存下来。
|
||||
|
||||
请相信我,这个过程跟使用 [BalenaEtcher][2] 或其他任何刻录工具创建可引导驱动器的过程十分相似。
|
||||
|
||||
然而,我们在开始之前,让我们先弄清楚持久化立付 U 盘是什么。
|
||||
|
||||
### 什么是持久化立付 U 盘?
|
||||
|
||||
当你使用立付 Linux U 盘时,你在 <ruby>立付会话<rt>Live session</rt></ruby> 中做出的所有更改,在重启以后都将丢失。比如,你必须重新连接 Wi-Fi,并且你下载的文件及安装的应用均不会被保留。而持久化立付 U 盘将会为你保存这些所有的更改。
|
||||
|
||||
这样,你就可以将该 U 盘作为一个外置操作系统使用,它将会保存你所做出的所有更改,比如创建用户账号,安装软件包,和一切你通常在电脑上做的事情。
|
||||
|
||||
当然,保存的文件数量将取决于你使用的 U 盘的大小!
|
||||
|
||||
但你已经明白我要表达的意思了吧。那么,我们开始学习如何创建一个带有持久性的 Ubuntu 立付 U 盘吧。
|
||||
|
||||
### 如何创建一个持久化的 Ubuntu U 盘
|
||||
|
||||
在这个教程中,我将引导你完成一个持久化的 Ubuntu U 盘的制作过程:
|
||||
|
||||
* 通过在 Windows 上的 Rufus 工具
|
||||
* 或者,通过在 Linux 上的 mkusb 工具
|
||||
|
||||
你可以参照教程中的适合你的部分。
|
||||
|
||||
> 📋 本教程中,你将会创建一个 Ubuntu 的持久化 U 盘。并非所有的 Linux 发行版都支持数据的持久化存储,所以这个方法可能并非所有的发行版本适用。
|
||||
|
||||
### 方法 1:在 Windows 上创建持久化的 Ubuntu U 盘
|
||||
|
||||
在 Windows 上创建一个持久化的 Ubuntu U 盘,我会使用 Rufus,这是一款自由开源工具,专门用于将 ISO 文件刻录到 U 盘上。
|
||||
|
||||
请访问 [Rufus 的官方下载页面][3],获取 Windows 版本的可执行文件:
|
||||
|
||||
![][4]
|
||||
|
||||
然后,打开 Rufus,它将要求以管理员身份运行;请授予该权限,因为你即将在外部驱动器上做改动,需要相应的权限。
|
||||
|
||||
接下来,根据以下步骤使用 Rufus 创建持久化 U 盘:
|
||||
|
||||
* 选中 U 盘设备(如果只有一个 U 盘,它将默认被选中)。
|
||||
* 点击 “<ruby>选择<rt>Select</rt></ruby>” 按钮,在文件管理器中选择 ISO 文件。
|
||||
* 你可以使用滑块或直接设定持久化分区的大小(可以放心地设定为最大值)。
|
||||
* 其他选项保持默认设置(除非你清楚在做什么)。
|
||||
* 点击 “<ruby>开始<rt>Start</rt></ruby>” 按钮,开始进行刻录。
|
||||
|
||||
![][5]
|
||||
|
||||
该程序你会告诉你,选中的驱动器上的所有数据将会被删除,所以你可以放心忽略这个警告。
|
||||
|
||||
完成后,我们可以来瞧瞧如何在 Windows 中直接启动到 UEFI 设置。
|
||||
|
||||
#### 通过 U 盘启动(简化版)
|
||||
|
||||
这个方法应适用于大多数用户,如果无效,你总是可以选择传统的方式,那就是重新启动系统并按下 `Esc`、`Delete`、`F1`、`F2`、`F10`、`F11` 或 `F12` 等按键。
|
||||
|
||||
步骤如下:按 `Win + X`,然后以管理员身份启动 Windows PowerShell:
|
||||
|
||||
![][6]
|
||||
|
||||
一旦你看见提示符,直接运行以下命令:
|
||||
|
||||
```
|
||||
shutdown.exe /r /fw
|
||||
```
|
||||
|
||||
这将会计划一个关机动作,稍后,你会进入到 UEFI 固件设置。
|
||||
|
||||
到了这步,选择 U 盘作为首选的启动选项并保存设置:
|
||||
|
||||
![][7]
|
||||
|
||||
你会看到一个正常的 GRUB 屏幕:
|
||||
|
||||
![][8]
|
||||
|
||||
当你启动后,选择试用 Ubuntu 的选项,然后你所做的任何改动都可以被保存下来,即使你重新启动了电脑也无所谓。
|
||||
|
||||
### 方法 2:在 Ubuntu Linux 上创建持久化 Ubuntu U 盘
|
||||
|
||||
> 🚧 请注意,这种方法主要适用于 Ubuntu 和 Debian 的 ISO。
|
||||
|
||||
如果你还不知道,`mkusb` 是一个带有 GUI 的工具,让你能够将 ISO 文件刷到磁盘驱动器上,并且有附加功能,例如在 Ubuntu 上创建持久化驱动器。
|
||||
|
||||
你需要添加 `mkusb` 的 PPA 来进行安装,具体命令如下:
|
||||
|
||||
```
|
||||
sudo add-apt-repository ppa:mkusb/ppa
|
||||
```
|
||||
|
||||
要使改变生效,需要更新软件库索引:
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
最后,安装 `mkusb` 以及其他相关软件包:
|
||||
|
||||
```
|
||||
sudo apt install --install-recommends mkusb mkusb-nox usb-pack-efi
|
||||
```
|
||||
|
||||
就这样!
|
||||
|
||||
首先,从系统菜单启动 `mkusb` 工具,它会提示你输入超级用户密码:
|
||||
|
||||
![][9]
|
||||
|
||||
操作完成后,它会提示你所有驱动器上的数据将会被新数据覆盖。
|
||||
|
||||
只需简单地点击 “OK” 按钮即可:
|
||||
|
||||
![][10]
|
||||
|
||||
然后它会显示 `mkusb` 工具能执行的多项操作,你需要选择第一选项 “<ruby>安装(制作一个启动设备)<rt>Install (make a boot device)</rt></ruby>”:
|
||||
|
||||
![][11]
|
||||
|
||||
接下来,它会显示许多安装选项,你需要选择第三个选项 “<ruby>持久化立付(仅针对 Debian 和 Ubuntu)<rt>'Persistent live' - only Debian and Ubuntu</rt></ruby>”:
|
||||
|
||||
![][12]
|
||||
|
||||
在下一个步骤中,它会让你在多种方法/工具中选择一个,如果没有使用特定类型的版本,例如超精简版本,建议使用第一个名为 “dus-Iso2usb” 的方法:
|
||||
|
||||
![][13]
|
||||
|
||||
接着,它会让你从文件管理器中选择你需要的 ISO 文件:
|
||||
|
||||
![][14]
|
||||
|
||||
工具会显示已选 ISO 文件的名称,以及创建持久化 U 盘所要使用的工具:
|
||||
|
||||
![][15]
|
||||
|
||||
下一步,你需要选择驱动器将之前选择的 ISO 文件刷入:
|
||||
|
||||
![][16]
|
||||
|
||||
以上全部完成后,将会有 3 个选项供你选择。如果你不确定使用哪一个,那么就点击 “<ruby>使用默认<rt>Use defaults</rt></ruby>” 按钮,但是大多数用户选择第二个选项 “grold” 即可(我也是选择这个):
|
||||
|
||||
![][17]
|
||||
|
||||
检查一切都无误后,点击 “<ruby>开始<rt>Go</rt></ruby>” 开始刷新过程:
|
||||
|
||||
![][18]
|
||||
|
||||
现在,刷入过程已经开始了!
|
||||
|
||||
![][19]
|
||||
|
||||
**注意,这个刷入过程会比你使用 BalenaEtcher 刷入要长一些时间!**
|
||||
|
||||
完成后,会有通知告诉你,过程已经完成,此时你可以取下 U 盘,然后重新插上,以查看更改的内容:
|
||||
|
||||
![][20]
|
||||
|
||||
#### 从持久化 U 盘启动
|
||||
|
||||
如果你要从 U 盘启动,通常可以重启你的系统,连续按下对应的按钮即可,但这已经是旧方法了!
|
||||
|
||||
在 Linux 中,有一种更为简便的方式访问 BIOS,你只需在终端执行以下命令:
|
||||
|
||||
```
|
||||
systemctl reboot --firmware-setup
|
||||
```
|
||||
|
||||
然后,进入启动菜单并将 U 盘设置为首选的启动选项:
|
||||
|
||||
![][22]
|
||||
|
||||
一旦你从 U 盘启动,你将有两个选项:
|
||||
|
||||
* 带有持久化模式的 ISO
|
||||
* 以实时模式进行启动
|
||||
|
||||
如其名,你需要选择第一个选项以启动进入 Ubuntu 的持久化模式:
|
||||
|
||||
![][23]
|
||||
|
||||
现在,你可以进行各种修改,如安装你喜欢的软件包,[创建新用户][24] 等等!
|
||||
|
||||
我希望这个指南对你有所帮助。
|
||||
|
||||
*(题图:MJ/423c72d6-d6eb-4146-acd5-1e58eed11f41)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/ubuntu-persistent-live-usb/
|
||||
|
||||
作者:[Sagar Sharma][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:ChatGPT
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/sagar/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/intsall-ubuntu-on-usb/
|
||||
[2]: https://itsfoss.com/install-etcher-linux/
|
||||
[3]: https://rufus.ie/en/
|
||||
[4]: https://itsfoss.com/content/images/2023/09/Download-Rufus-to-create-persistant-Ubuntu-drive-in-Windows.png
|
||||
[5]: https://itsfoss.com/content/images/2023/09/Use-rufus-to-create-Ubuntu-persistant-drive.png
|
||||
[6]: https://itsfoss.com/content/images/2023/09/Start-Windows-powershell-as-admin.png
|
||||
[7]: https://itsfoss.com/content/images/2023/09/Boot-from-UEFI-1.jpg
|
||||
[8]: https://itsfoss.com/content/images/2023/09/Boot-from-persisted-storage-USB-drive-made-using-Rufus-on-Windows-machine.png
|
||||
[9]: https://itsfoss.com/content/images/2023/08/Start-mkusb-tool-from-system-menu.png
|
||||
[10]: https://itsfoss.com/content/images/2023/08/Data-will-be-wiped-warning-.png
|
||||
[11]: https://itsfoss.com/content/images/2023/08/Select-the-first-option-in-mkusb-tool-to-create-persistent-USB-drive-of-Ubuntu.png
|
||||
[12]: https://itsfoss.com/content/images/2023/08/Select-the-persistent-option.png
|
||||
[13]: https://itsfoss.com/content/images/2023/08/Select-the-grub-option.png
|
||||
[14]: https://itsfoss.com/content/images/2023/08/Select-an-ISO-file-to-create-persistent-USB-from-Ubuntu.png
|
||||
[15]: https://itsfoss.com/content/images/2023/08/Showing-seelcted-ISO-file.png
|
||||
[16]: https://itsfoss.com/content/images/2023/08/Choose-drive-to-create-persistent-drive.png
|
||||
[17]: https://itsfoss.com/content/images/2023/08/Choose-bootloader.png
|
||||
[18]: https://itsfoss.com/content/images/2023/08/Select-go-ahead-option-in-mkusb-to-create-persistent-USB-drive.png
|
||||
[19]: https://itsfoss.com/content/images/2023/08/Flashing-process-to-make-persistent-usb-of-Ubuntu.png
|
||||
[20]: https://itsfoss.com/content/images/2023/08/Persistent-drive-has-been-made.png
|
||||
[21]: https://itsfoss.com/access-uefi-from-linux/
|
||||
[22]: https://itsfoss.com/content/images/2023/09/Boot-from-UEFI.jpg
|
||||
[23]: https://itsfoss.com/content/images/2023/08/Boot-from-persisted-storage-USB-drive.png
|
||||
[24]: https://learnubuntu.com/add-delete-users/
|
||||
[25]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/06/162606ivjl1zoohb1h8vuo.jpg
|
@ -0,0 +1,108 @@
|
||||
[#]: subject: "Linux Lite 6.6 Release Features an Updated Welcome App and Icon Theme"
|
||||
[#]: via: "https://news.itsfoss.com/linux-lite-6-6-release/"
|
||||
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16173-1.html"
|
||||
|
||||
Linux Lite 6.6 发布:更新了欢迎应用和图标主题
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> Linux Lite 6.6 可能没有大的变化,但看起来它专注于有用的部分。
|
||||
|
||||
Linux Lite 是 [最好的轻量级 Linux 发行版][1] 之一,提供 [类似 Windows][2] 的体验。
|
||||
|
||||
我们上次了解它是在今年早些时候,当时 [Linux Lite 6.4][3] 添加了一些重大更改。现在,他们又发布了一个小版本,承诺进行大量改进。
|
||||
|
||||
### 🆕 Linux Lite 6.6:有什么新变化?
|
||||
|
||||
![][4]
|
||||
|
||||
该版本被称为 2012 年以来最大的 Linux Lite 版本之一,增加了数千行新代码。Linux Lite 6.6 由可靠的 [Linux 内核 5.15][5] 提供支持,是一个适度的更新。
|
||||
|
||||
一些亮点包括:
|
||||
|
||||
* **改进了 Lite 欢迎应用**
|
||||
* **免费 AI 聊天机器人**
|
||||
* **支持新语言**
|
||||
|
||||
### 改进的 Lite Welcome
|
||||
|
||||
![][6]
|
||||
|
||||
“Lite Welcome” 应用已更新,当未安装 Linux Lite 时,在立付会话中显示 “<ruby>立即安装<rt>Install Now</rt></ruby>” 按钮。现在它将检查它是否在立付环境中运行并相应地显示按钮。
|
||||
|
||||
这将是直接将 Linux Lite 安装到系统上的便捷方法。此次更新还为欢迎应用添加了另一个选项。下面有更多内容。
|
||||
|
||||
### Free A.I. Chatbot
|
||||
|
||||
![][8]
|
||||
|
||||
欢迎应用程序中的一个新链接可直接前往 Linux Lite 的网络聊天机器人,名为 “Free A.I. Chatbot”。
|
||||
|
||||
用户可以使用它来获得与 Linux Lite 相关的支持。尽管我希望这是系统中内置的专用应用,但拥有它仍然很有趣。
|
||||
|
||||
你还可以使用网络浏览器直接 [访问][9] 它。
|
||||
|
||||
### 支持新语言
|
||||
|
||||
![][10]
|
||||
|
||||
这是上述代码行的主要部分,Linux Lite 6.6 中添加了对 **22 种语言**的支持。
|
||||
|
||||
我用“印地语”测试了它,效果很好。尽管某些选项仍然以英语显示,但很高兴看到它们**试图更具包容性**,提供更广泛的语言选项。
|
||||
|
||||
**提供这些语言的区域**包括主菜单、右键单击菜单、文件夹名称、Linux Lite 应用名称、桌面图标和“我的电脑”菜单名称。
|
||||
|
||||
### 🛠️ 其他更改和改进
|
||||
|
||||
其余的变化包括新壁纸和应用更新。其中一些是:
|
||||
|
||||
* Chrome 116
|
||||
* VLC 3.0.16
|
||||
* Gimp 2.10.30
|
||||
* LibreOffice 7.5.6
|
||||
* Thunderbird 102.15
|
||||
* 新壁纸
|
||||
* 包含最新的 Papirus 图标主题。
|
||||
* 硬件数据库目前拥有超过 85,000 条提交内容。
|
||||
|
||||
有关这些变化的更详细的展望,请访问其 [公告][11]。
|
||||
|
||||
### 📥 下载 Linux Lite 6.6
|
||||
|
||||
你可以前往 [官方网站][12] 获取此版本或单击下面的按钮。
|
||||
|
||||
> **[Linux Lite 6.6][12]**
|
||||
|
||||
💬 你对 Linux Lite 6.6 版本有何看法?
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/linux-lite-6-6-release/
|
||||
|
||||
作者:[Sourav Rudra][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/sourav/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/lightweight-linux-beginners/
|
||||
[2]: https://itsfoss.com/windows-like-linux-distributions/
|
||||
[3]: https://news.itsfoss.com/linux-lite-6-4-released/
|
||||
[4]: https://news.itsfoss.com/content/images/2023/09/Linux_Lite_6.6_1.png
|
||||
[5]: https://news.itsfoss.com/linux-kernel-5-15-release/
|
||||
[6]: https://news.itsfoss.com/content/images/2023/09/Linux_Lite_6.6_2.png
|
||||
[8]: https://news.itsfoss.com/content/images/2023/09/Linux_Lite_6.6_3.png
|
||||
[9]: https://www.linuxliteos.com/chatai/
|
||||
[10]: https://news.itsfoss.com/content/images/2023/09/Linux_Lite_6.6_4.png
|
||||
[11]: https://www.linuxliteos.com/forums/release-announcements/linux-lite-6-6-final-released/
|
||||
[12]: https://www.linuxliteos.com/download.php
|
||||
[0]: https://news.itsfoss.com/content/images/size/w1304/2023/09/linux-lite-6-6-release.png
|
@ -0,0 +1,137 @@
|
||||
[#]: subject: "Librum: Promising New Open-Source e-book Reader That Lets You Create an Online Library"
|
||||
[#]: via: "https://news.itsfoss.com/librum-reader/"
|
||||
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: "ChatGPT"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-16174-1.html"
|
||||
|
||||
Librum:为你打造在线图书馆的新兴开源电子书阅读器
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> Librum,这是一个全新的,配备云图书馆功能的电子书阅读器。
|
||||
|
||||
你是不是酷爱阅读?或者正在逐渐沦为书虫?
|
||||
|
||||
放心,我们为你准备了绝佳的解决方案!
|
||||
|
||||
Librum 阅读器,这是一个全新的电子阅读器产品,它打造的阅读环境 “能让每个人都发现阅读的乐趣,轻松愉快地阅读”。
|
||||
|
||||
尽管它并非你通常会使用的那种离线阅读器应用,但在 [Linux 最佳电子阅读器][1] 的榜单上,很可能是候选之一。因为有了 Librum,你可以 **充分发挥云技术的优势**,任何时候,无论使用哪个设备,都能随时访问个人图书馆。
|
||||
|
||||
下面,就让我来为你详细介绍一下。
|
||||
|
||||
### Librum:概览 ⭐
|
||||
|
||||
![][2]
|
||||
|
||||
Librum 基本上是通过 **QML** 和 **C++** 构建的,这款 **开源的电子书阅读器** 允许你以直观的界面将内容同步到云端。
|
||||
|
||||
你可以免费开始使用,初次注册便有 **2GB 的云存储空间**。此外,一些尚未最终确定的高级套餐也即将推出。
|
||||
|
||||
> 🚧 Librum 阅读器目前正在积极开发中,尚未发布稳定版。
|
||||
|
||||
Librum 还配有丰富的功能,其中一些突出之处包括:
|
||||
|
||||
* **图书馆的个性化定制**
|
||||
* **书籍的元数据编辑**
|
||||
* **云同步**
|
||||
* **现代化的界面**
|
||||
|
||||
**推荐阅读** 📖
|
||||
|
||||
> **[8 个 Linux 上的最佳电子书阅读器][3]**
|
||||
|
||||
#### 初步体验 👨💻
|
||||
|
||||
我首次尝试在我的 [Ubuntu 22.04][4] 系统上运行 Librum。但是,在我使用该应用之前,我 **必须先创建一个账户**,提供电子邮件地址和密码。
|
||||
|
||||
虽然 Librum 的主打功能是基于云的体验,但我 **还是希望它能有一个专门的离线模式**,可以让我在注册之前做一些试用,或者作为一种可选择的备用模式。
|
||||
|
||||
不过,我还是继续前进,并登录了这款应用。我使用 “<ruby>添加书籍<rt>Add books</rt></ruby>” 功能导入了一些书籍,然后它们就在主页标签下被整齐地排列好,提供了对其排序、过滤或添加标签的选项。
|
||||
|
||||
![][5]
|
||||
|
||||
**电子书的阅读体验** 几乎与你对现代阅读器应用的期待一致,拥有最简界面,还有放大文本、进入全屏模式等功能。
|
||||
|
||||
![][6]
|
||||
|
||||
**汉堡菜单的选项内含有一些基本功能**。最上面三个选项可以让你打印、保存或分享当前打开的电子书。
|
||||
|
||||
此外的选项还包括:**文本转语音功能**、**连续/垂直显示页面**、**反转颜色**、**同步书籍**,以及**访问设置菜单**。
|
||||
|
||||
![][7]
|
||||
|
||||
我也试用了一下 **搜索功能**:我可以快速地查找特定的词汇,并可以高亮显示所有结果、区分大小写或搜索整个单词。
|
||||
|
||||
![][8]
|
||||
|
||||
**目录功能** 也相当方便使用,你可以使用搜索栏查找特定章节。
|
||||
|
||||
![][9]
|
||||
|
||||
以上就是我使用 Librum 阅读器的电子书阅读体验。
|
||||
|
||||
但是等一下,这还没完,**还有更多的东西等着你去发现!**
|
||||
|
||||
#### 未来计划的功能 📝
|
||||
|
||||
![][10]
|
||||
|
||||
我注意到还有很多功能正在开发中。
|
||||
|
||||
其中一个是 **一个在应用内部的免费书店**,**计划将提供超过 70,000 本的电子书籍**;另一个是 **统计页面**,将会显示 **个人的阅读统计信息**。
|
||||
|
||||
最后一个是 **插件页面**,应该是提供 **进一步增强 Librum 功能的插件**。
|
||||
|
||||
![][11]
|
||||
|
||||
预计在接下来的几个月内会发布稳定版本。
|
||||
|
||||
**开发者们还没有明确说明即将推出的付费计划具体会提供什么**。我个人猜测可能会提供更多的云存储空间和接入更多新奇的功能。
|
||||
|
||||
我推荐你关注他们的 [新闻页面][12],以便获取有关 Librum 阅读器的最新信息。
|
||||
|
||||
### 📥 获取 Librum
|
||||
|
||||
目前,Librum **以 Flatpak 形式提供给 Linux 用户**,并且还在为 **Windows** 和 **macOS** 用户开发对应版本。
|
||||
|
||||
转到 [官方网站][13] 或 [Flathub 商店][14] 就可以获取下载。
|
||||
|
||||
> **[Librum (Flathub)][14]**
|
||||
|
||||
💬 在 Linux 上,你最喜爱的电子书阅读器应用是哪个?在下方的评论框里留言分享你的观点吧。
|
||||
|
||||
*(题图:MJ/9b52d578-ae83-4401-ae57-eb342d8bcfd6)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/librum-reader/
|
||||
|
||||
作者:[Sourav Rudra][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:ChatGPT
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/sourav/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/best-ebook-readers-linux/
|
||||
[2]: https://news.itsfoss.com/content/images/2023/09/Librum_1-1.png
|
||||
[3]: https://itsfoss.com/best-ebook-readers-linux/
|
||||
[4]: https://news.itsfoss.com/ubuntu-22-04-release/
|
||||
[5]: https://news.itsfoss.com/content/images/2023/09/Librum_2.png
|
||||
[6]: https://news.itsfoss.com/content/images/2023/09/Librum_3.png
|
||||
[7]: https://news.itsfoss.com/content/images/2023/09/Librum_4.png
|
||||
[8]: https://news.itsfoss.com/content/images/2023/09/Librum_5.png
|
||||
[9]: https://news.itsfoss.com/content/images/2023/09/Librum_6.png
|
||||
[10]: https://news.itsfoss.com/content/images/2023/09/Librum_7.png
|
||||
[11]: https://news.itsfoss.com/content/images/2023/09/Librum_8.png
|
||||
[12]: https://librumreader.com/news
|
||||
[13]: https://librumreader.com/
|
||||
[14]: https://flathub.org/apps/com.librumreader.librum
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202309/09/101349e7p0wko0b64pjs0o.jpg
|
@ -2,7 +2,7 @@
|
||||
[#]: via: "https://news.itsfoss.com/firefox-117-release/"
|
||||
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
@ -1,90 +0,0 @@
|
||||
[#]: subject: "Murena Fairphone 5 Unveiled With DeGoogled /e/OS"
|
||||
[#]: via: "https://news.itsfoss.com/murena-fairphone-5/"
|
||||
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Murena Fairphone 5 Unveiled With DeGoogled /e/OS
|
||||
======
|
||||
Murena Fairphone 5 is now available to pre-order featuring /e/OS, a
|
||||
popular privacy-centric mobile operating system.
|
||||
[Murena][1] is a Europe-based provider of smartphones and cloud services that has been growing in popularity thanks to its de-Googled offerings. They partner with smartphone manufacturers to provide privacy-focused experiences out of the box.
|
||||
|
||||
In a recent announcement, they unveiled their latest; **a customized Fairphone 5** , originally manufactured by [Fairphone][2] packing a privacy-centric open-source mobile operating system /e/OS.
|
||||
|
||||
**Suggested Read** 📖
|
||||
|
||||
![][3]
|
||||
|
||||
🚧
|
||||
|
||||
This smartphone may not be for everyone, do your research beforehand to know how to get around a customized Android experience and if you should proceed ordering it. This is not an endorsement nor a sponsored post about the device.
|
||||
|
||||
## 📱 Murena Fairphone 5: What to Expect?
|
||||
|
||||
![][4]
|
||||
|
||||
Murena Fairphone 5 is a **5G-enabled smartphone** , **powered by** **[/e/OS][5],** a de-Googled, **open-source mobile operating system** that has been carefully packed with handpicked applications to replace various Google apps.
|
||||
|
||||
The operating system is **based on Android 13,** and the phone has been **manufactured using sustainable methods**.
|
||||
|
||||
The Murena Fairphone 5 uses recycled materials across its body, and has a **focus on repairability** thanks to its modular nature.
|
||||
|
||||
You may be wondering; **what's the hardware underneath?**
|
||||
|
||||
![][6]
|
||||
|
||||
Well, the Murena Fairphone 5 is a **well-equipped smartphone** with the following hardware specifications:
|
||||
|
||||
* **CPU:[Qualcomm QCM 6490][7]**
|
||||
* **RAM: 8 GB**
|
||||
* **Storage: 256 GB**
|
||||
* **Expandable Storage: Up to 2 TB (SDXC)**
|
||||
* **Display: 90hz 6.46** ″ **POLED**
|
||||
* **Battery: 4200 mAH Li-Ion**
|
||||
* **Network Connectivity: 2G, 3G, 4G, 5G**
|
||||
* **Wi-Fi: 802.11 a/b/g/n/ac/ax**
|
||||
* **Bluetooth: 5.2 + LE**
|
||||
* **NFC: Yes**
|
||||
|
||||
|
||||
|
||||
You can go through the [official announcement][8] to know more about this de-Googled smartphone.
|
||||
|
||||
## 🛒 Get Murena Fairphone 5
|
||||
|
||||
The Murena Fairphone 5 is being offered in three different shades: **Black, Blue, and Transparent** , with RAM and storage capacity being the same 8 GB/256 GB combo.
|
||||
|
||||
It is **available to pre-order right now in selected countries** from the [official website][9], with a “choose your favorite case” offer. Shipping will begin at the end of September.
|
||||
|
||||
[Murena Fairphone 5][9]
|
||||
|
||||
_💬_ _I love the 'Transparent' one, kind of like Nothing phone, as it gives a nice view into the components of the Murena Fairphone 5. Which one do you like?_
|
||||
|
||||
* * *
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/murena-fairphone-5/
|
||||
|
||||
作者:[Sourav Rudra][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/sourav/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://murena.com/?sld=5
|
||||
[2]: https://www.fairphone.com/
|
||||
[3]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png
|
||||
[4]: https://news.itsfoss.com/content/images/2023/08/Murena_Fairphone5_1.jpg
|
||||
[5]: https://e.foundation/e-os/
|
||||
[6]: https://news.itsfoss.com/content/images/2023/08/Murena_Fairphone5_2.jpg
|
||||
[7]: https://www.qualcomm.com/products/internet-of-things/industrial/building-enterprise/qcm6490
|
||||
[8]: https://murena.com/murena-fairphone-5-is-now-available-for-pre-order-at-murena-com/
|
||||
[9]: https://murena.com/shop/smartphones/brand-new/murena-fairphone-5/?sld=5
|
@ -1,96 +0,0 @@
|
||||
[#]: subject: "PyCharm and Android Studio to Feature Wayland Support for Linux"
|
||||
[#]: via: "https://news.itsfoss.com/intellij-wayland-support/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
PyCharm and Android Studio to Feature Wayland Support for Linux
|
||||
======
|
||||
If you are a developer using Linux or WSL, you are in for a treat.
|
||||
Good news for developers using Linux!
|
||||
|
||||
The Jet Brains platform announced that IntelliJ-based IDEs will finally support the Wayland [display server][1] protocol. If you did not know, PyCharm and IntelliJ IDEA are some impressive IDEs based on the IntelliJ platform, and Android Studio is also an example (built by Google).
|
||||
|
||||
The Wayland protocol is gradually becoming the default for Linux distributions to provide a faster, secure, and stable experience compared to X11. And, if the coding environments you use support it, the user experience will be enhanced.
|
||||
|
||||
But what are the enhancements, and how do they plan to do it? Let me tell you.
|
||||
|
||||
**Suggested Read** 📖
|
||||
|
||||
![][2]
|
||||
|
||||
### Fractional Scaling and WSL Integration
|
||||
|
||||
Users utilizing an IDE like [IntelliJ IDEA for Linux][3] can finally benefit from fractional scaling to customize the size of fonts/icons on a high-resolution display.
|
||||
|
||||
Multi-monitor setups and high-resolution displays both get an enhanced IDE experience with Wayland support.
|
||||
|
||||
You do not have to worry about blurry texts on your IDE anymore.
|
||||
|
||||
Not just limited to the native Linux experience but also for users who rely on Windows Subsystem for Linux or, if you would like to call it, '[Bash on Windows][4]'.
|
||||
|
||||
The Wayland support will ensure that you get a seamless WSL integration.
|
||||
|
||||
In addition, you should have the following new benefits with Wayland:
|
||||
|
||||
* Pop-up windows
|
||||
* HiDPI support
|
||||
* Interactive resizing of windows
|
||||
|
||||
|
||||
|
||||
Overall, IntelliJ based IDEs should have more responsiveness, stability, and security by introducing the Wayland support.
|
||||
|
||||
**Suggested Read** 📖
|
||||
|
||||
![][2]
|
||||
|
||||
### Building a Wayland Toolkit
|
||||
|
||||
Wayland support on Java is not easy, but IntelliJ has a solution.
|
||||
|
||||
Jet Brains and the Oracle desktop team built a **Wayland toolkit** based on OpenJDK 21 to achieve this.
|
||||
|
||||
With the toolkit, you get some abilities like:
|
||||
|
||||
* Software-based rendering.
|
||||
* Minimal window decorations.
|
||||
* Popup windows, including those that are used for top-level menus.
|
||||
* HiDPI and multi-monitor support, including different per-monitor scales.
|
||||
|
||||
|
||||
|
||||
Furthermore, they plan to add clipboard **drag and drop support** , **Vulkan-based accelerated rendering** , and **switching between windows** using a shortcut.
|
||||
|
||||
You can keep an eye on the Wayland toolkit's progress on the [OpenJDK wiki][5].
|
||||
|
||||
There's no particular timeline to expect the Wayland support. But, it is good to hear that it is an ongoing effort, and IntelliJ as a platform also cares about its Linux-focused users.
|
||||
|
||||
You can learn more about it in its [official announcement post][6].
|
||||
|
||||
_💬 What do you think about IntelliJ's decision to add Wayland native support to its IDEs? Share your thoughts in the comments below._
|
||||
|
||||
* * *
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/intellij-wayland-support/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/display-server/
|
||||
[2]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png
|
||||
[3]: https://itsfoss.com/install-intellij-ubuntu-linux/
|
||||
[4]: https://itsfoss.com/install-bash-on-windows/
|
||||
[5]: https://wiki.openjdk.org/display/wakefield/Work+breakdown
|
||||
[6]: https://blog.jetbrains.com/platform/2023/08/wayland-support/
|
@ -0,0 +1,90 @@
|
||||
[#]: subject: "Ubuntu 23.10 to Feature Experimental TPM-backed Full Disk Encryption"
|
||||
[#]: via: "https://news.itsfoss.com/ubuntu-23-10-disk-encryption/"
|
||||
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Ubuntu 23.10 to Feature Experimental TPM-backed Full Disk Encryption
|
||||
======
|
||||
Moving forward, Ubuntu will let you utilize TPM-backed Full Disk
|
||||
Encryption. But, is this something you would like?
|
||||
Ubuntu 23.10 daily builds keep getting exciting new additions!
|
||||
|
||||
Earlier we had covered the [major PPA changes][1], and the new [Flutter-based store][2] (which also landed with the latest daily builds).
|
||||
|
||||
Now, we have yet another major change that is set to enhance the security of Ubuntu systems; by changing how users handle the encrypting of their disks (if enabled).
|
||||
|
||||
The initial support for the feature is set to arrive with Ubuntu 23.10 and will be improved in future Ubuntu releases.
|
||||
|
||||
**Suggested Read** 📖
|
||||
|
||||
![][3]
|
||||
|
||||
### Ubuntu 23.10: TPM-backed Full Disk Encryption
|
||||
|
||||
![][4]
|
||||
|
||||
Introduced as **an experimental feature** , TPM-backed Full Disk Encryption (FDE) is a major change from how Ubuntu has been handling FDE for the past 15 years.
|
||||
|
||||
**In the existing system** , a passphrase mechanism was in place, that would authenticate users by accepting a user-set phrase that would then be used to provide access to the disk.
|
||||
|
||||
All of this was made possible due to the integration of the **[Linux Unified Key Setup][5]** (LUKS) framework, which handles disk encryption at the block level.
|
||||
|
||||
**With the TPM-backed system** , the TPM chip on your motherboard will be used to provide full disk encryption, doing away with the need for a passphrase.
|
||||
|
||||
The **chip will handle the decryption of the secret key** that locks the full EFI state, and the kernel command line. That is only possible when the device boots with software that has been defined as ' **authorized** ' to access confidential data.
|
||||
|
||||
📋
|
||||
|
||||
TPM stands for [Trusted Platform Module][6].
|
||||
|
||||
**But, there's a catch.**
|
||||
|
||||
TPM-backed FDE is based on the [same architecture][7] as [Ubuntu Core][8], this has resulted in the sharing of many key components that are **delivered as snap packages**. So, things such as the **bootloader** (shim/GRUB) and **kernel assets** are delivered via snap.
|
||||
|
||||
Luckily, this new **TPM-backed FDE is not the only way of encrypting disks**. The **conventional passphrases system will still be in place** , for those who don't want to use the new system.
|
||||
|
||||
Users can also use the new system alongside passphrases to further bolster their security.
|
||||
|
||||
For technical details on how TPM-backed disk encryption works, I suggest you go through Ubuntu's [official blog][9] post.
|
||||
|
||||
**Interested in testing this out?** 🤔
|
||||
|
||||
🚧
|
||||
|
||||
Testing any experimental feature could result in total data loss. So, try it at your own risk.
|
||||
|
||||
Well, TPM-backed FDE has been rolled out into the [**daily builds**][10] of **Ubuntu 23.10** , you just have to set it up during installation as shown in the screenshot in the article.
|
||||
|
||||
The new FDE option is available under ' **Advanced Features** ' during the selection of the type of install on the Ubuntu installer.
|
||||
|
||||
_💬 What do you think of this new experimental feature? Share your thoughts in the comments below._
|
||||
|
||||
* * *
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/ubuntu-23-10-disk-encryption/
|
||||
|
||||
作者:[Sourav Rudra][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/sourav/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://news.itsfoss.com/ubuntu-23-10-ppa/
|
||||
[2]: https://news.itsfoss.com/ubuntu-23-10-ubuntu-store/
|
||||
[3]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png
|
||||
[4]: https://news.itsfoss.com/content/images/2023/09/Ubuntu_23.10_TPM_FDE.png
|
||||
[5]: https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup
|
||||
[6]: https://en.wikipedia.org/wiki/Trusted_Platform_Module
|
||||
[7]: https://ubuntu.com/core/docs/uc20/full-disk-encryption
|
||||
[8]: https://ubuntu.com/core
|
||||
[9]: https://ubuntu.com/blog/tpm-backed-full-disk-encryption-is-coming-to-ubuntu
|
||||
[10]: https://cdimage.ubuntu.com/daily-live/current/
|
@ -2,7 +2,7 @@
|
||||
[#]: via: "https://opensource.com/article/22/6/26-freedos-commands"
|
||||
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: translator: "robsean"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
@ -1,219 +0,0 @@
|
||||
[#]: subject: "Learn Tcl/Tk and Wish with this simple game"
|
||||
[#]: via: "https://opensource.com/article/23/4/learn-tcltk-wish-simple-game"
|
||||
[#]: author: "James Farrell https://opensource.com/users/jamesf"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Learn Tcl/Tk and Wish with this simple game
|
||||
======
|
||||
|
||||
Explore the basic language constructs of Tcl/Tk, which include user input, output, variables, conditional evaluation, simple functions, and basic event driven programming.
|
||||
|
||||
My path to writing this article started with a desire to make advanced use of Expect which is based on Tcl. Those efforts resulted in these two articles: [Learn Tcl by writing a simple game][1] and [Learn Expect by writing a simple game][2].
|
||||
|
||||
I do a bit of [Ansible][3] automation and, over time have collected a number of local scripts. Some of them I use often enough that it becomes annoying to go through the cycle of:
|
||||
|
||||
- Open terminal
|
||||
- Use `cd` to get to the right place
|
||||
- Type a long command with options to start the desired automation
|
||||
|
||||
I use macOS on a daily basis. What I really wanted was a menu item or an icon to bring up a simple UI to accept parameters and run the thing I wanted to do, [like in KDE on Linux][4].
|
||||
|
||||
The classic Tcl books include documentation on the popular Tk extensions. Since I was already deep into researching this topic, I gave programming it (that is `wish`) a try.
|
||||
|
||||
I've never been a GUI or front-end developer, but I found the Tcl/Tk methods of script writing fairly straight forward. I was pleased to revisit such a venerable stalwart of UNIX history, something still available and useful on modern platforms.
|
||||
|
||||
### Install Tcl/Tk
|
||||
|
||||
On a Linux system, you can use this:
|
||||
|
||||
```
|
||||
$ sudo dnf install tcl
|
||||
$ which wish
|
||||
/bin/wish
|
||||
```
|
||||
|
||||
On macOS, use [Homebrew][5] to install the latest Tcl/Tk:
|
||||
|
||||
```
|
||||
$ brew install tcl-tk
|
||||
$ which wish
|
||||
/usr/local/bin/wish
|
||||
```
|
||||
|
||||
### Programming concepts
|
||||
|
||||
Most game-writing articles cover the typical programming language constructs such as loops, conditionals, variables, functions and procedures, and so on.
|
||||
|
||||
In this article, I introduce [event-driven programming][6]. With event-driven programming, your executable enters into a special built-in loop as it waits for something specific to happen. When the specification is reached, the code is triggered to produce a certain outcome.
|
||||
|
||||
These events can consist of things like keyboard input, mouse movement, button clicks, timing triggers, or nearly anything your computer hardware can recognize (perhaps even from special-purpose devices). The code in your program sets the stage from what it presents to the end user, what kinds of inputs to listen for, how to behave when these inputs are received, and then invokes the event loop waiting for input.
|
||||
|
||||
The concept for this article is not far off from my other Tcl articles. The big difference here is the replacement of looping constructs with GUI setup and an event loop used to process the user input. The other differences are the various aspects of GUI development needed to make a workable user interface. With Tk GUI development, you need to look at two fundamental constructs called widgets and geometry managers.
|
||||
|
||||
Widgets are UI elements that make up the visual elements you see and interact with. These include buttons, text areas, labels, and entry fields. Widgets also offer several flavors of option selections like menus, check boxes, radio buttons, and so on. Finally, widgets include other visual elements like borders and line separators.
|
||||
|
||||
Geometry managers play a critical role in laying out where your widgets sit in the displayed window. There are a few different kinds of geometry managers you can use. In this article, I mainly use `grid` geometry to lay widgets out in neat rows. I explain some of the geometry manager differences at the end of this article.
|
||||
|
||||
### Guess the number using wish
|
||||
|
||||
This example game code is different from the examples in my other articles. I've broken it up into chunks to facilitate the explanation.
|
||||
|
||||
Start by creating the basic executable script `numgame.wish`:
|
||||
|
||||
```
|
||||
$ touch numgame.wish
|
||||
$ chmod 755 numgame.wish
|
||||
```
|
||||
|
||||
Open the file in your favorite text editor. Enter the first section of the code:
|
||||
|
||||
```
|
||||
#!/usr/bin/env wish
|
||||
set LOW 1
|
||||
set HIGH 100
|
||||
set STATUS ""
|
||||
set GUESS ""
|
||||
set num [expr round(rand()*100)]
|
||||
```
|
||||
|
||||
The first line defines that the script is executable with `wish`. Then, several global variables are created. I've decided to use all upper-case variables for globals bound to widgets that watch these values (`LOW`, `HIGH` and so on).
|
||||
|
||||
The `num` global is the variable set to the random value you want the game player to guess. This uses Tcl's command execution to derive the value saved to the variable:
|
||||
|
||||
```
|
||||
proc Validate {var} {
|
||||
if { [string is integer $var] } {
|
||||
return 1
|
||||
}
|
||||
return 0
|
||||
}
|
||||
```
|
||||
|
||||
This is a special function to validate data entered by the user. It accepts integer numbers and rejects everything else:
|
||||
|
||||
```
|
||||
proc check_guess {guess num} {
|
||||
global STATUS LOW HIGH GUESS
|
||||
|
||||
if { $guess < $LOW } {
|
||||
set STATUS "What?"
|
||||
} elseif { $guess > $HIGH } {
|
||||
set STATUS "Huh?"
|
||||
} elseif { $guess < $num } {
|
||||
set STATUS "Too low!"
|
||||
set LOW $guess
|
||||
} elseif { $guess > $num } {
|
||||
set STATUS "Too high!"
|
||||
set HIGH $guess
|
||||
} else {
|
||||
set LOW $guess
|
||||
set HIGH $guess
|
||||
set STATUS "That's Right!"
|
||||
destroy .guess .entry
|
||||
bind all <Return> {.quit invoke}
|
||||
}
|
||||
|
||||
set GUESS ""
|
||||
}
|
||||
```
|
||||
|
||||
This is the main loop of the value guessing logic. The `global` statement allows you to modify the global variables created at the beginning of the file (more on this topic later). The conditional looks for input that is out of bounds of 1 through 100 and also outside of values the user has already guessed. Valid guesses are compared against the random value. The `LOW` and `HIGH` guesses are tracked as global variables reported in the UI. At each stage, the global `STATUS` variable is updated. This status message is automatically reported in the UI.
|
||||
|
||||
In the case of a correct guess, the `destroy` statement removes the "Guess" button and the entry widget, and re-binds the **Return** (or **Enter**) key to invoke the **Quit** button.
|
||||
|
||||
The last statement `set GUESS ""` is used to clear the entry widget for the next guess:
|
||||
|
||||
```
|
||||
label .inst -text "Enter a number between: "
|
||||
label .low -textvariable LOW
|
||||
label .dash -text "-"
|
||||
label .high -textvariable HIGH
|
||||
label .status -text "Status:"
|
||||
label .result -textvariable STATUS
|
||||
button .guess -text "Guess" -command { check_guess $GUESS $num }
|
||||
entry .entry -width 3 -relief sunken -bd 2 -textvariable GUESS -validate all \
|
||||
-validatecommand { Validate %P }
|
||||
focus .entry
|
||||
button .quit -text "Quit" -command { exit }
|
||||
bind all <Return> {.guess invoke}
|
||||
```
|
||||
|
||||
This is the section where the user interface is set up. The first six label statements create various bits of text that display on your UI. The option `-textvariable` watches the given variable and updates the label's value automatically. This displays the bindings to global variables `LOW`, `HIGH`, and `STATUS`.
|
||||
|
||||
The `button` lines set up the **Guess** and **Quit** buttons, with the `-command` option specifying what to do when the button is pressed. The **Guess** button invokes the `check_guess` procedure logic above to check the users entered value.
|
||||
|
||||
The `entry` widget gets more interesting. It sets up a three-character wide input field, and binds its input to `GUESS` global. It also configures validation with the `-validatecommand` option. This prevents the entry widget from accepting anything other than numbers.
|
||||
|
||||
The `focus` command is a UI polish that starts the program with the entry widget active for input. Without this, you need to click into the entry widget before you can type.
|
||||
|
||||
The `bind` command is an additional UI polish that automatically clicks the **Guess** button when the **Return** key is pressed. If you remember from above in `check_guess`, guessing the correct value re-binds **Return** to the "Quit" button.
|
||||
|
||||
Finally, this section defines the GUI layout:
|
||||
|
||||
```
|
||||
grid .inst
|
||||
grid .low .dash .high
|
||||
grid .status .result
|
||||
grid .guess .entry
|
||||
grid .quit
|
||||
```
|
||||
|
||||
The `grid` geometry manager is called in a series of steps to incrementally build up the desired user experience. It essentially sets up five rows of widgets. The first three are labels displaying various values, the fourth is the **Guess** button and `entry` widget, then finally, the **Quit** button.
|
||||
|
||||
At this point, the program is initialized and the `wish` shell enters into the event loop. It waits for the user to enter integer values and press buttons. It updates labels based on changes it finds in watched global variables.
|
||||
|
||||
Notice that the input cursor starts in the entry field and that pressing **Return** invokes the appropriate and available button.
|
||||
|
||||
This was a simple and basic example. Tcl/Tk has a number of options that can make the spacing, fonts, colors, and other UI aspects much more pleasing than the simple UI demonstrated in this article.
|
||||
|
||||
When you launch the application, you may notice that the widgets aren't very fancy or modern. That is because I'm using the original classic widget set, reminiscent of the X Windows Motif days. There are default widget extensions, called themed widgets, which can give your application a more modern and polished look and feel.
|
||||
|
||||
### Play the game!
|
||||
|
||||
After saving the file, run it in the terminal:
|
||||
|
||||
```
|
||||
$ ./numgame.wish
|
||||
```
|
||||
|
||||
In this case, I can't give console output, so here's an animated GIF to demonstrate how the game is played:
|
||||
|
||||
![A guessing game written in Wish][7]
|
||||
|
||||
### More about Tcl
|
||||
|
||||
Tcl supports the notion of namespaces, so the variables used here need not be global. You can organize your bound widget variables into alternate namespaces. For simple programs like this, it's probably not worth it. For much larger projects, you might want to consider this approach.
|
||||
|
||||
The `proc check_guess` body contains a `global` line I didn't explain. All variables in Tcl are passed by value, and variables referenced within the body are in a local scope. In this case, I wanted to modify the global variable, not a local scoped version. Tcl has a number of ways of referencing variables and executing code in execution stacks higher in the call chain. In some ways, it makes for complexities (and mistakes) for a simple reference like this. But the call stack manipulation is very powerful and allows for Tcl to implement new forms of conditional and loop constructs that would be cumbersome in other languages.
|
||||
|
||||
Finally, in this article, I skipped the topic of geometry managers which are used to take widgets and place them in a specific order. Nothing can be displayed to the screen unless it is managed by some kind of geometry manager. The grid manager is fairly simple. It places widgets in a line, from left to right. I used five grid definitions to create five rows. There are two other geometry managers: place and pack. The pack manager arranges widgets around the edges of the window, and the place manager allows for fixed placement. In addition to these geometry managers, there are special widgets called `canvas`, `text`, and `panedwindow` that can hold and manage other widgets. A full description of all these can be found in the classic Tcl/Tk reference guides, and on the [Tk commands][8] documentation page.
|
||||
|
||||
### Keep learning programming
|
||||
|
||||
Tcl and Tk provide a straightforward and effective approach to building graphical user interfaces and event-driven applications. This simple guessing game is just the beginning when it comes to what you can accomplish with these tools. By continuing to learn and explore Tcl and Tk, you can unlock a world of possibilities for building powerful, user-friendly applications. Keep experimenting, keep learning, and see where your newfound Tcl and Tk skills can take you.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/23/4/learn-tcltk-wish-simple-game
|
||||
|
||||
作者:[James Farrell][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/jamesf
|
||||
[b]: https://github.com/lkxed/
|
||||
[1]: https://opensource.com/article/23/2/learn-tcl-writing-simple-game
|
||||
[2]: https://opensource.com/article/23/2/learn-expect-automate-simple-game
|
||||
[3]: https://www.redhat.com/en/technologies/management/ansible/what-is-ansible?intcmp=7013a000002qLH8AAM
|
||||
[4]: https://opensource.com/article/23/2/linux-kde-desktop-ansible
|
||||
[5]: https://opensource.com/article/20/6/homebrew-mac
|
||||
[6]: https://developers.redhat.com/topics/event-driven/all?intcmp=7013a000002qLH8AAM
|
||||
[7]: https://opensource.com/sites/default/files/2023-03/numgame-wish.gif
|
||||
[8]: https://tcl.tk/man/tcl8.7/TkCmd/index.html
|
@ -1,244 +0,0 @@
|
||||
[#]: subject: "Guide to Set up Full Wayland with Arch Linux"
|
||||
[#]: via: "https://www.debugpoint.com/wayland-arch-linux/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Guide to Set up Full Wayland with Arch Linux
|
||||
======
|
||||
|
||||
**Is it possible to go full Wayland in Arch Linux using mainstream desktop environments or window managers? Let’s find out.**
|
||||
|
||||
Wayland is a modern and efficient protocol for displaying graphical applications on Linux. It offers several advantages over the older X.Org display server, such as improved security, stability, and graphical performance.
|
||||
|
||||
While X.Org has been the go-to display server for many years, its age and complexity have led to various issues, including security vulnerabilities and compatibility problems with newer hardware. Wayland addresses these concerns by offering a more streamlined and secure display protocol.
|
||||
|
||||
However, it’s been almost a decade since the Wayland transition is going on, and it is understandable. Major Linux distributions, such as Ubuntu and Fedora – already defaulted to Wayland sessions since 2021. The primary reason is the protocol is now stable enough.
|
||||
|
||||
However, Arch Linux users may find setting up a custom install with Wayland complex. Only KDE Plasma and GNOME have up-to-date Wayland support among all the mainstream desktop environments. Xfce, LXQt and other desktops are developing Wayland support, but they are not ready yet.
|
||||
|
||||
On the window manager front, Sway has full Wayland support in Arch Linux. That being said, I wanted to test how Wayland is performing in Arch and want to give you a status check as of today.
|
||||
|
||||
Let’s try to set up KDE Plasma & GNOME in Arch Linux with full Wayland support.
|
||||
|
||||
### Set up Wayland in Arch Linux
|
||||
|
||||
Ideally, you should have the [base `wayland` package][1] installed already. Open a terminal and verify running the below command.
|
||||
|
||||
```
|
||||
pacman -Qi wayland
|
||||
```
|
||||
|
||||
If it is not installed, install it using:
|
||||
|
||||
```
|
||||
sudo pacman -S --needed wayland
|
||||
```
|
||||
|
||||
#### KDE Plasma Desktop
|
||||
|
||||
The following steps assume you have a bare metal Arch Linux installation without any desktop environment or window manager. You can install Arch Linux bare metal using the [great archinstall script][2].
|
||||
|
||||
Standard KDE Plasma setup in Arch Linux requires a few changes for Wayland. A few packages are needed from AUR, hence make sure to [set up Yay][3] or any other AUR helper.
|
||||
|
||||
Firstly, install a custom `sddm` display manager Wayland package from AUR using the following command. This is a different `sddm` package than the one available in the Arch “Extra” repo. As [per ArchWiki][4], only GDM and sddm-git have the proper Wayland support in Arch Linux at the moment.
|
||||
|
||||
```
|
||||
yay -S sddm-git
|
||||
```
|
||||
|
||||
Once installed, use the below command to install a few Wayland packages.
|
||||
|
||||
- xorg-xwayland: For running xclients under Wayland
|
||||
- xorg-xlsclients: List client applications running on a display (optional)
|
||||
- qt5-wayland: Qt APIs for Wayland
|
||||
- glfw-wayland: GUI app dev packages for Wayland
|
||||
|
||||
```
|
||||
pacman -S --needed xorg-xwayland xorg-xlsclients qt5-wayland glfw-wayland
|
||||
```
|
||||
|
||||
Second, install the plasma and associated apps with Wayland sessions using the below set of commands. Execute them in the order mentioned below.
|
||||
|
||||
```
|
||||
pacman -S --needed plasma kde-applications
|
||||
```
|
||||
|
||||
```
|
||||
pacman -S --needed plasma-wayland-session
|
||||
```
|
||||
|
||||
**Note**: If you are using NVIDIA, you may want to install `egl-wayland`package. However, I have not tried it.
|
||||
|
||||
Let’s install Firefox and Chromium as well, so that you can test Wayland is working properly.
|
||||
|
||||
```
|
||||
pacman -S --needed firefox chromium
|
||||
```
|
||||
|
||||
Once done, enable the display manager and NetworkManager service.
|
||||
|
||||
```
|
||||
sudo systemctl enable sddmsudo systemctl enable NetworkManager
|
||||
```
|
||||
|
||||
The sddm display manager needs a little more tweaks. Using any text editor, open the sddm configuration file and add `Current=breeze` under `[Theme]`.
|
||||
|
||||
```
|
||||
sudo nano /usr/lib/sddm/sddm.conf.d/default.conf
|
||||
```
|
||||
|
||||
```
|
||||
[Theme]
|
||||
# current theme name
|
||||
Current=breeze
|
||||
```
|
||||
|
||||
Once done, save and close the file. And reboot.
|
||||
|
||||
```
|
||||
reboot
|
||||
```
|
||||
|
||||
And in the login screen, you should see the Wayland option. Select and log in to the Wayland session of KDE Plasma in Arch Linux.
|
||||
|
||||
![Plasma Wayland session during login][5]
|
||||
|
||||
You can also verify [whether you are running Wayland][6] using $XDG_SESSION_TYPE variable.
|
||||
|
||||
![KDE Plasma with Wayland in Arch Linux][7]
|
||||
|
||||
If you want to force Firefox to use Wayland, then open `/etc/environment` and add the following line.
|
||||
|
||||
```
|
||||
MOZ_ENABLE_WAYLAND=1
|
||||
```
|
||||
|
||||
Then, reboot or run below to take effect.
|
||||
|
||||
```
|
||||
source /etc/environment
|
||||
```
|
||||
|
||||
Open Firefox and go to `about:support` to verify the value against “Window protocol”. You can also run `xlsclients` from the terminal to see which external apps are running under Wayland.
|
||||
|
||||
![Firefox is using xwayland in KDE Plasma with Arch][8]
|
||||
|
||||
So, that completes the KDE Plasma setup with Wayland in Arch Linux.
|
||||
|
||||
#### Performance of Wayland KDE Plasma session in Arch
|
||||
|
||||
Overall, the KDE Plasma in Wayland with Arch Linux works well. Nothing show-stopper or any major problems. The spectacle app is able to take screenshots and screencasts. That being said, a few things I noticed while testing the session.
|
||||
|
||||
Firstly there is an intermittent flicker in the bottom panel while launching applications such as Dolphin. It’s inside the VirtualBox session.
|
||||
|
||||
Secondly, the mouse cursor behaviour is a little strange. The cursor is not changing its state from pointer to handle properly (see below).
|
||||
|
||||
Third, KWin crashed when returning online from a standby/screen off (in VirtualBox without guest additions). This might be specific to the virtual machine, but it required a hard reboot to go back to the desktop.
|
||||
|
||||
The memory consumption is around 2GB in idle Wayland sessions with Arch Linux.
|
||||
|
||||
#### GNOME
|
||||
|
||||
The following steps assume you have a bare metal Arch Linux installation without any desktop environment or window manager. You can install Arch Linux bare metal using the [great archinstall script][2].
|
||||
|
||||
The GDM display manager has full Wayland support in Arch Linux. First, install it using the below command:
|
||||
|
||||
```
|
||||
pacman -S --needed gdm
|
||||
```
|
||||
|
||||
Once installed, use the below command to install a few Wayland packages.
|
||||
|
||||
- xorg-xwayland: For running xclients under Wayland
|
||||
- xorg-xlsclients: List client applications running on a display (optional)
|
||||
- glfw-wayland: GUI app dev packages for Wayland
|
||||
|
||||
```
|
||||
pacman -S --needed xorg-xwayland xorg-xlsclients glfw-wayland
|
||||
```
|
||||
|
||||
Second, install the plasma and associated apps with Wayland sessions using the below set of commands. Execute them in the order mentioned below.
|
||||
|
||||
```
|
||||
sudo pacman -S --needed gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme
|
||||
```
|
||||
|
||||
**Note**: If you are using NVIDIA, you may want to install `egl-wayland`package. However, I have not tried it.
|
||||
|
||||
Let’s install Firefox and Chromium as well, so that you can test Wayland is working properly with GNOME.
|
||||
|
||||
```
|
||||
pacman -S --needed firefox chromium
|
||||
```
|
||||
|
||||
Once done, enable the display manager and NetworkManager service.
|
||||
|
||||
```
|
||||
sudo systemctl enable gdm
|
||||
sudo systemctl enable NetworkManager
|
||||
```
|
||||
|
||||
Once done, save and close the file. And reboot.
|
||||
|
||||
```
|
||||
reboot
|
||||
```
|
||||
|
||||
And in the login screen, you should see the _GNOME (Wayland)_ option. Select and log in to the Wayland session of GNOME in Arch Linux.
|
||||
|
||||
![GNOME with Wayland running in Arch Linux][9]
|
||||
|
||||
#### Performance of GNOME
|
||||
|
||||
If I compare GNOME and KDE Plasma, GNOME performed better with Wayland in Arch Linux. No significant problems or screen flickering in apps. This may be because of the recent changes done on GNOME 44 for Wayland, which landed in Arch Linux.
|
||||
|
||||
Also, Firefox runs natively in Wayland in GNOME, not using xwayland wrapper.
|
||||
|
||||
![Firefox with Wayland in GNOME][10]
|
||||
|
||||
### Troubleshooting common Wayland issues
|
||||
|
||||
While Wayland provides numerous benefits, you may encounter some challenges. Here are a few common issues and potential solutions:
|
||||
|
||||
- **Dealing with incompatible applications**: Some older or less commonly used applications may not yet have full Wayland support. Consider looking for alternative applications explicitly designed for Wayland or using XWayland as a compatibility layer.
|
||||
- **Addressing performance-related concerns**: If you experience performance issues with specific applications, ensure you have installed the latest graphics drivers. Additionally, check if any specific compositor settings or application-specific tweaks can optimize performance.
|
||||
- You can find **more tips** for troubleshooting [on this page][11].
|
||||
|
||||
### Conclusion
|
||||
|
||||
Setting up Wayland as your default display server in Arch Linux can significantly improve security, stability, and graphical performance. Following this guide’s installation and configuration steps, you can seamlessly transition from Xorg to Wayland and enjoy a more modern and efficient display experience.
|
||||
|
||||
However, you may find it a little complex for Arch Linux with Wayland since many items require special attention when things break.
|
||||
|
||||
I have not tested gaming on Arch with Wayland as part of this guide. Hence you may need to try that out after setting up. I hope this tutorial helps you to set up Wayland in Arch Linux.
|
||||
|
||||
Let me know how it goes for you in the comment box below.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/wayland-arch-linux/
|
||||
|
||||
作者:[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/
|
||||
[1]: https://archlinux.org/packages/extra/x86_64/wayland/
|
||||
[2]: https://www.debugpoint.com/archinstall-guide/
|
||||
[3]: https://www.debugpoint.com/install-yay-arch/
|
||||
[4]: https://wiki.archlinux.org/title/wayland#Display_managers
|
||||
[5]: https://www.debugpoint.com/wp-content/uploads/2023/05/Plasma-Wayland-session-during-login.jpg
|
||||
[6]: https://www.debugpoint.com/check-wayland-or-xorg/
|
||||
[7]: https://www.debugpoint.com/wp-content/uploads/2023/05/KDE-Plasma-with-Wayland-in-Arch-Linux.jpg
|
||||
[8]: https://www.debugpoint.com/wp-content/uploads/2023/05/Firefox-is-using-xwayland-in-KDE-Plasma-with-Arch.jpg
|
||||
[9]: https://www.debugpoint.com/wp-content/uploads/2023/05/GNOME-with-Wayland-running-in-Arch-Linux.jpg
|
||||
[10]: https://www.debugpoint.com/wp-content/uploads/2023/05/Firefox-with-Wayland-in-GNOME.jpg
|
||||
[11]: https://wiki.archlinux.org/title/wayland#Troubleshooting
|
@ -1,224 +0,0 @@
|
||||
[#]: subject: "How to Extend Veritas File System (VxFS) in Linux"
|
||||
[#]: via: "https://www.2daygeek.com/extend-increase-vxvm-volume-vxfs-filesystem-linux/"
|
||||
[#]: author: "Jayabal Thiyagarajan https://www.2daygeek.com/author/jayabal/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How to Extend Veritas File System (VxFS) in Linux
|
||||
======
|
||||
|
||||
Extending the VxFX file system is a routine task for a Linux/Unix administrator and this can be done online with a few steps described in the below article:
|
||||
|
||||
In this scenario, the Disk Group doesn’t have sufficient free space, so we will be adding a new disk in the existing Disk Group (DG) and then resizing it.
|
||||
|
||||
**Related Articles:**
|
||||
|
||||
* **[How to Create VxVM Volume and Filesystem in Linux][1]**
|
||||
* **[How to Create Shared VxFS FileSystem on Linux][2]**
|
||||
|
||||
|
||||
|
||||
### Step-1: Identifying Filesystem
|
||||
|
||||
Check the Filesystem to be increased/extended using the **[df command][3]** and note down the Disk Group (DG) and Volume name from the below output, which will be used later while running vxdg and vxresize commands.
|
||||
|
||||
```
|
||||
|
||||
df -hP /data
|
||||
|
||||
Filesystem Size Used Avail Use% Mounted on
|
||||
/dev/vx/dsk/testdg/testvol 9.0G 8.4G 0.6G 95% /data
|
||||
|
||||
```
|
||||
|
||||
As per the above output, the VxFS filesystem size is **‘9.0 GB’** and we would like to extend additionally **‘5 GB’** and post this activity the VxFS size would be **`'14 GB'`**.
|
||||
|
||||
In this case, the DG name is **‘testdg’** and Volume name is **‘testvol’**.
|
||||
|
||||
### Step-2: Getting a new Disk/LUN
|
||||
|
||||
The new disk must be mapped to the host by the storage team, which may require CR approval, so raise the CR and add the necessary task to the relevant teams, and also include a Rollout/Rollback plan for this activity.
|
||||
|
||||
### Step-3: Scanning a Disk/LUN
|
||||
|
||||
Once Storage team mapped the new LUN to the host, obtain the LUN id and keep it handy.
|
||||
|
||||
Scan the LUN using the below command to discover them at OS level.
|
||||
|
||||
```
|
||||
|
||||
for disk_scan in `ls /sys/class/scsi_host`; do echo "Scanning $disk_scan…Completed"; echo "- - -" > /sys/class/scsi_host/$disk_scan/scan; done
|
||||
|
||||
Scanning host0...Completed
|
||||
Scanning host1...Completed
|
||||
.
|
||||
.
|
||||
Scanning host[N]...Completed
|
||||
|
||||
```
|
||||
|
||||
Once the scanning is complete, use the below command to find out if the given LUN is found at the OS level.
|
||||
|
||||
```
|
||||
|
||||
lsscsi --scsi | grep -i [Last_Five_Digit_of_LUN]
|
||||
|
||||
```
|
||||
|
||||
### Step-4: Finding Disks in VxVM
|
||||
|
||||
By default, all available disks are visible to Veritas Volume Manager (VxVM), which can be listed by using the **vxdisk** command as shown below.
|
||||
|
||||
```
|
||||
|
||||
vxdisk -e list
|
||||
|
||||
DEVICE TYPE DISK GROUP STATUS OS_NATIVE_NAME ATTR
|
||||
emc_01 auto:cdsdisk disk1 testdg online sdd -
|
||||
emc_02 auto:cdsdisk disk2 testdg online sde -
|
||||
emc_03 auto:none - - online invalid sdf -
|
||||
sda auto:LVM - - LVM sda -
|
||||
sdb auto:LVM - - LVM sdb -
|
||||
|
||||
```
|
||||
|
||||
The disk **`'sdf'`** STATUS shows as **`"Online invalid"`** indicates that this disk is not under VxVM control. However, use **smartctl** command to double check the LUN id to ensure that you are picking the correct disk.
|
||||
|
||||
```
|
||||
|
||||
smartctl -a /dev/sd[x]|grep -i unit
|
||||
|
||||
```
|
||||
|
||||
If the disk is not populated to VxVM, execute the below command to scan the disk devices in the operating system device tree.
|
||||
|
||||
```
|
||||
|
||||
vxdisk scandisks
|
||||
|
||||
```
|
||||
|
||||
### Step-5: Initializing Disk in VxVM
|
||||
|
||||
Once the disk is visible to VxVM at **step #4** , then initialize the disk using the **vxdisksetup** command as shown below:
|
||||
|
||||
```
|
||||
|
||||
vxdisksetup -i sdf
|
||||
|
||||
```
|
||||
|
||||
The above command brings the disk **‘sdf’** to the Veritas Volume Manager (VxVM) and the disk status changed to **`"online"`** now.
|
||||
|
||||
![][4]
|
||||
|
||||
### Step-6: Adding Disk to Disk Group (DG) in VxVM
|
||||
|
||||
The **vxdg** command performs various administrative operations on disk groups. In this example, we will be using it for adding a new disk to the existing Disk Group (DG).
|
||||
|
||||
```
|
||||
|
||||
Syntax:
|
||||
vxdg -g [DG_Name] adddisk [Any_Name_to_Disk_as_per_Your_Wish=Device_Name]
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
vxdg -g testdg adddisk disk3=emc_03
|
||||
|
||||
```
|
||||
|
||||
After ran the above command, **DISK** name is **`'disk3'`** and **GROUP** name is **`'testdg'`** were updated for **’emc_03′** device as shown below:
|
||||
|
||||
```
|
||||
|
||||
vxdisk -e list
|
||||
|
||||
DEVICE TYPE DISK GROUP STATUS OS_NATIVE_NAME ATTR
|
||||
emc_01 auto:cdsdisk disk1 testdg online sdd -
|
||||
emc_02 auto:cdsdisk disk2 testdg online sde -
|
||||
emc_03 auto:none disk3 testdg online sdf -
|
||||
sda auto:LVM - - LVM sda -
|
||||
sdb auto:LVM - - LVM sdb -
|
||||
|
||||
```
|
||||
|
||||
### Step-7: Checking free space in the Disk Group (DG)
|
||||
|
||||
To determine how much free space is available for a concatenated volume, run:
|
||||
|
||||
```
|
||||
|
||||
vxassist -g testdg maxsize
|
||||
|
||||
```
|
||||
|
||||
### Step-8: Extending VxVM Volume and VxFS Filesystem
|
||||
|
||||
We have added **‘5GB’** LUN for this activity, so extending the VxVM volume and VxFS filesystem additionally **`'5GB'`** as shown below:
|
||||
|
||||
```
|
||||
|
||||
Syntax:
|
||||
vxresize -b -g [DG_Name] [Volume_Name] +[Size_to_be_Increased]
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
vxresize -b -g testdg testvol +5g
|
||||
|
||||
```
|
||||
|
||||
* **Where:**
|
||||
* vxresize : Command
|
||||
* -b : Perform the resize operation in the background (optional).
|
||||
* -g : Limits operation of the command to the given disk group, as specified by disk group ID or disk group name.
|
||||
* testdg : Our DiskGroup (DG) Name
|
||||
* testvol : Our Volume Name
|
||||
* +5g : This volume will be increased additionaly 5GB.
|
||||
|
||||
|
||||
|
||||
### Step-9: Checking Extended VxFS Filesystem
|
||||
|
||||
Finally, check the extended VxFS of **‘/data’** using the df command:
|
||||
|
||||
```
|
||||
|
||||
df -hP /data
|
||||
|
||||
Filesystem Size Used Avail Use% Mounted on
|
||||
/dev/vx/dsk/testdg/testvol 14G 8.4G 5.6G 68% /data
|
||||
|
||||
```
|
||||
|
||||
##### Conclusion
|
||||
|
||||
In this tutorial, we’ve shown you how to add a new disk to the existing Disk Group (DG), and extend VxVM Volume and VxFS Filesystem in Linux with few easy steps.
|
||||
|
||||
If you have any questions or feedback, feel free to comment below.
|
||||
|
||||
Kindly support us by sharing this article with wider circle.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.2daygeek.com/extend-increase-vxvm-volume-vxfs-filesystem-linux/
|
||||
|
||||
作者:[Jayabal Thiyagarajan][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.2daygeek.com/author/jayabal/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.2daygeek.com/create-vxvm-volume-vxfs-filesystem-linux/
|
||||
[2]: https://www.2daygeek.com/create-veritas-shared-vxfs-file-system-linux/
|
||||
[3]: https://www.2daygeek.com/linux-check-disk-space-usage-df-command/
|
||||
[4]: https://www.2daygeek.com/wp-content/uploads/2023/07/extend-increase-vxvm-volume-vxfs-filesystem-linux-1024x201.jpg
|
@ -1,105 +0,0 @@
|
||||
[#]: subject: "How to map LUN, Disk, LVM and FileSystem in Linux"
|
||||
[#]: via: "https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-lvm-info-linux/"
|
||||
[#]: author: "Rasool Cool https://www.2daygeek.com/author/rasool/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How to map LUN, Disk, LVM and FileSystem in Linux
|
||||
======
|
||||
|
||||
There are situations where you want to map storage LUN (Logical Unit Number), Block Device, LVM (LV & VG names) and File System (FS) information for FS expansion or Disaster Recovery (DR) operation.
|
||||
|
||||
This is a routine activity for most Linux administrators, and we usually use some script that displays the block device mapping against SAN LUN, and then we will manually add the LVM and File System information to complete the operation.
|
||||
|
||||
Going forward, you don’t need to manually intervene on this activity because these information can be mapped by shell script as shown below.
|
||||
|
||||
**Refer the following articles similar to this:**
|
||||
|
||||
* **[How to Find SAN disk LUN id in Linux][1]**
|
||||
* **[How to map ASM disks to Physical disks in Linux][2]**
|
||||
* **[How to map SAN LUN, Disk and FileSystem in Linux][3]**
|
||||
|
||||
|
||||
|
||||
### Shell Script to map LUN, Disk, LVM and FileSystem in Linux
|
||||
|
||||
This small shell script helps you to identify which SAN disks are mapped to which Block devices, LV, VG and Filesystem on Linux.
|
||||
|
||||
**Make a Note:** We have excluded **‘sda’** disk because this is Operating System (OS) disk, which has multiple partitions.
|
||||
|
||||
```
|
||||
|
||||
vi block_device_mapping_with_LUN_FS_LVM.sh
|
||||
|
||||
#!/bin/bash
|
||||
for bdevice in `lsblk | grep disk | awk '{print $1}' | grep -v 'sda'`
|
||||
do
|
||||
for mpoint in `lsblk /dev/$bdevice | grep lvm | awk '{print $NF}'`
|
||||
do
|
||||
LVM_INFO=`lvs -o +devices | grep -i $bdevice | awk '{print $1,$2}'`
|
||||
LUN_ID=`lsscsi --scsi | grep $bdevice | awk '{print $NF}'`
|
||||
echo "$bdevice --> $mpoint --> $LVM_INFO --> $LUN_ID"
|
||||
done
|
||||
done
|
||||
|
||||
```
|
||||
|
||||
Set an executable permission to **‘block_device_mapping_with_LUN_FS_LVM.sh’** file.
|
||||
|
||||
```
|
||||
|
||||
chmod +x block_device_mapping_with_LUN_FS_LVM.sh
|
||||
|
||||
```
|
||||
|
||||
Finally run the script to view the results.
|
||||
|
||||
```
|
||||
|
||||
sh block_device_mapping_with_LUN_FS_LVM.sh
|
||||
|
||||
```
|
||||
|
||||
![][4]
|
||||
|
||||
**Make a Note:** In the above output, device **`sdb`** won’t show any LUN info because it’s a virtual disk added from VMWare end, which doesn’t have any LUN. Other 3 disks are mapped from Storage which is why can see LUN info.
|
||||
|
||||
If you would like to run the above script on the fly, use the following one liner script.
|
||||
|
||||
```
|
||||
|
||||
for bdevice in `lsblk | grep disk | awk '{print $1}' | grep -v 'sda'`; do for mpoint in `lsblk /dev/$bdevice | grep lvm | awk '{print $NF}'`; do LVM_INFO=`lvs -o +devices | grep -i $bdevice | awk '{print $1,$2}'`; LUN_ID=`lsscsi --scsi | grep $bdevice | awk '{print $NF}'`; echo "$bdevice --> $mpoint --> $LVM_INFO --> $LUN_ID"; done; done
|
||||
|
||||
sdb --> [SWAP] --> swap2lv swapvg --> -
|
||||
sdc --> /appserver --> appserver_lv appserver_vg --> 360000670000415600477312020662021
|
||||
sdd --> /data --> data_lv data_vg --> 360000670000415600477312020662022
|
||||
sde --> /backup --> backup_lv backup_vg --> 360000670000415600477312020662023
|
||||
|
||||
```
|
||||
|
||||
##### Wrapping Up
|
||||
|
||||
In this tutorial, we’ve shown you how to check LUN presented from SAN with underlying OS disk, LV Name, VG Name and associated Filesystem on Linux.
|
||||
|
||||
If you have any questions or feedback, feel free to comment below.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-lvm-info-linux/
|
||||
|
||||
作者:[Rasool Cool][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.2daygeek.com/author/rasool/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.2daygeek.com/find-san-disk-lun-id-linux/
|
||||
[2]: https://www.2daygeek.com/shell-script-map-oracle-asm-disks-physical-disk-lun-in-linux/
|
||||
[3]: https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-linux/
|
||||
[4]: https://www.2daygeek.com/wp-content/uploads/2023/06/map-san-lun-physical-disk-filesystem-lvm-info-linux-1024x155.jpg
|
@ -1,195 +0,0 @@
|
||||
[#]: subject: "What is a Virtual Machine?"
|
||||
[#]: via: "https://itsfoss.com/virtual-machine/"
|
||||
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
What is a Virtual Machine?
|
||||
======
|
||||
|
||||
**A virtual machine (VM) is an emulated version of a physical computer that mimics the functions and allocates the resources in a virtual environment.**
|
||||
|
||||
Simply put, you have another operating system running as a regular application like a media player or web browser in your current operating system.
|
||||
|
||||
![Windows 10 running in VirtualBox inside Manjaro Linux][1]
|
||||
|
||||
You can do the same things in a VM compared to a bare metal machine (a real computer like your laptop or PC). For instance, connecting to a network, downloading software, updating the operating system, and more.
|
||||
|
||||
Of course, depending on the use case, the experience will be different from a physical computer.
|
||||
|
||||
Let us explore virtual machines, their use-cases, and how they work.
|
||||
|
||||
### Virtual Machines: The Origins
|
||||
|
||||
![][2]
|
||||
|
||||
Virtual Machine is one of the most significant software-based innovation. It has its roots as early as **1966** with **IBM CP-40 and CP-67** virtual machine operating systems, where the concept of virtual memory and resources was researched/tested.
|
||||
|
||||
Fast forward to 2023, when we publish this article, VMs are everywhere, from personal computers to enterprises and small businesses. Everyone uses a VM in one form or the other.
|
||||
|
||||
Considering all of that, it is evident that Virtual Machines (VMs) are immensely useful. But how does it work, and what exactly do we use it for?
|
||||
|
||||
💡
|
||||
|
||||
Bare Metal = The actual physical computer like your PC or laptop
|
||||
Host OS = The operating system on your actual computer
|
||||
Guest OS = The operating system running inside VM
|
||||
VM = Virtual Machine, the generic term for the virtualization application
|
||||
|
||||
### Here's How Virtual Machines Work
|
||||
|
||||
![][3]
|
||||
|
||||
The concept of virtualization should help you clarify how virtual machines work.
|
||||
|
||||
To give you a quick reminder from one of our articles:
|
||||
|
||||
" _Virtualization provides an abstract concept of computer hardware to help you create virtual machines (VMs), networks, storage, and more._ "
|
||||
|
||||
**Virtualization** lets a user utilize physical system resources in a virtual environment. This enables a process to use the resources separately without tampering with the physical computer.
|
||||
|
||||
And **Virtual Machine is the process** that uses this ability, where you get virtual resources in the form of a virtual disk, RAM, and other configuration files to allow you to run an operating system on top of it.
|
||||
|
||||
You might already know some [virtualization software for Linux][4] that help you create these virtual machines.
|
||||
|
||||
**Suggested Read 📖**
|
||||
|
||||
![][5]
|
||||
|
||||
To give you a technical difference between a virtual machine and a physical computer, here's a diagram to help you learn:
|
||||
|
||||
![][6]
|
||||
|
||||
### Why Do We Use Virtual Machines?
|
||||
|
||||
Virtual Machines have become a versatile concept that comes in handy for almost every little thing—one of the reasons why you should [run Linux in virtual machines][7].
|
||||
|
||||
Not just for individual users, but it is also a key highlight in cloud computing, which is a massive part of the internet.
|
||||
|
||||
![][8]
|
||||
|
||||
Some of the tasks that VMs help achieve include:
|
||||
|
||||
* Software testing
|
||||
* Operating system testing
|
||||
* Enhancing your online privacy for temporary web browsing sessions
|
||||
* Cybersecurity research without tampering physical computer
|
||||
* Using VMs as servers to host more VMs (thereby making efficient use of hardware resources) on the same hardware
|
||||
* All kinds of development activity with great flexibility of migration, cloning, etc.
|
||||
* Replicating systems in the cloud using VMs
|
||||
|
||||
|
||||
|
||||
So, the virtual machine's isolation capability helps us use it for testing and development and use it as the core for server scalability and flexibility.
|
||||
|
||||
**Suggested Read 📖**
|
||||
|
||||
![][5]
|
||||
|
||||
No matter whether you are a student, professional, or an enterprise, you will find the use of a virtual machine handy at one point of time.
|
||||
|
||||
### Do Virtual Machines Consume System Resources?
|
||||
|
||||
When you create a virtual machine to run another operating system in it, you allocate some system resources to it. They are primarily:
|
||||
|
||||
* CPU: Consumed only when the operating system is running in the VM
|
||||
* RAM: Consumed only when the operating system is running in the VM
|
||||
* Disk space: Reserved when you create the VM. Occupied irrespective of whether the VM is running or not.
|
||||
|
||||
|
||||
|
||||
A few people think the CPU and RAM will be utilized all the time. That's not true. RAM and CPUs are consumed only when the VM is running an operating system.
|
||||
|
||||
However, disk space is always reserved even when the VMs are not running.
|
||||
|
||||
### Types of Virtualization That Make it All Possible
|
||||
|
||||
If you are curious about the virtualization concept responsible for helping create a virtual machine, let me highlight all the different types of it and briefly explain it.
|
||||
|
||||
A hypervisor manages the hardware while separating the system resources from the virtual environment. It is technically labeled as a " **Virtual Machine Monitor (VMM)** "
|
||||
|
||||
And the hypervisor is the **software responsible for letting** An excellent **you create and run virtual machines.**
|
||||
|
||||
There are two types of hypervisors including:
|
||||
|
||||
* **Type 1 hypervisor** : This is directly connected to the physical machine for managing resources for the VM. An excellent example for it is [KVM][9], which comes baked with Linux.
|
||||
* **Type 2 hypervisor:** This exists on top of an operating system as an application that lets you manage VM resources and more—for instance, [VirtualBox][10].
|
||||
|
||||
|
||||
|
||||
While the hypervisor makes virtualization possible, the types of virtualization available make your experience hassle-free facilitating the features you get with a VM.
|
||||
|
||||
Some of the relevant types include:
|
||||
|
||||
* **Storage virtualization** : This helps creating a virtual disk by splitting the available disk space to small chunks reserved to be used by a virtual machine.
|
||||
* **Network virtualization** allows the physical network connection to be routed through virtual networks (or adapters) to the virtual machines.
|
||||
* **Desktop virtualization** : **** With this, you can deploy multiple virtual desktop environments to multiple physical machines at the same time. Configuration and management of all the virtual desktops is possible from a central point.
|
||||
|
||||
|
||||
|
||||
To explore all the technical details, I recommend checking out [AWS's documentation on virtualization][11].
|
||||
|
||||
### Advantages of Virtual Machines
|
||||
|
||||
![][12]
|
||||
|
||||
While their use cases already give you an idea of the benefits they give you, let me add some pointers for you to know better:
|
||||
|
||||
* Virtual Machines let you use the hardware resources fully without tampering with the host.
|
||||
* With VMs, you get the freedom to test or break whatever you want. Whether it is a super old application or a risky software, you can rely on the VM to do it all without affecting your host.
|
||||
* You can run multiple operating systems from a single place without needing the hassle of dual-boot or adding extra physical drives to use other operating systems. Thereby saving you cost, time, and management trouble.
|
||||
* With VMs, you can clone your configurations quickly without needing additional hardware.
|
||||
|
||||
|
||||
|
||||
### Disadvantages of Virtual Machines
|
||||
|
||||
![][13]
|
||||
|
||||
Considering VMs are helpful in many scenarios, how can they be harmful?
|
||||
|
||||
Well, not precisely drawbacks to using them, but you need to be cautious about some of the things they can do:
|
||||
|
||||
* Even though virtual machines are known to use resources efficiently, they can still overwhelm the system resources if you do not monitor them or run multiple VMs without thinking about it.
|
||||
* Virtual Machines can never replace bare metal experience and performance. No matter how mighty the host is, VMs run slower than you would expect with a physical computer.
|
||||
* Virtual Machines are isolated from the host, but you must be careful about file sharing that might expose malware to your host system.
|
||||
|
||||
|
||||
|
||||
### Virtual Machines Are Super Useful
|
||||
|
||||
The concept of VMs made a lot of things happen.
|
||||
|
||||
What do you think would have happened to the cloud computing industry? How inconvenient would it be to always re-install operating systems to try a different one?
|
||||
|
||||
💬 _In one form or the other, every computer user or server user does need it. What are your thoughts on a virtual machine? How would you define it?_
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/virtual-machine/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][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/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/content/images/2023/08/windows-without-menu.png
|
||||
[2]: https://itsfoss.com/content/images/2023/06/origin.png
|
||||
[3]: https://itsfoss.com/content/images/2023/06/vm.png
|
||||
[4]: https://itsfoss.com/virtualization-software-linux/
|
||||
[5]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png
|
||||
[6]: https://itsfoss.com/content/images/2023/06/vm-vs-physical-computer.png
|
||||
[7]: https://itsfoss.com/why-linux-virtual-machine/
|
||||
[8]: https://itsfoss.com/content/images/2023/06/why-we-use-vm.png
|
||||
[9]: https://www.linux-kvm.org/page/Main_Page?ref=itsfoss.com
|
||||
[10]: https://www.virtualbox.org/?ref=itsfoss.com
|
||||
[11]: https://aws.amazon.com/what-is/virtualization/?ref=itsfoss.com
|
||||
[12]: https://itsfoss.com/content/images/2023/08/advantage.png
|
||||
[13]: https://itsfoss.com/content/images/2023/08/disadvantage.png
|
@ -1,232 +0,0 @@
|
||||
[#]: subject: "Using Your Phone as Camera and Mic in Ubuntu Linux"
|
||||
[#]: via: "https://itsfoss.com/ubuntu-phone-camera-mic/"
|
||||
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Using Your Phone as Camera and Mic in Ubuntu Linux
|
||||
======
|
||||
|
||||
Like many other Linux users, I use a desktop and unlike a laptop, you don't get a camera and mic pre-installed.
|
||||
|
||||
And you have to invest in a premium webcam to match the quality of your modern smartphone.
|
||||
|
||||
Well, in this tutorial, I will walk you through step-by-step how you can use your phone as a mic and camera which can be used in online meetings.
|
||||
|
||||
### Use the phone's camera and mic in Ubuntu
|
||||
|
||||
🚧
|
||||
|
||||
This tutorial utilizes a third-party website <https://vdo.ninja/> to host audio and video. Thus, it is not a completely open source solution.
|
||||
|
||||
Here, I will guide you through the following:
|
||||
|
||||
* Installation of OBS (if you haven't)
|
||||
* Generate invite through `vdo.ninja`
|
||||
* Setup virtual audio cable (for audio output)
|
||||
* Configure OBS to redirect audio and video from `vdo.ninja`
|
||||
|
||||
|
||||
|
||||
So let's start with the first one.
|
||||
|
||||
📋
|
||||
|
||||
I have used Ubuntu in the tutorial. However, I believe that the same can be achieved on other distributions as well. You just have to install the needed packages for your distro and it should work. I let you experiment.
|
||||
|
||||
#### 1\. Install OBS in Ubuntu
|
||||
|
||||
OBS (Open Broadcaster Software) is one of the best software for recording and streaming videos and most streamers use OBS to live stream on digital platforms.
|
||||
|
||||
The good thing is OBS is available in the default repository of Ubuntu and can be installed using the following command:
|
||||
|
||||
```
|
||||
|
||||
sudo apt install obs-studio
|
||||
|
||||
```
|
||||
|
||||
#### 2\. Generate an invite through VDO.ninja
|
||||
|
||||
In this section, I will show you how you can generate an invite to stream your audio and video over vdo.ninja and how you can start streaming from your phone.
|
||||
|
||||
First, go to [VDO.ninja][1] and click on `Create Reusable Invite`:
|
||||
|
||||
![][2]
|
||||
|
||||
It will show you multiple options such as quality settings, adding video effects, etc. I recommend using the default settings as you may need faster processing and more bandwidth for high-quality videos:
|
||||
|
||||
And to create a link, all you have to do is click on `GENERATE THE INVITE LINK` button:
|
||||
|
||||
![][3]
|
||||
|
||||
And it will show you the following:
|
||||
|
||||
* A QR code that you have to scan through your phone (alternatively, you can also use the link).
|
||||
* Link for the OBS.
|
||||
|
||||
|
||||
|
||||
**I will cover the OBS part later on this tutorial so please don't close the window.**
|
||||
|
||||
First, scan the QR code from your smartphone and it will redirect you to another page of the VDO.ninja where you have to select the following:
|
||||
|
||||
* Select `Share your Camera` option.
|
||||
* You can choose a front or rear camera from the video source (the front will be selected by default).
|
||||
* Hit the `Start` button and it will start the streaming on the OBS link.
|
||||
|
||||
|
||||
|
||||
![][4]
|
||||
|
||||
#### 3\. Setup a virtual cable for OBS on Ubuntu
|
||||
|
||||
🚧
|
||||
|
||||
The method will only work with the PulseAudio and the virtual cable will be flushed out once you reboot.
|
||||
|
||||
First, let's talk about what is virtual cable and why you need it to use your phone as a camera and mic.
|
||||
|
||||
The virtual cable is software used for transfering audio streams from one application to another.
|
||||
|
||||
But the sad part is that it is only available for Windows and macOS.
|
||||
|
||||
Hmmmm???? So why am I writing this?
|
||||
|
||||
The answer is simple. I found a workaround to this where you can have the same functionality as a virtual cable for **the current session**.
|
||||
|
||||
To set up a virtual cable, first, you have to load the `module-null-sink` module using the following command:
|
||||
|
||||
```
|
||||
|
||||
pactl load-module module-null-sink sink_name=Source
|
||||
|
||||
```
|
||||
|
||||
And then, execute the given command to create a virtual audio source named `VirtualMic`:
|
||||
|
||||
```
|
||||
|
||||
pactl load-module module-virtual-source source_name=VirtualMic master=Source.monitor
|
||||
|
||||
```
|
||||
|
||||
Both commands will return some numbers that you don't have to worry about.
|
||||
|
||||
Now, go to the system settings, and there you will find settings for sound:
|
||||
|
||||
![][5]
|
||||
|
||||
Next, go to the `Input` section and there, you will find the option to choose an input device.
|
||||
|
||||
Chose `VirtualMic` as an input device:
|
||||
|
||||
![][6]
|
||||
|
||||
That's it!
|
||||
|
||||
But as I said earlier, once you reboot the effect of virtual audio will be flushed and if you regularly want to use your phone as a camera and mic, it can be inconvenient.
|
||||
|
||||
To cater to this, you can [create an alias][7] for those two commands. For example, you can create aliases for both commands: vc1 and vc2.
|
||||
|
||||
Once done, you can [execute both commands at once][8] like this: `vc1 && vc2`.
|
||||
|
||||
#### 4\. Setup OBS to stream audio and video from the phone
|
||||
|
||||
First, open the VDO.ninja tab that I told you not to close and copy the OBS link:
|
||||
|
||||
![][9]
|
||||
|
||||
Once copied, open OBS, and under the `Sources` section, you will find a ➕ (plus) button. Click that button and select `Browser`.
|
||||
|
||||
It will open a little prompt to create/select a source. Simply press the `OK` button:
|
||||
|
||||
![][10]
|
||||
|
||||
Finally, paste the link in the `URL` field:
|
||||
|
||||
![][11]
|
||||
|
||||
And soon, you will see OBS using your phone's camera:
|
||||
|
||||
![][12]
|
||||
|
||||
But there are a few extra steps to get audio from your phone.
|
||||
|
||||
First, click on the `File` and choose `Settings`:
|
||||
|
||||
![][13]
|
||||
|
||||
There, Choose `Audio` and look for the `Advanced` section.
|
||||
|
||||
In the Advanced section, you will find an option for `Monitoring Device` and there you have to choose `Souce Audio/Sink sink`:
|
||||
|
||||
![][14]
|
||||
|
||||
Apply the changes.
|
||||
|
||||
For most users, the audio should be working by now. But if yours don't then here's how you can make it work.
|
||||
|
||||
In the Audio Mixer section, it will be either the `Browser` or the `Desktop Audio` , or you may also see both of them.
|
||||
|
||||
Click on those three dots for Desktop Audio or Browser (in my case, it's Desktop Audio) and choose `Advanced Audio Properties`:
|
||||
|
||||
![][15]
|
||||
|
||||
From there, choose `Monitor and Output` for the Browser and Desktop Audio:
|
||||
|
||||
![][16]
|
||||
|
||||
And that's it! You can enjoy the camera and mic from your phone.
|
||||
|
||||
#### 5\. Test the whole setup
|
||||
|
||||
To test this, I used my phone as a camera and mic in our book club's weekly meeting and it worked flawlessly.
|
||||
|
||||
![][17]
|
||||
|
||||
As you can see, the above image indicates a working mic and camera (which brought a smile to my face 😸).
|
||||
|
||||
The video quality depends on the internet bandwidth so make sure you have a good connection before starting an important meeting.
|
||||
|
||||
### Wrapping Up...
|
||||
|
||||
I'm one of those desktop users who don't have access to a camera and mic and have to rely on a laptop or mobile for office meetings and I was irritated by that.
|
||||
|
||||
Remember, you have to create a virtual cable every time you reboot, but it won't take much time as it takes two command executions.
|
||||
|
||||
Have used this solution multiple times and it worked every time I put it to the test. I really hope you will have the same output.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/ubuntu-phone-camera-mic/
|
||||
|
||||
作者:[Sagar Sharma][a]
|
||||
选题:[lujun9972][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/lujun9972
|
||||
[1]: https://vdo.ninja/
|
||||
[2]: https://itsfoss.com/content/images/2023/08/Click-on-create-reusable-Invite-button.png
|
||||
[3]: https://itsfoss.com/content/images/2023/08/Click-on-the-generate-invite-link-button.png
|
||||
[4]: https://itsfoss.com/content/images/2023/08/setup-vdo.ninja-on-phone.png
|
||||
[5]: https://itsfoss.com/content/images/2023/08/Open-sound-settings.png
|
||||
[6]: https://itsfoss.com/content/images/2023/08/Choose-virtul-mic-as-an-audio-input-in-Linux-to-use-phone-s-camera-and-mic-.png
|
||||
[7]: https://linuxhandbook.com/linux-alias-command/
|
||||
[8]: https://linuxhandbook.com/run-multiple-commands/
|
||||
[9]: https://itsfoss.com/content/images/2023/08/Copy-link-for-OBS.png
|
||||
[10]: https://itsfoss.com/content/images/2023/08/Create-new-source-for-streaming-in-OBS-to-use-camera-and-mic-of-your-phone-in-Ubuntu-1.png
|
||||
[11]: https://itsfoss.com/content/images/2023/08/Paste-VDO.ninja-link-in-OBS-to-use-your-phone-s-camera-and-mic-in-Ubuntu-Linux.png
|
||||
[12]: https://itsfoss.com/content/images/2023/08/Stream-audio-and-video-from-your-phone-to-Ubuntu-Linux-using-OBS.png
|
||||
[13]: https://itsfoss.com/content/images/2023/08/Open-settings-in-OBS.png
|
||||
[14]: https://itsfoss.com/content/images/2023/08/Choose-virtual-audio-in-OBS-to-use-phone-s-mic-in-ubuntu-Linux.png
|
||||
[15]: https://itsfoss.com/content/images/2023/08/Choose-advanced-option-to-use-audio-from-phone-in-Ubuntu-linux-using-OBS.png
|
||||
[16]: https://itsfoss.com/content/images/2023/08/Enable-monitor-and-output-for-OBS.png
|
||||
[17]: https://itsfoss.com/content/images/2023/08/Using-phone-s-camera-and-mic-in-Ubuntu-Linux.png
|
@ -0,0 +1,235 @@
|
||||
[#]: subject: "Boot From a USB Drive in VirtualBox in Linux"
|
||||
[#]: via: "https://itsfoss.com/virtualbox-boot-from-usb/"
|
||||
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Boot From a USB Drive in VirtualBox in Linux
|
||||
======
|
||||
|
||||
Got a live Linux USB? The usual way to test it on your current system is to reboot and choose to boot from the live USB when the system restarts.
|
||||
|
||||
But that's annoying as you need to quit working on your computer and restart it.
|
||||
|
||||
A less disruptive way is to use a VM.
|
||||
|
||||
Yes, you can boot from a USB in a virtual machine with VirtualBox. This way, you don't have to install a distribution in VM just to try it. Use the live session instead.
|
||||
|
||||
In this tutorial, I'll show the steps to boot from a USB drive in VirtualBox on Linux systems. It takes some time and effort but saves you from rebooting your system.
|
||||
|
||||
### Boot from USB drive in VirtualBox in Linux
|
||||
|
||||
Since this is a tutorial for advanced users, I am leaving out a few steps that you need beforehand**:**
|
||||
|
||||
* VirtualBox installed on your Linux system
|
||||
* A live Linux USB, preferably [Using Ventoy][1]
|
||||
|
||||
|
||||
|
||||
![][2]
|
||||
|
||||
This guide is divided into three parts:
|
||||
|
||||
* Create a virtual machine disk file
|
||||
* Boot using USB in VM
|
||||
* Removing virtual machine disk (optional)
|
||||
|
||||
|
||||
|
||||
So let's start with the first one.
|
||||
|
||||
#### Step 1: Create a virtual machine disk file (VMDK)
|
||||
|
||||
First, you need to identify the disk name of the USB drive, and to do so, you have to [list the drives of your system][3].
|
||||
|
||||
For that purpose, I'm going to use the lsblk command:
|
||||
|
||||
```
|
||||
|
||||
lsblk
|
||||
|
||||
```
|
||||
|
||||
![][4]
|
||||
|
||||
🚧
|
||||
|
||||
Make sure to use the disk name without any numbers. In my case, Ventoy is named with sdb1 but still, I have to use the sdb only.
|
||||
|
||||
From the above image, you can see, Ventoy is listed having the `sdb1` but you have to use the name without any numbers. This means I have to use the `sdb` only, or else, it will throw an error.
|
||||
|
||||
Once you find your drive name, use the VBoxManage command in the following command to create
|
||||
|
||||
```
|
||||
|
||||
sudo VBoxManage createmedium disk --filename=/path/to/rawdisk.vmdk --variant=RawDisk --format=VMDK --property RawDrive=/dev/sda
|
||||
|
||||
```
|
||||
|
||||
In the above command, replace the path with `/path/to/rawdisk.vmdk` to where you want to save the file and `/dev/sda` with your target drive.
|
||||
|
||||
In my case, I want to create a file named `IF.vmdk` in my home directory and my target drive is `/dev/sdb`, then, I will be using the following:
|
||||
|
||||
📋
|
||||
|
||||
You have to give an absolute path to create the vmdk file!
|
||||
|
||||
```
|
||||
|
||||
sudo VBoxManage createmedium disk --filename=/home/sagar/IF.vmdk --variant=RawDisk --format=VMDK --property RawDrive=/dev/sdb
|
||||
|
||||
```
|
||||
|
||||
![][5]
|
||||
|
||||
And finally, change the permissions using the chmod command:
|
||||
|
||||
```
|
||||
|
||||
sudo chmod 777 Filename.vmdk
|
||||
|
||||
```
|
||||
|
||||
![][6]
|
||||
|
||||
#### Step 2: Boot from USB in VirtualBox in Linux
|
||||
|
||||
First, open the VirtualBox from your system menu and click on the `New` button.
|
||||
|
||||
There, name your VM and select the operating system type and its version:
|
||||
|
||||
![][7]
|
||||
|
||||
Now, click on the `Next` button and it will ask you to allocate hardware resources for your VM:
|
||||
|
||||
![][8]
|
||||
|
||||
Once you are done allocating the hardware resources, click on the `Next` button.
|
||||
|
||||
Here, you will find an option to create or add a virtual disk. Now, follow 3 simple steps:
|
||||
|
||||
* Select the 2nd option saying `Use an Existing Virtual Hard Disk File`.
|
||||
* Click on the `File` icon.
|
||||
* Hit the `Add` button and select the file ending the `.vmdk` that you created recently.
|
||||
|
||||
|
||||
|
||||
![][9]
|
||||
|
||||
Once you select the file, it will show you the name of the file, select it and hit the `Choose` option:
|
||||
|
||||
![][10]
|
||||
|
||||
It will show you the file that has been selected to boot from. Click on the next and it will show the summery of choices you've made.
|
||||
|
||||
Hit the `Finish` button:
|
||||
|
||||
![][11]
|
||||
|
||||
That's it! The VM has been created.
|
||||
|
||||
To start the VM, first, select the VM and hit the start button:
|
||||
|
||||
![][12]
|
||||
|
||||
As my USB had Ventoy, you can see, multiple distros listed here:
|
||||
|
||||
![][13]
|
||||
|
||||
Pretty cool. Right?
|
||||
|
||||
#### Step 3: Remove VM with vmdk file (optional)
|
||||
|
||||
When I tried removing the vmdk file after deleting the VM, sure, it was getting deleted but whenever I tried creating a new file having the same name, it gave me an error saying the file already exists!
|
||||
|
||||
So here, I will walk you through how you can remove the VM with the vmdk file.
|
||||
|
||||
First, turn off the VM and remove it
|
||||
|
||||
![][14]
|
||||
|
||||
Now, if you try to remove the vmdk file [using the rm command][15] and elevated privileges, you can remove it (but there's where the illusion starts).
|
||||
|
||||
For example, here, I removed the IF.vmdk file:
|
||||
|
||||
```
|
||||
|
||||
sudo rm IF.vmdk
|
||||
|
||||
```
|
||||
|
||||
![][16]
|
||||
|
||||
And now, if I try to create a new vmdk file with the same name, it gives me an error saying the file already exists:
|
||||
|
||||
![][17]
|
||||
|
||||
To remove the vmdk file, first, you have to unregister the file using the following:
|
||||
|
||||
```
|
||||
|
||||
sudo VBoxManage closemedium disk /path/to/MyDrive.vmdk
|
||||
|
||||
```
|
||||
|
||||
![][18]
|
||||
|
||||
Once done, you can remove the file using the rm command and it will be removed easily:
|
||||
|
||||
```
|
||||
|
||||
sudo rm Filename.vmdk
|
||||
|
||||
```
|
||||
|
||||
And then, if you try to create a vmdk file with the same filename, you can do that:
|
||||
|
||||
![][19]
|
||||
|
||||
There you have it!
|
||||
|
||||
### More VM tips
|
||||
|
||||
If you are looking for the fastest VM, you can use the combination of Qemu + KVM. I know it sounds complex.
|
||||
|
||||
But to make things easy, we made a dedicated guide on how to install and use Qemu on Ubuntu including enabling shared folders, clipboard, and auto-resizing:
|
||||
|
||||
![][2]
|
||||
|
||||
I hope you will find this guide helpful.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/virtualbox-boot-from-usb/
|
||||
|
||||
作者:[Sagar Sharma][a]
|
||||
选题:[lujun9972][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/lujun9972
|
||||
[1]: https://itsfoss.com/use-ventoy/
|
||||
[2]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png
|
||||
[3]: https://linuxhandbook.com/linux-list-disks/
|
||||
[4]: https://itsfoss.com/content/images/2023/07/list-drives-in-Linux.png
|
||||
[5]: https://itsfoss.com/content/images/2023/07/create-virtual-machine-disk-drive-for-virtualbox-to-boot-from-USB-drive-in-Linux.png
|
||||
[6]: https://itsfoss.com/content/images/2023/07/use-chmod-command-to-change-the-permissions.png
|
||||
[7]: https://itsfoss.com/content/images/2023/07/Create-VM-in-VirtualBox-to-boot-from-USB-in-Linux.png
|
||||
[8]: https://itsfoss.com/content/images/2023/07/allocate-RAM-and-cores-to-Vm-to-boot-from-USB-in-VirtualBox-in-Linux.png
|
||||
[9]: https://itsfoss.com/content/images/2023/07/add-virtual-machine-disk-drive-in-VirtualBox-to-boot-from-USB-in-Linux.png
|
||||
[10]: https://itsfoss.com/content/images/2023/07/select-the-vmdk-file.png
|
||||
[11]: https://itsfoss.com/content/images/2023/07/Finish-the-VM-creation-to-boot-from-USB-in-VirtualBox-in-Linux.png
|
||||
[12]: https://itsfoss.com/content/images/2023/07/start-the-VM.png
|
||||
[13]: https://itsfoss.com/content/images/2023/07/Boot-from-USB-in-VirtualBox-in-Linux.png
|
||||
[14]: https://itsfoss.com/content/images/2023/07/Remove-VM-from-VirtualBox.png
|
||||
[15]: https://linuxhandbook.com/remove-files-directories/
|
||||
[16]: https://itsfoss.com/content/images/2023/07/use-rm-command-to-remove-vmdk-file.png
|
||||
[17]: https://itsfoss.com/content/images/2023/07/unable-to-create-vmdk-file-in-Linux--file-already-exist.png
|
||||
[18]: https://itsfoss.com/content/images/2023/07/unregister-vmdk-file-in-Linux-to-remove-it.png
|
||||
[19]: https://itsfoss.com/content/images/2023/07/how-to-remove-the-vmdk-file-in-Linux.png
|
@ -0,0 +1,222 @@
|
||||
[#]: subject: "How to Configure VLAN Tagging Over Bonding on RHEL"
|
||||
[#]: via: "https://www.2daygeek.com/configure-vlan-tagging-over-network-bonding-rhel/"
|
||||
[#]: author: "Jayabal Thiyagarajan https://www.2daygeek.com/author/jayabal/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How to Configure VLAN Tagging Over Bonding on RHEL
|
||||
======
|
||||
|
||||
In Linux, you can create advanced network setups such as Network Bonding or NIC teaming, VLAN tagging, and bridging based on your needs. These advanced features allow for increased network connectivity efficiency and reliability.
|
||||
|
||||
You can create VLAN interfaces on top of another interface, such as Ethernet, bond, team, or bridge devices.
|
||||
|
||||
In this article, we will learn how to configure VLAN tagging over Network Bonding in RHEL system, which allows traffics from different networks to share common physical links.
|
||||
|
||||
### Prerequisites for tagging VLAN over Bonding:
|
||||
|
||||
* The Network team need to enable LACP (802.3ad) on the Network switch ports to aggregate the links.
|
||||
* The Network team need to configure network port as a trunk port, which enables more than one VLAN to be added to the same port. Also, get the VLAN ID from them in order to configure at OS level.
|
||||
* A Linux system should have two interfaces.
|
||||
* If it’s a physical server, we recommend configuring bonding between the On-Board and PCI interfaces to avoid a single point of failure on the network card on the host side.
|
||||
|
||||
|
||||
|
||||
#### Bonding Kernel Module
|
||||
|
||||
Check if the bonding module is already loaded on your Linux system using the **lsmod command**.
|
||||
|
||||
```
|
||||
|
||||
lsmod | grep -i bonding
|
||||
|
||||
bonding 12451 0
|
||||
|
||||
```
|
||||
|
||||
It would have loaded by default. Otherwise, load it using the **modprobe command**.
|
||||
|
||||
```
|
||||
|
||||
modprobe bonding
|
||||
|
||||
```
|
||||
|
||||
#### VLAN tagging Kernel Module
|
||||
|
||||
VLAN tagging (802.1q) is a kernel module that allows us to assign multiple IPs from different VLAN on the same Ethernet card (NIC) on Linux servers. Check if the VLAN module is already loaded on your Linux system using the lsmod command.
|
||||
|
||||
```
|
||||
|
||||
lsmod | grep 8021q
|
||||
|
||||
8021q 33080 0
|
||||
garp 14384 1 8021q
|
||||
mrp 18542 1 8021q
|
||||
|
||||
```
|
||||
|
||||
It would have loaded by default. Otherwise, load it using the modprobe command.
|
||||
|
||||
```
|
||||
|
||||
modprobe 8021q
|
||||
|
||||
```
|
||||
|
||||
### 1) LACP Bonding Configuration
|
||||
|
||||
We will be configuring LACP (Mode 4 – 802.3ad) based bonding for link aggregation, which provides increased bandwidth for bonding interface by combining two interfaces named **em1** and **p7p1**.
|
||||
|
||||
#### 1a) Creating Bond Interface
|
||||
|
||||
Create a bond interface file **`'ifcfg-bond0'`** under the directory **`'/etc/sysconfig/network-scripts/'`**.
|
||||
|
||||
```
|
||||
|
||||
vi /etc/sysconfig/network-scripts/ifcfg-bond0
|
||||
|
||||
TYPE=Bond
|
||||
DEVICE=bond0
|
||||
NAME=bond0
|
||||
BONDING_MASTER=yes
|
||||
BOOTPROTO=none
|
||||
ONBOOT=yes
|
||||
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1"
|
||||
NM_CONTROLLED=no
|
||||
|
||||
```
|
||||
|
||||
#### 1b) Configuring First Slave Interface
|
||||
|
||||
Configure the first slave interface **`'em1'`** that you want to bring into bonding. Please use the correct interface name as per your environment.
|
||||
|
||||
```
|
||||
|
||||
vi /etc/sysconfig/network-scripts/ifcfg-em1
|
||||
|
||||
TYPE=Ethernet
|
||||
BOOTPROTO=none
|
||||
DEVICE=em1
|
||||
ONBOOT=yes
|
||||
MASTER=bond0
|
||||
SLAVE=yes
|
||||
|
||||
```
|
||||
|
||||
#### 1c) Configuring Second Slave Interface
|
||||
|
||||
Configure the second slave interface **`'p7p1'`** that you want to bring into bonding. Please use the correct interface name as per your environment.
|
||||
|
||||
```
|
||||
|
||||
vi /etc/sysconfig/network-scripts/ifcfg-p7p1
|
||||
|
||||
TYPE=Ethernet
|
||||
BOOTPROTO=none
|
||||
DEVICE=p7p1
|
||||
ONBOOT=yes
|
||||
MASTER=bond0
|
||||
SLAVE=yes
|
||||
|
||||
```
|
||||
|
||||
#### Restarting network services
|
||||
|
||||
Restart the network services to enable the bonding interface or bring them up using ifup command.
|
||||
|
||||
```
|
||||
|
||||
systemctl restart network
|
||||
|
||||
```
|
||||
|
||||
### 2) VLAN tagging over Bonding Interface
|
||||
|
||||
LACP Bonding configuration has been completed and all interfaces are up and running now. Let’s configure the VLAN tagging over bonding interface by following the below procedures.
|
||||
|
||||
As discussed in the prerequisites, following are the VLANs which is mapped to the respective Ethernet Card port (em1 & p7p1) and Network switch port.
|
||||
|
||||
* VLAN ID (221), VLAN N/W = 192.168.10.0/24
|
||||
* VLAN ID (331), VLAN N/W = 192.168.20.0/24
|
||||
|
||||
|
||||
|
||||
#### 2a) Configuring VLAN 221 to Bond0
|
||||
|
||||
Create tagged interface file for VLAN id 221 as **`"/etc/sysconfig/network-scripts/ifcfg-bond0.221"`** and add the following contents.
|
||||
|
||||
```
|
||||
|
||||
vi /etc/sysconfig/network-scripts/ifcfg-bond0.221
|
||||
|
||||
DEVICE=bond0.221
|
||||
BOOTPROTO=none
|
||||
ONBOOT=yes
|
||||
IPADDR=192.168.10.100
|
||||
NETMASK=255.255.255.0
|
||||
GATEWAY=192.168.10.1
|
||||
VLAN=yes
|
||||
NM_CONTROLLED=no
|
||||
|
||||
```
|
||||
|
||||
#### 2b) Configuring VLAN 331 to Bond0
|
||||
|
||||
Create tagged interface file for VLAN id 331 as **`"/etc/sysconfig/network-scripts/ifcfg-bond0.331"`** and add the following contents.
|
||||
|
||||
```
|
||||
|
||||
vi /etc/sysconfig/network-scripts/ifcfg-bond0.331
|
||||
|
||||
DEVICE=bond0.331
|
||||
BOOTPROTO=none
|
||||
ONBOOT=yes
|
||||
IPADDR=192.168.20.100
|
||||
NETMASK=255.255.255.0
|
||||
GATEWAY=192.168.20.1
|
||||
VLAN=yes
|
||||
NM_CONTROLLED=no
|
||||
|
||||
```
|
||||
|
||||
#### Restarting network services
|
||||
|
||||
Restart the network services to enable the bonding interface or bring them up using ifup command.
|
||||
|
||||
```
|
||||
|
||||
systemctl restart network
|
||||
|
||||
```
|
||||
|
||||
### Verify VLAN Tagging Configuration
|
||||
|
||||
Finally verify whether the VLAN tagged interface are configured and up & running using the **[ip command][1]**.
|
||||
|
||||
Yes, I could see **`'bondo.221@bond0'`** and **`'bon0.331@bond0'`** with two different IPs and was able to access the system via ssh without any problems. So, VLAN tagging works as expected.
|
||||
|
||||
![][2]
|
||||
|
||||
##### Conclusion
|
||||
|
||||
Congratulations, you have learned how to configure VLAN tagging over LACP bonding on a RHEL system, which listens for two VLANs. VLAN tagging is not limited to two VLANs, multiple VLANs are supported, which you can add according to the network configuration of that VLAN.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.2daygeek.com/configure-vlan-tagging-over-network-bonding-rhel/
|
||||
|
||||
作者:[Jayabal Thiyagarajan][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.2daygeek.com/author/jayabal/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.2daygeek.com/linux-ip-command-configure-network-interface/
|
||||
[2]: https://www.2daygeek.com/wp-content/uploads/2023/09/configure-vlan-tagging-over-bonding-rhel-1024x395.jpg
|
@ -1,173 +0,0 @@
|
||||
[#]: subject: "How to Change the default kernel in RHEL 8 and 9"
|
||||
[#]: via: "https://www.2daygeek.com/changing-default-kernel-rhel-8-rhel-9/"
|
||||
[#]: author: "Rasool Cool https://www.2daygeek.com/author/rasool/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "onionstalgia"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
如何更改 RHEL 8 和 9 的默认内核
|
||||
======
|
||||
|
||||
通常 Linux 系统会默认引导系统进入最新安装的内核,并保留最新的 3 个 Linux 内核引导条目。
|
||||
|
||||
假设你已经执行了 yum update,并且新的内核作为更新的一部分已经安装了。这时,由于这个新内核与应用程序不兼容,它会阻止应用程序启动。
|
||||
|
||||
想要暂时解决这个问题,你应该还是引导系统进入旧内核。
|
||||
|
||||
在本文中,我们将向您展示如何使用 grubby 工具将旧的内核版本设置为 RHEL 8 和 RHEL 9 系统上的默认版本。
|
||||
|
||||
* [**如何从 RHEL 7 升级到 RHEL 8?**][1]
|
||||
|
||||
|
||||
|
||||
### grubby 是什么
|
||||
|
||||
grubby 是一个命令行工具,用于在多个架构上更新和显示引导加载配置文件的信息。
|
||||
|
||||
### 检查当前引导的内核
|
||||
|
||||
你可以使用如下的 ``uname`` 命令来检查当前引导/加载的内核。
|
||||
|
||||
```
|
||||
|
||||
uname -r
|
||||
|
||||
4.18.0-477.13.1.el8_8.x86_64
|
||||
|
||||
```
|
||||
|
||||
### 列出默认内核
|
||||
|
||||
使用 grubby 验证默认内核版本,运行以下命令:
|
||||
|
||||
```
|
||||
|
||||
grubby --default-kernel
|
||||
|
||||
/boot/vmlinuz-4.18.0-477.13.1.el8_8.x86_64
|
||||
|
||||
```
|
||||
|
||||
要获取当前默认内核的索引号,请运行以下命令:
|
||||
|
||||
```
|
||||
|
||||
grubby --default-index
|
||||
0
|
||||
|
||||
```
|
||||
|
||||
### 检查已安装的内核
|
||||
|
||||
要检查已安装的内核的列表,请运行以下命令:
|
||||
|
||||
我们来解释以下的输出信息。最新安装的内核的**条目索引**为**`0`**,接下来的 **较旧的内核** 版本将会是 **`1`**,第二个更旧的内核版本将会是**`2`**,而**救援内核** 的条目索引将会是 **`3`**。
|
||||
|
||||
```
|
||||
|
||||
grubby --info=ALL | egrep -i 'index|title'
|
||||
|
||||
index=0
|
||||
title="Red Hat Enterprise Linux (4.18.0-477.13.1.el8_8.x86_64) 8.8 (Ootpa)"
|
||||
index=1
|
||||
title="Red Hat Enterprise Linux (4.18.0-425.19.2.el8_7.x86_64) 8.7 (Ootpa)"
|
||||
index=2
|
||||
title="Red Hat Enterprise Linux (4.18.0-425.13.1.el8_7.x86_64) 8.7 (Ootpa)"
|
||||
index=3
|
||||
title="Red Hat Enterprise Linux (0-rescue-13iu76884ec5490puc67j8789s249b0c) 8.2 (Ootpa)"
|
||||
|
||||
```
|
||||
|
||||
### 更改默认内核引导条目
|
||||
|
||||
我们可以用两种方式,使用 **`'内核文件名'`**,或者使用 **`'内核条目索引'`**。我们设置“ ** index =1 (4.18.0-425.19.2.el8_7.x86_64)** ”为默认内核,以此满足应用程序的依赖关系。
|
||||
|
||||
```
|
||||
|
||||
语法:
|
||||
grubby --set-default [kernel-filename]
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
grubby --set-default /boot/vmlinuz-4.18.0-425.19.2.el8_7.x86_64
|
||||
或者
|
||||
grubby --set-default vmlinuz-4.18.0-425.19.2.el8_7.x86_64
|
||||
|
||||
```
|
||||
|
||||
使用内核条目索引更改默认的内核引导:
|
||||
|
||||
```
|
||||
|
||||
语法:
|
||||
grubby --set-default-index=[kernel-entry-index]
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
grubby --set-default-index=1
|
||||
|
||||
```
|
||||
|
||||
### 重启系统
|
||||
|
||||
重启系统,检查旧内核是否持久更改。
|
||||
|
||||
```
|
||||
|
||||
reboot
|
||||
或者
|
||||
init 6
|
||||
|
||||
```
|
||||
|
||||
### 验证更改
|
||||
|
||||
让我们检查一下在上一步中添加的内核是否生效了。好了,按我们的预期使用了较旧的内核 **`'N-1'`** 进行引导了。
|
||||
|
||||
```
|
||||
|
||||
uname -r
|
||||
4.18.0-425.19.2.el8_7.x86_64
|
||||
|
||||
grubby --default-kernel
|
||||
/boot/vmlinuz-4.18.0-425.19.2.el8_7.x86_64
|
||||
|
||||
```
|
||||
|
||||
要检查所有内核的详细信息,请运行以下命令:
|
||||
|
||||
```
|
||||
|
||||
grubby --info=ALL
|
||||
|
||||
```
|
||||
|
||||
![][2]
|
||||
|
||||
##### 总结
|
||||
|
||||
在本教程中,我们展示了如何使用 grubby 工具在 RHEL 8 和 RHEL 9 系统上将旧版本内核设置为默认。
|
||||
|
||||
如果有任何问题或反馈,欢迎在下方发表评论。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.2daygeek.com/changing-default-kernel-rhel-8-rhel-9/
|
||||
|
||||
作者:[Rasool Cool][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[onionstalgia](https://github.com/onionstalgia)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.2daygeek.com/author/rasool/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.2daygeek.com/upgrading-from-rhel-7-to-rhel-8/
|
||||
[2]: https://www.2daygeek.com/wp-content/uploads/2023/06/changing-default-kernel-rhel-8-rhel-9-1024x494.jpg
|
@ -0,0 +1,224 @@
|
||||
[#]: subject: "How to Extend Veritas File System (VxFS) in Linux"
|
||||
[#]: via: "https://www.2daygeek.com/extend-increase-vxvm-volume-vxfs-filesystem-linux/"
|
||||
[#]: author: "Jayabal Thiyagarajan https://www.2daygeek.com/author/jayabal/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
如何在 Linux 中扩展 Veritas 文件系统 (VxFS)
|
||||
======
|
||||
|
||||
扩展 VxFX 文件系统是 Linux/Unix 管理员的一项日常任务,可以通过以下文章中描述的几个步骤在线完成此任务:
|
||||
|
||||
在此,磁盘组没有足够的可用空间,因此我们将在现有磁盘组(DG)中添加新磁盘,然后调整其大小。
|
||||
|
||||
**相关文章:**
|
||||
|
||||
* **[如何在 Linux 中创建 VxVM 卷和文件系统][1]**
|
||||
* **[如何在 Linux 上创建共享 VxFS 文件系统][2]**
|
||||
|
||||
|
||||
|
||||
### 步骤 1:识别文件系统
|
||||
|
||||
使用 **[df 命令][3]**检查要增加/扩展的文件系统,并记下以下输出中的磁盘组 (DG) 和卷名称,稍后在运行 vxdg 和 vxresize 命令时将使用这些名称。
|
||||
|
||||
```
|
||||
|
||||
df -hP /data
|
||||
|
||||
Filesystem Size Used Avail Use% Mounted on
|
||||
/dev/vx/dsk/testdg/testvol 9.0G 8.4G 0.6G 95% /data
|
||||
|
||||
```
|
||||
|
||||
根据上面的输出,VxFS 文件系统大小为 **“9.0 GB”**,我们希望额外扩展 **“5 GB”** 并发布此活动,VxFS 大小将为 **`“14 GB”`**。
|
||||
|
||||
在本例中,DG 名称为 **“testdg”**,卷名称为 **“testvol”**。
|
||||
|
||||
### 步骤 2:获取新磁盘/LUN
|
||||
|
||||
新磁盘必须由存储团队映射到主机,这可能需要 CR 批准,因此提出 CR 并向相关团队添加必要的任务,并且还包括此活动的回滚计划。
|
||||
|
||||
### 步骤 3:扫描磁盘/LUN
|
||||
|
||||
存储团队将新 LUN 映射到主机后,获取 LUN id 并将其保存。
|
||||
|
||||
使用以下命令扫描 LUN 以在操作系统级别发现它们。
|
||||
|
||||
```
|
||||
|
||||
for disk_scan in `ls /sys/class/scsi_host`; do echo "Scanning $disk_scan…Completed"; echo "- - -" > /sys/class/scsi_host/$disk_scan/scan; done
|
||||
|
||||
Scanning host0...Completed
|
||||
Scanning host1...Completed
|
||||
.
|
||||
.
|
||||
Scanning host[N]...Completed
|
||||
|
||||
```
|
||||
|
||||
扫描完成后,使用以下命令查看是否在操作系统级别找到给定的 LUN。
|
||||
|
||||
```
|
||||
|
||||
lsscsi --scsi | grep -i [Last_Five_Digit_of_LUN]
|
||||
|
||||
```
|
||||
|
||||
### 步骤 4:在 VxVM 中查找磁盘
|
||||
|
||||
默认情况下,所有可用磁盘对 Veritas Volume Manager (VxVM) 都是可见的,可以使用 **vxdisk** 命令列出这些磁盘,如下所示。
|
||||
|
||||
```
|
||||
|
||||
vxdisk -e list
|
||||
|
||||
DEVICE TYPE DISK GROUP STATUS OS_NATIVE_NAME ATTR
|
||||
emc_01 auto:cdsdisk disk1 testdg online sdd -
|
||||
emc_02 auto:cdsdisk disk2 testdg online sde -
|
||||
emc_03 auto:none - - online invalid sdf -
|
||||
sda auto:LVM - - LVM sda -
|
||||
sdb auto:LVM - - LVM sdb -
|
||||
|
||||
```
|
||||
|
||||
磁盘 **`“sdf”`** STATUS 显示为 **`“Online invalid”`** 表示该磁盘不受 VxVM 控制。但是,请使用 **smartctl** 命令仔细检查 LUN id,以确保你选择了正确的磁盘。
|
||||
|
||||
```
|
||||
|
||||
smartctl -a /dev/sd[x]|grep -i unit
|
||||
|
||||
```
|
||||
|
||||
如果磁盘未填充到 VxVM,请执行以下命令扫描操作系统设备树中的磁盘设备。
|
||||
|
||||
```
|
||||
|
||||
vxdisk scandisks
|
||||
|
||||
```
|
||||
|
||||
### 步骤 5:在 VxVM 中初始化磁盘
|
||||
|
||||
当磁盘在**步骤 4** 中对 VxVM 可见,那么使用 **vxdisksetup** 命令初始化磁盘,如下所示:
|
||||
|
||||
```
|
||||
|
||||
vxdisksetup -i sdf
|
||||
|
||||
```
|
||||
|
||||
上面的命令将磁盘 **“sdf”** 带到 Veritas Volume Manager (VxVM),并且磁盘状态现在更改为 **`“online”`**。
|
||||
|
||||
![][4]
|
||||
|
||||
### 步骤 6:将磁盘添加到 VxVM 中的磁盘组 (DG)
|
||||
|
||||
**vxdg** 命令对磁盘组执行各种管理操作。在此示例中,我们将使用它向现有磁盘组 (DG) 添加新磁盘。
|
||||
|
||||
```
|
||||
|
||||
Syntax:
|
||||
vxdg -g [DG_Name] adddisk [Any_Name_to_Disk_as_per_Your_Wish=Device_Name]
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
vxdg -g testdg adddisk disk3=emc_03
|
||||
|
||||
```
|
||||
|
||||
运行上述命令后,**DISK** 名称为 **`“disk3”`** 且 **GROUP** 名称为 **`“testdg”`** 已针对 **“emc_03”** 设备进行更新 如下所示:
|
||||
|
||||
```
|
||||
|
||||
vxdisk -e list
|
||||
|
||||
DEVICE TYPE DISK GROUP STATUS OS_NATIVE_NAME ATTR
|
||||
emc_01 auto:cdsdisk disk1 testdg online sdd -
|
||||
emc_02 auto:cdsdisk disk2 testdg online sde -
|
||||
emc_03 auto:none disk3 testdg online sdf -
|
||||
sda auto:LVM - - LVM sda -
|
||||
sdb auto:LVM - - LVM sdb -
|
||||
|
||||
```
|
||||
|
||||
### 步骤 7:检查磁盘组 (DG) 中的可用空间
|
||||
|
||||
要确定连接卷有多少可用空间,请运行:
|
||||
|
||||
```
|
||||
|
||||
vxassist -g testdg maxsize
|
||||
|
||||
```
|
||||
|
||||
### 步骤 8:扩展 VxVM 卷和 VxFS 文件系统
|
||||
|
||||
我们为此活动添加了 **“5GB”** LUN,因此额外扩展了 VxVM 卷和 VxFS 文件系统 **`“5GB”`**,如下所示:
|
||||
|
||||
```
|
||||
|
||||
Syntax:
|
||||
vxresize -b -g [DG_Name] [Volume_Name] +[Size_to_be_Increased]
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
vxresize -b -g testdg testvol +5g
|
||||
|
||||
```
|
||||
|
||||
* **这里:**
|
||||
* vxresize:命令
|
||||
* -b:在后台执行调整大小操作(可选)。
|
||||
* -g:将命令的操作限制为给定磁盘组,由磁盘组 ID 或磁盘组名称指定。
|
||||
* testdg:我们的磁盘组 (DG) 名称
|
||||
* testvol:我们的卷名称
|
||||
* +5g:此卷将额外增加 5GB。
|
||||
|
||||
|
||||
|
||||
### 步骤 9:检查扩展 VxFS 文件系统
|
||||
|
||||
最后,使用 df 命令检查 **“/data”** 的扩展 VxFS:
|
||||
|
||||
```
|
||||
|
||||
df -hP /data
|
||||
|
||||
Filesystem Size Used Avail Use% Mounted on
|
||||
/dev/vx/dsk/testdg/testvol 14G 8.4G 5.6G 68% /data
|
||||
|
||||
```
|
||||
|
||||
##### 总结
|
||||
|
||||
在本教程中,我们向你展示了如何向现有磁盘组 (DG) 添加新磁盘,以及如何通过几个简单步骤在 Linux 中扩展 VxVM 卷和 VxFS 文件系统。
|
||||
|
||||
如果你有任何问题或反馈,请随时在下面发表评论。
|
||||
|
||||
请与更广泛的圈子分享这篇文章来支持我们。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.2daygeek.com/extend-increase-vxvm-volume-vxfs-filesystem-linux/
|
||||
|
||||
作者:[Jayabal Thiyagarajan][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.2daygeek.com/author/jayabal/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.2daygeek.com/create-vxvm-volume-vxfs-filesystem-linux/
|
||||
[2]: https://www.2daygeek.com/create-veritas-shared-vxfs-file-system-linux/
|
||||
[3]: https://www.2daygeek.com/linux-check-disk-space-usage-df-command/
|
||||
[4]: https://www.2daygeek.com/wp-content/uploads/2023/07/extend-increase-vxvm-volume-vxfs-filesystem-linux-1024x201.jpg
|
93
translated/tech/20230901 How to Check VLC Log Files.md
Normal file
93
translated/tech/20230901 How to Check VLC Log Files.md
Normal file
@ -0,0 +1,93 @@
|
||||
[#]: subject: "How to Check VLC Log Files"
|
||||
[#]: via: "https://itsfoss.com/vlc-check-log/"
|
||||
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
如何检查 VLC 日志文件
|
||||
======
|
||||
|
||||
在 VLC 上观看你喜爱的视频时,你可能会遇到与编解码器、时间戳、视频播放等相关的问题。
|
||||
|
||||
但好消息是,就像[检查防火墙的日志][1]一样,你可以使用 VLC 执行相同的操作来跟踪错误的根本原因。
|
||||
|
||||
📋
|
||||
|
||||
与 Linux 不同,VLC 不会自动保存日志,一旦关闭,所有日志都会自动删除,因此你必须手动保存它们。
|
||||
|
||||
因此,请确保在关闭 VLC 播放器之前保存或读取日志文件。
|
||||
|
||||
### 检查并保存 VLC 日志文件
|
||||
|
||||
虽然听起来很复杂,但这是最简单的方法,它不仅允许你保存日志,还可以让你读取日志而不将其保存到文件中。
|
||||
|
||||
首先,从顶部菜单栏转到`工具`菜单,然后选择`消息`,或者,你也可以按 `Ctrl + M` 达到相同的效果:
|
||||
|
||||
![][2]
|
||||
|
||||
它将显示与当前播放的视频文件相关的日志。
|
||||
|
||||
在这里,你有两种选择:你可以仅读取日志,也可以保存日志。
|
||||
|
||||
单击`消息`后,你会注意到 `Verbosity` 选项卡,因此让我们看一下多个详细程度选项的效果。
|
||||
|
||||
* `Errors`: 只会记录错误信息
|
||||
* `Warnings`: 它将总结错误和警告消息
|
||||
* `Debug`:此级别将包括错误、警告和调试消息
|
||||
|
||||
|
||||
|
||||
选择适当的详细程度选项后,你很快就会看到与所选选项相关的日志。
|
||||
|
||||
![][3]
|
||||
|
||||
正如你所看到的,当我选择 `debug` 选项时,它还包含警告日志。
|
||||
|
||||
要保存日志,请点击 `Save as...` 按钮,它将打开文件管理器,在这选择保存文件的位置并为其指定适当的名称:
|
||||
|
||||
![][4]
|
||||
|
||||
现在,你可以使用任何文本编辑器打开日志文件:
|
||||
|
||||
![][5]
|
||||
|
||||
从这里,你可以识别导致错误的罪魁祸首。
|
||||
|
||||
### 有关 VLC 的更多信息
|
||||
|
||||
你是否知道你可以使用 VLC 下载 YouTube 视频或使用 YouTube 链接来流式传输视频而无需广告?
|
||||
|
||||
嗯,VLC 能做的远不止这些。如果你有兴趣,请查看我们详细的[让 VLC 更出色的技巧指南][6]:
|
||||
|
||||
![][7]
|
||||
|
||||
想要[自动下载 VLC 字幕][8]?操作方法如下:
|
||||
|
||||
![][7]
|
||||
|
||||
我希望本指南对你有所帮助。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/vlc-check-log/
|
||||
|
||||
作者:[Sagar Sharma][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者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/lujun9972
|
||||
[1]: https://learnubuntu.com/check-firewall-logs/
|
||||
[2]: https://itsfoss.com/content/images/2023/08/Go-to-messages-to-read-logs-in-VLC.png
|
||||
[3]: https://itsfoss.com/content/images/2023/08/Choose-verbosity-to-capture-different-types-of-logs-1.png
|
||||
[4]: https://itsfoss.com/content/images/2023/08/Save-VLC-logs-1.png
|
||||
[5]: https://itsfoss.com/content/images/2023/08/Open-VLC-log-file.png
|
||||
[6]: https://itsfoss.com/simple-vlc-tips/
|
||||
[7]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png
|
||||
[8]: https://itsfoss.com/download-subtitles-automatically-vlc-media-player-ubuntu/
|
@ -0,0 +1,150 @@
|
||||
[#]: subject: "Making your Windows System Ready for Virtual Machines"
|
||||
[#]: via: "https://itsfoss.com/windows-enable-virtualization/"
|
||||
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
让你的 Windows 系统为虚拟机做好准备
|
||||
======
|
||||
|
||||
在 VirtualBox 中看到“**无法打开虚拟机会话**”错误?
|
||||
|
||||
你的系统上可能没有启用虚拟化。
|
||||
|
||||
这是在任何 Windows 支持的系统上创建虚拟机所需执行的几件事之一。
|
||||
|
||||
为了给你一个概述,你需要了解:
|
||||
|
||||
* **在你的 PC 上启用虚拟化支持**
|
||||
* **使用虚拟机程序创建/管理虚拟机**
|
||||
* **确保某些系统资源要求以无缝使用虚拟机**
|
||||
|
||||
|
||||
|
||||
这是第一件事:
|
||||
|
||||
### 在 Windows PC 上启用虚拟化
|
||||
|
||||
如果你的系统预装了 Windows 10/11,那么你很可能已经启用了虚拟化。你不需要额外的设置。
|
||||
|
||||
但如果你在系统上手动安装了 Windows,那么可能需要检查 BIOS 设置以查看它是否支持虚拟化。如果禁用,虚拟机程序将无法运行并给出错误。
|
||||
|
||||
这是使用 VirtualBox 程序时出现的错误:
|
||||
|
||||
![][1]
|
||||
|
||||
你怎么能这么做呢? 以下是基本步骤:
|
||||
|
||||
![][2]
|
||||
|
||||
1. 前往 UEFI 固件设置(或 BIOS 菜单)。你通常可以通过按“**Del**”按钮或**F1、F2、F10或F12**来访问它。
|
||||
2. 根据主板制造商的不同,用户界面会有所不同。但是,在大多数情况下,你必须进入到其中的“**高级**”选项,并访问“**CPU 配置**”设置。
|
||||
3. 在 CPU 配置中,你必须启用 “**Intel (VMX) Virtualization Technology**” 或 “**SVM Mode**”(适用于 AMD 处理器)。
|
||||
|
||||
|
||||
|
||||
下一步是什么? 考虑到你已经启用了虚拟化支持,你需要使用[虚拟化程序][3]来帮助你完成工作。
|
||||
|
||||
### 使用虚拟化程序
|
||||
|
||||
你可以选择第三方应用以方便使用,也可以选择使用 Windows 自带的 Hyper-V。
|
||||
|
||||
#### Hyper-V
|
||||
|
||||
我们不会详细介绍如何使用 Hyper-V,但为了节省你一些时间,你可以按照以下步骤启用它,然后按照其[文档][4]使用它。
|
||||
|
||||
📋
|
||||
|
||||
Hyper-V 不适用于 Windows 10/11 家庭版。
|
||||
|
||||
考虑到你的系统上安装了 Windows 专业版/教育版/企业版,可以通过**控制面板**或使用 **PowerShell** 轻松启用它。
|
||||
|
||||
![][5]
|
||||
|
||||
我更喜欢控制面板,只需在搜索栏中搜索 “Windows 功能”或通过**控制面板 → 程序 → 打开或关闭 Windows 功能**打开。
|
||||
|
||||
接下来,单击 **“Hyper-V”** 并点击 **“OK”**。就是这样。
|
||||
|
||||
![][6]
|
||||
|
||||
它将通过获取所需的文件来应用更改。你只需要等待。
|
||||
|
||||
完成后,它会要求你**重启系统**以使新功能生效。
|
||||
|
||||
![][7]
|
||||
|
||||
#### 第三方虚拟化程序
|
||||
|
||||
虽然使用 Hyper-V 可以让虚拟机获得更好的性能,但它使用起来却并不那么简单。
|
||||
|
||||
因此,建议终端用户使用第三方虚拟机程序。
|
||||
|
||||
最好的选择之一是 [VirtualBox][8]。我们还有一个指南可以帮助你使用 [VirtualBox 安装 Linux][9]。
|
||||
|
||||
![][10]
|
||||
|
||||
它是一个开源程序,具有一系列功能和用户友好的界面。你也可以在 Windows、Linux 和 macOS 上使用它。
|
||||
|
||||
你还可以选择专有(但流行)的选项,例如 [VMware Workstation][11]。
|
||||
|
||||
想了解这些程序吗?你可以查看 Linux 下的一些可用选项,了解有哪些解决方案:
|
||||
|
||||
![][12]
|
||||
|
||||
### 检查系统资源和要求
|
||||
|
||||
创建和使用虚拟机并不完全是一个非常占用资源的过程。但是,你可能需要注意一些变量。
|
||||
|
||||
其中一些包括:
|
||||
|
||||
* 确保你的系统至少有 4 GB 内存(越多越好)
|
||||
* 双核或以上 64 位处理器
|
||||
|
||||
|
||||
|
||||
如果你不知道,即使虚拟机是孤立的机器,也会占用你系统的资源。大多数最低规格建议 4 GB RAM,但**我建议使用 8 GB**。
|
||||
|
||||
如果你想要**运行两个虚拟机**,你可能需要在 Windows 上拥有**超过 8GB 的 RAM**。
|
||||
|
||||
除了内存,你应该有一个**多核**处理器。这样,一些内核可以自由地让你在主机上做其他事情,而另一些内核则用于处理虚拟机。
|
||||
|
||||
当确定了处理器和内存,接下来就是**磁盘空间**。
|
||||
|
||||
对于虚拟机来说,磁盘通常是动态分配的,也就是说,物理存储驱动器的空间会随着操作系统及其文件的增加而消耗。
|
||||
|
||||
在某些类型的虚拟磁盘中,它保留你指定的整个空间。因此,执行此操作时,请在启动之前检查可用磁盘空间。通常最好选择一个未安装 Windows 系统的单独驱动器。
|
||||
|
||||
**如果你遵循了上述所有提示,你的 Windows 系统就可以运行和管理虚拟机了。现在,你可以[**在 Windows 的虚拟机中轻松安装 Linux**][9]**。
|
||||
|
||||
![][12]
|
||||
|
||||
💬 _那么,你喜欢用什么方式来处理虚拟机?请在下面的评论中告诉我们你的想法。_
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/windows-enable-virtualization/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/content/images/2023/07/virtualbox-error.jpg
|
||||
[2]: https://itsfoss.com/content/images/2023/07/bios-asus.jpg
|
||||
[3]: https://itsfoss.com/virtualization-software-linux
|
||||
[4]: https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/about/
|
||||
[5]: https://itsfoss.com/content/images/2023/07/windows-features-on.jpg
|
||||
[6]: https://itsfoss.com/content/images/2023/07/hyper-v-enable.jpg
|
||||
[7]: https://itsfoss.com/content/images/2023/07/hyper-v-restart.jpg
|
||||
[8]: https://www.virtualbox.org/
|
||||
[9]: https://itsfoss.com/install-linux-in-virtualbox/
|
||||
[10]: https://itsfoss.com/content/images/2023/07/virtualbox-7.png
|
||||
[11]: https://www.vmware.com/products/workstation-player.html
|
||||
[12]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png
|
Loading…
Reference in New Issue
Block a user