From d7211f6b1d2d3c9cfdf93fcae5f0b95fbcc5039b Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 16 May 2022 13:22:53 +0800 Subject: [PATCH 01/10] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][te?= =?UTF-8?q?ch]:=2020220516=20How=20to=20Dual=20Boot=20Ubuntu=2022.04=20LTS?= =?UTF-8?q?=20and=20Windows=2011.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...al Boot Ubuntu 22.04 LTS and Windows 11.md | 194 ++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 sources/tech/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md diff --git a/sources/tech/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md b/sources/tech/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md new file mode 100644 index 0000000000..af32772116 --- /dev/null +++ b/sources/tech/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md @@ -0,0 +1,194 @@ +[#]: subject: "How to Dual Boot Ubuntu 22.04 LTS and Windows 11" +[#]: via: "https://www.linuxtechi.com/dual-boot-ubuntu-22-04-and-windows-11/" +[#]: author: "James Kiarie https://www.linuxtechi.com/author/james/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Dual Boot Ubuntu 22.04 LTS and Windows 11 +====== +Hey guys, in this guide we will demonstrate how to configure a dual-boot setup of Ubuntu 22.04 LTS (Jammy Jellyfish) alongside Windows 11. + +For this to work, you need to have Windows 11 already installed on your PC.  You will then need to create a separate partition on your hard drive on which Ubuntu 22.04 will be installed. We will go over all this, so don’t worry. + +##### Prerequisites  + +Before setting sail with the dual-boot setup, here is what you need. + +* A bootable USB drive of Ubuntu 22.04 You can download Ubuntu 22.04 ISO image by heading over to the [Ubuntu 22.04 download page][1]. With the ISO image in place, grab a 16GB USB drive and use  Rufus application to make it bootable. + +* A fast and stable internet connection + +### Step 1) Create a Free Partition on Your Hard Drive  + +As mentioned in the introduction, we first and foremost need to create a separate partition on the hard drive on which we are going to install Ubuntu 22.04. + +So, open the disk management utility by pressing Windows Key + R + +In the dialogue box, type diskmgmt.msc and hit ENTER. + +![][2] + +The disk management console displays the current disk partitions as you can see below. We are going to create a partition for installing Ubuntu by Shrinking ‘Volume E’. This might be different in your setup, but just follow along and you will get the drift. + +![][3] + +So, right-click on the volume that you want to shrink and select ‘Shrink’. + +![][4] + +A pop-up dialogue box will appear as shown below. Specify the amount of space to shrink in MB and click ‘Shrink’. + +This is the space that is designated for the Ubuntu 22.04 installation. + +![][5] + +After shrinking the space, it will appear as ‘Unallocated’ or ‘Free Space’ as shown. + +![][6] + +With the free space in place, now plug the bootable USB medium into your PC and reboot your system. Also, be sure to access the BIOS setup and modify the boot priority to have the USB drive as the first priority. Save the BIOS changes and proceed to boot. + +### Step 2) Begin the installation + +On the first screen, you will get the GRUB menu displayed as shown. Select the first option ‘Try or Install Ubuntu’ and press ENTER. + +![][7] + +Ubuntu 22.04 will start loading as shown below. This takes a minute at most. + +![][8] + +Thereafter, the installation wizard will pop open providing you with two options: ‘Try Ubuntu’ and ‘Install Ubuntu’.  Since our mission is to install Ubuntu, select the latter. + +![][9] + +Next, select your preferred Keyboard layout and click ‘Continue’. + +![][10] + +In the ‘Updates and Other Software’ step, select ‘Normal Installation’ in order to install the GUI version of Ubuntu and check the rest of the options to allow download of updates and installation of third-party software for graphics, WiFi hardware and other utilities. + +Then click ‘Continue’. + +![][11] + +The next step provides two options for installation. The first option -’Erase disk and install Ubuntu’ – completely wipes out your drive and installs Ubuntu’. But since this is a dual boot setup, this option will be disastrous to your existing Windows installation. + +Therefore, select ‘Something else’ and click ‘Continue’. + +![][12] + +The partition table will be displayed with all the existing disk partitions. So far, we only have the NTFS partitions and the free space we shrunk earlier. + +For Ubuntu 22.04, we will create the following partitions: + +* /boot        –        1 GB +* /home        –        10 GB +* /            –        12 GB +* Swap         –         2 GB +* EFI          –       300 MB + +To get started with the partitions, click on the [ + ] sign below the ‘Free Space’ partition. + +![][13] + +Fill in the /boot partition details as shown then click ‘OK’. + +![][14] + +Next up, specify the /home partition and click ‘OK’. + +![][15] + +Next, define the / ( root ) partition and click ‘OK’. + +![][16] + +To define swap space, set the size and select ‘Swap area’ for the ‘Use as:’ option. + +![][17] + +Finally, create an EFI system partition if you are using UEFI boot mode. We will assign 300 MB to the EFI partition. + +![][18] + +Below is a summary of the partitions in our partition table. + +![][19] + +To continue with the installation, click ‘Install Now’. On the pop-up shown below, click ‘Continue’ to save the changes to the disk. + +![][20] + +Next, the installation wizard will auto-detect your location. Simply click ‘Continue’. + +![][21] + +Next, create a login user by specifying the name, computer’s name and password. Then click ‘Continue’. + +![][22] + +At this point, the installation wizard will copy all the Ubuntu files and packages to the manually created hard drive partitions and install the required software packages. + +This process takes quite a while, so be patient. In our case, it took roughly 30 minutes. + +![][23] + +Once the installation is completed, click on ‘Restart Now’ to reboot the system. + +![][24] + +At this point, remove your bootable USB drive and press ‘ENTER’ + +![][25] + +When the system restarts, you will find all options for both Ubuntu and Windows 11. + +Select ‘Ubuntu’ to boot into your new Ubuntu 22.04 installation. To boot into Windows 11, select the entry labeled ‘Windows Recovery Environment. + +![][26] + +And there you have it. We have demonstrated how to dual-boot Windows 11 with Ubuntu 22.04. + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/dual-boot-ubuntu-22-04-and-windows-11/ + +作者:[James Kiarie][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linuxtechi.com/author/james/ +[b]: https://github.com/lkxed +[1]: https://releases.ubuntu.com/22.04/ +[2]: https://www.linuxtechi.com/wp-content/uploads/2022/05/diskmgmt-msc-command-windows11.png +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Disk-Management-Console-Windows11.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Shrink-Volume-Windows11.png +[5]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Shrink-Volume-Size-Windows11.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Free-Space-Disk-Management-Console-Windows11.png +[7]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Select-Install-Ubuntu-Linux.png +[8]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Ubuntu-22-04-Loading-Screen.png +[9]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Choose-Install-Ubuntu-Linux.png +[10]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Keyboard-Layout-Ubuntu-22-04.png +[11]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Normal-Installation-Option-During-Ubuntu-22-04-Installation.png +[12]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Something-else-ubuntu-installation.png +[13]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Select-Free-Space-for-Ubuntu-22-04-Installation.png +[14]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Boot-Partition-Ubuntu-22-04-LTS.png +[15]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Home-Partition-For-Ubuntu-22-04.png +[16]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Root-Partition-For-Ubuntu-22-04.png +[17]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Swap-Area-Ubuntu-22-04.png +[18]: https://www.linuxtechi.com/wp-content/uploads/2022/05/EFI-System-Partition-Ubuntu-22-04.png +[19]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Install-Now-Ubuntu-22-04.png +[20]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Write-Changes-Disk-Ubuntu-22-04.png +[21]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Location-for-Ubuntu-22-04-Installation.png +[22]: https://www.linuxtechi.com/wp-content/uploads/2022/05/UserName-Hostname-Ubuntu-22-04-lts-Installation.png +[23]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Installation-Progress-Ubuntu-22-04.png +[24]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Restart-After-Ubuntu-22-04-LTS-Installation.png +[25]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Remove-Installation-Media-after-Ubuntu-22-04-Installation.png +[26]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Dual-Boot-Grub-Bootloader-Screen-Ubuntu-22-04.png From 72f8ebeee977b49b304373a335f9195a2ca508a2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 16 May 2022 14:49:36 +0800 Subject: [PATCH 02/10] RP @lkxed https://linux.cn/article-14600-1.html --- ...00807 A Beginner-s Guide to Open Source.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) rename {translated/talk => published}/20200807 A Beginner-s Guide to Open Source.md (81%) diff --git a/translated/talk/20200807 A Beginner-s Guide to Open Source.md b/published/20200807 A Beginner-s Guide to Open Source.md similarity index 81% rename from translated/talk/20200807 A Beginner-s Guide to Open Source.md rename to published/20200807 A Beginner-s Guide to Open Source.md index dac97f2207..a51f88eefe 100644 --- a/translated/talk/20200807 A Beginner-s Guide to Open Source.md +++ b/published/20200807 A Beginner-s Guide to Open Source.md @@ -3,21 +3,21 @@ [#]: author: "Ruth Ikegah https://hashnode.com/@ikegah_ruth" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14600-1.html" 开源新手指南 ====== -![][1] +![](https://img.linux.net.cn/data/attachment/album/202205/16/144822bal5z8ij44s4jcom.jpg) 作为一名技术人员,你应该时不时会看到“开源Open Source”这个词。你有可能在浏览推文、博文时看到过它,也有可能是在学习某一门编程语言或使用某个工具时,看到它的部分介绍写着:这个工具/语言是“开源”的。总之,开源无处不在。 在本文中,我将介绍下面这三个话题: * 什么是开源 -* 贡献开源的好处 +* 贡献于开源的好处 * 如何开始贡献 ### 什么是开源 @@ -34,13 +34,13 @@ * VLC 媒体播放器 * Python 语言、PHP 语言、MySQL 数据库 -与开源软件相反的是专有/闭源软件,只有软件的创造者才能自由使用,其他人若想使用,就得先获得法律许可才行。例如 Adobe Photoshop、Microsoft Office 等。 +与开源软件相反的是专有软件proprietary software / 闭源软件closed source software,只有软件的创造者才能自由使用,其他人若想使用,就得先获得法律许可才行。例如 Adobe Photoshop、微软 Office 等。 -> 开源不仅限于软件或代码,技术领域的任何人都可以为开源做出贡献(每个角色)。有了开源,就有了透明度、可靠性、灵活性,并允许开放合作。 +> 开源不仅限于软件或代码,技术领域的任何人都可以为开源做出贡献(各个角色)。有了开源,就有了透明度、可靠性、灵活性,并允许开放合作。 -### 贡献开源的好处 +### 贡献于开源的好处 -贡献开源项目或软件意味着“免费”让该项目变得更好。你应该会问自己,为什么我要“免费”关心别人的项目,给自己压力?如果你是新手,你可以阅读 [Edidiong Asikpo][2] 的故事,她在 [这篇文章][3] 中说明了为什么开源是她成长的催化剂。 +向开源项目或软件做贡献意味着“免费”让该项目变得更好。你应该会问自己,为什么我要关心或向自己强调“免费”呢?如果你是新手,你可以阅读 [Edidiong Asikpo][2] 的故事,她在 [这篇文章][3] 中说明了为什么开源是她成长的催化剂。 贡献开源的好处有很多,这里是其中一部分: @@ -49,7 +49,7 @@ * 你可以公开自己的想法,从而改善软件、项目或社区,让世界变得更美好。 * 你可以通过贡献开源来得到大家的认可,或者成为独特或伟大事物的一部分(获得自豪感)。 * 它让你有机会成为一个人才济济、活力四射的社区的一分子,你可以从中汲取灵感,并结识志同道合的人。 -* 你可以因为贡献开源而获得报酬(OoO)!比如你可以参与一些实习,包括 [Google 编程之夏Summer of Code][4]、[Outreachy][5]、[Google 文档季Season of Docs][6],以及 Open Collective 的 [赏金计划bounty program][7] 等。(LCTT 译注:国内也有类似的开源实习机会,如“开源之夏”。) +* 你可以因为贡献开源而获得报酬(OoO)!比如你可以参与一些实习,包括 [谷歌编程之夏][4]Google Summer of Code、[Outreachy][5]、[谷歌文档季][6]Google Season of Docs,以及 Open Collective 的 [赏金计划][7]bounty program 等。(LCTT 译注:国内也有类似的开源实习机会,如“开源之夏”。) ### 如何开始贡献 @@ -59,9 +59,9 @@ Github 是开源项目协作的大本营,因此它是一个开始贡献开源的好地方。没听说过 GitHub?没有关系!它提供了文档和指南,很容易就可以上手。不过我还是要提醒你,学习是一个循序渐进的过程,不要太心急喔。 -Github 以公共存储库repositories的形式容纳了许多开源项目。对于某个项目,你可以提交一个议题issue,来说明你注意到的错误或问题(或进一步提出改进意见),也可以创建一个拉取请求pull request,并说明你的更正和改进。 +Github 以公共存储库repositories的形式容纳了许多开源项目。对于某个项目,你可以提交一个议题issue,来说明你注意到的错误或问题(或进一步提出改进意见),也可以创建一个拉取请求pull request(PR),并说明你的更正和改进。 -我不建议你在 Github 上搜索项目来开始贡献,这将是相当令人沮丧的。尽管你可以限定项目使用的编程语言来简化搜索过程,但仍然会有一大堆东西出现在你眼前。(LCCT 译注:对于可爱的小萌新来说,这实在是难以承受 >…<。) +我不建议你在 GitHub 上搜索项目来开始贡献,这将是相当令人沮丧的。尽管你可以限定项目使用的编程语言来简化搜索过程,但仍然会有一大堆东西出现在你眼前。(LCCT 译注:对于可爱的小萌新来说,这实在是难以承受 >…<。) 为了更精准地找到适合自己的项目,这里有一些可供开始的途径: @@ -74,7 +74,7 @@ Github 以公共存储库repositories的形式容纳了许 * 在加入之前,先对项目、社区或组织做一些研究;当你在做的时候,针对不清楚的地方提出问题。 * 当你加入社区时,尽量积极地介绍自己,并说明你能帮助项目的地方。 * **不要**认为自己无法为项目提供任何帮助,停止这种念头!你有很好的想法可以分享! -* 在存储库中看看别人提交的议题,(如果有的话)看看你能在哪些方面提供帮助,你可以关注带有“good first issue”“help-wanted”“first-timers only”等标签的议题。 +* 在存储库中看看别人提交的议题,(如果有的话)看看你能在哪些方面提供帮助,你可以关注带有“good first issue”、“help-wanted”、“first-timers only”等标签的议题。 * 在开始贡献之前,一定要先看一下贡献指南,这样你在贡献时就不会有冲突。 > 哪怕只是使用一个开源工具也是一种贡献;参加一个开源活动也是一种贡献;做开源项目的志愿者,或者为开源项目提供赞助也是一种贡献。 @@ -94,7 +94,7 @@ via: https://ruthikegah.xyz/a-beginners-guide-to-open-source 作者:[Ruth Ikegah][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 08f25f5bac1ea220b9fb2a6a4172374a19b050ff Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 16 May 2022 18:46:53 +0800 Subject: [PATCH 03/10] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][ne?= =?UTF-8?q?ws]:=2020220516=20Microsoft=20has=20another=20Linux=20distribut?= =?UTF-8?q?ion=20and=20it=20is=20based=20on=20Debian.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... distribution and it is based on Debian.md | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 sources/news/20220516 Microsoft has another Linux distribution and it is based on Debian.md diff --git a/sources/news/20220516 Microsoft has another Linux distribution and it is based on Debian.md b/sources/news/20220516 Microsoft has another Linux distribution and it is based on Debian.md new file mode 100644 index 0000000000..15c8465554 --- /dev/null +++ b/sources/news/20220516 Microsoft has another Linux distribution and it is based on Debian.md @@ -0,0 +1,78 @@ +[#]: subject: "Microsoft has another Linux distribution and it is based on Debian" +[#]: via: "https://news.itsfoss.com/microsoft-debian-distro/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Microsoft has another Linux distribution and it is based on Debian +====== +Microsoft has been using a Debian-based Linux distro for Azure Cloud. We’re getting to know about it now! + +![microsoft debian][1] + +Microsoft utilizes Linux for a wide range of its projects. In recent years, you must have read a lot about WSL (or WSL2) and a Linux distribution made by Microsoft, i.e., **CBL (Common Base Linux) Mariner**. + +Even with Windows 11, Microsoft keeps improving the experience with [WSL][2]. + +While CBL Mariner is used to power WSLg (the GUI part of WSL 2) and Azure, some recent press coverage (via [ZDNet][3]) uncovered another Linux distribution that Microsoft uses internally. + +Microsoft sure loves Linux, right? + +### CBL-Delridge: A Debian-based Linux distro + +![][4] + +Microsoft maintains a Debian-based distro, which is used to power Azure’s Cloud Shell. And it goes by the name “**CBL-Delridge**“. + +Thanks to [Hayden Barnes][5], a senior engineering manager responsible for Windows containers at SUSE. + +In one of his [older blog posts][6] in February 2022. He revealed more details about it while helping you build it and import it into WSL if required. + +CBL-Delridge (CBL-D) is based on Debian 10 (Buster), unlike CBL-Mariner, built from scratch. + +Not a surprise to see Debian being favored here. Even [Google ditched Ubuntu for Debian][7] for its in-house Linux distro gLinux. + +Interestingly, Microsoft published the distro in 2020 for internal use (as per an [unofficial timeline of Microsoft’s open-source interactions][8] maintained by Hayden), and we’re getting to know about it in 2022. + +![][9] + +The CBL-Delridge also utilizes the same version number 10 (coincidentally) with the codename “Quinault.” Breaking down the name, ZDNet notes that Delridge is a district in West Seattle, and Quinault refers to a valley in the Olympic National Park in Washington State. + +### Building CBL-Delridge + +Unlike normal Linux distributions, you won’t find an image file to download publicly. + +Considering the apt package repositories for CBL-D are public, you can build your image of CBL-D if you need to test it for any of your relevant requirements. + +You can also import it into WSL. [Hayden’s blog post][10] explains using debootstrap to get started building the image and then importing it to WSL. + +Note that the CBL-D is not exactly a replacement for Debian. So, you may not be able to find all your favorite packages. To know more about it, you can explore Hayden’s blog post. + +What do you think about Microsoft’s Linux distributions for internal use? Have you tried any of them yet? Let me know your thoughts in the comments. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/microsoft-debian-distro/ + +作者:[Ankush Das][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://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/microsoft-new-debian-based-linux-distro.jpg +[2]: https://news.itsfoss.com/windows-11-wsl/ +[3]: https://www.zdnet.com/article/surprise-theres-yet-another-microsoft-linux-distro-cbl-delridge/ +[4]: https://news.itsfoss.com/wp-content/uploads/2022/05/azure-delridge.png +[5]: https://twitter.com/unixterminal +[6]: https://boxofcables.dev/building-cbl-d-microsofts-other-linux-distro/ +[7]: https://itsfoss.com/goobuntu-glinux-google/ +[8]: https://github.com/sirredbeard/microsoft-opensource +[9]: https://news.itsfoss.com/wp-content/uploads/2022/05/wsl-cbl-delridge-1024x600.png +[10]: https://boxofcables.dev/building-cbl-d-microsofts-other-linux-distro/ From cd6ca2b2fcddb28b12907965d543e1045fb14abb Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 16 May 2022 18:50:12 +0800 Subject: [PATCH 04/10] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][ne?= =?UTF-8?q?ws]:=2020220516=20Fudgie-=20The=20Awesome=20Budgie=20Desktop=20?= =?UTF-8?q?is=20Coming=20to=20Fedora=20Linux=20Soon.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Desktop is Coming to Fedora Linux Soon.md | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 sources/news/20220516 Fudgie- The Awesome Budgie Desktop is Coming to Fedora Linux Soon.md diff --git a/sources/news/20220516 Fudgie- The Awesome Budgie Desktop is Coming to Fedora Linux Soon.md b/sources/news/20220516 Fudgie- The Awesome Budgie Desktop is Coming to Fedora Linux Soon.md new file mode 100644 index 0000000000..ef57b48235 --- /dev/null +++ b/sources/news/20220516 Fudgie- The Awesome Budgie Desktop is Coming to Fedora Linux Soon.md @@ -0,0 +1,68 @@ +[#]: subject: "Fudgie? The Awesome Budgie Desktop is Coming to Fedora Linux Soon" +[#]: via: "https://news.itsfoss.com/fudgie-fedora-budgie-announcement/" +[#]: author: "Abhishek https://news.itsfoss.com/author/root/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fudgie? The Awesome Budgie Desktop is Coming to Fedora Linux Soon +====== +Fedora users will also be able enjoy the modern experience of the Budgie desktop environment. + +![Fedora Budgie][1] + +In recent times, Red Hat’s community project, Fedora, has gained quite a decent userbase. While GNOME is the default choice of desktop here, Fedora also offers a variety of other desktop environments in the form of [Fedora Spins][2]. + +This means that you can enjoy an out of box experience of KDE, MATE, Xfce and a few other desktop environments with Fedora without additional effort. Do you prefer KDE instead of GNOME? Download the KDE spin of Fedora and install it like your regular Fedora installation. + +The one desktop offering missing from Fedora Spins is Budgie desktop. + +### Budgie going independent + +The Budgie desktop was introduced with the Solus Linux project circa 2014. There has been some [regressional development with the Solus and Budgie project lately][3]. The [Budgie project is now independent of the Solus Linux][4]. + +Ever since its first release, Budgie garnered a niche following. Its modern layout approach is liked by many Linux users. This is the reason why many other major Linux distributions like Ubuntu, Manjaro, openSUSE started offering Budgie variants. + +![Budgie 10.6][5] + +Fedora hasn’t had Budgie in its offering so far but that could be changing in the next release of Fedora. + +### Budgie submitted for inclusion in Fedora + +Joshua Strobl, the lead developer of the Budgie project, announced the news in a [Reddit post][6]. + +> I have now submitted Budgie Desktop and its microcosm of software (Budgie Control Center, Budgie Screensaver, Budgie Desktop View) for inclusion in Fedora, starting with rawhide (37) and backporting to 36. This will be maintained / supported “officially”, as I am using Fedora Silverblue + rawhide on my work laptop and will be switching my desktop over to Fedora Silverblue as well. + +This means that if the package is approved by the Fedora’s team, you should be able to install Budgie and some Budgie elements in Fedora 37 and hopefully in Fedora 36. + +But that’s not the end of the story. Joshua mentions that he is also considering to introduce and support an official Fedora Spin of Budgie desktop. Meaning people will be able to download an ISO of Fedora preloaded with Budgie desktop instead of GNOME. + +It’s not clear if he speaks of official Fedora Spin or a new unofficial Fedora variant named ‘Fudgie’, which is completely maintained by him. + +### Fedora + Budgie is a good news + +In any case, the Budgie desktop coming to Fedora is good news. It gives more options to the Fedora user and Budgie is a pretty sleet desktop. People who like both Fedora and Budgie should be able to enjoy the best of the both worlds. + +I hope you agree with me. I let you share your view in the comment section. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/fudgie-fedora-budgie-announcement/ + +作者:[Abhishek][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://news.itsfoss.com/author/root/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/fedora-budgie.png +[2]: https://spins.fedoraproject.org +[3]: https://news.itsfoss.com/solus-co-lead-resign-budgie-serpent/ +[4]: https://news.itsfoss.com/budgie-10-6-release/ +[5]: https://news.itsfoss.com/wp-content/uploads/2022/04/budgie-10.61-1024x576.jpg +[6]: https://www.reddit.com/r/Fedora/comments/uq3gah/budgie_desktop_has_now_been_submitted_for/ From b1ed2926d9a601c472c2601a386996c5471a2b7d Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 16 May 2022 18:52:34 +0800 Subject: [PATCH 05/10] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][te?= =?UTF-8?q?ch]:=2020220516=20How=20to=20rebase=20to=20Fedora=20Linux=2036?= =?UTF-8?q?=20on=20Silverblue.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rebase to Fedora Linux 36 on Silverblue.md | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 sources/tech/20220516 How to rebase to Fedora Linux 36 on Silverblue.md diff --git a/sources/tech/20220516 How to rebase to Fedora Linux 36 on Silverblue.md b/sources/tech/20220516 How to rebase to Fedora Linux 36 on Silverblue.md new file mode 100644 index 0000000000..a09955f6ab --- /dev/null +++ b/sources/tech/20220516 How to rebase to Fedora Linux 36 on Silverblue.md @@ -0,0 +1,102 @@ +[#]: subject: "How to rebase to Fedora Linux 36 on Silverblue" +[#]: via: "https://fedoramagazine.org/how-to-rebase-to-fedora-linux-36-on-silverblue/" +[#]: author: "Michal Konečný https://fedoramagazine.org/author/zlopez/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to rebase to Fedora Linux 36 on Silverblue +====== +![][1] + +Fedora Silverblue is [an operating system for your desktop built][2][on Fedora Linux][3]. It’s excellent for daily use, development, and container-based workflows. It offers [numerous advantages][4] such as being able to roll back in case of any problems. If you want to update or rebase to Fedora Linux 36 on your Fedora Silverblue system (these instructions are similar for Fedora Kinoite), this article tells you how. It not only shows you what to do, but also how to revert things if something unforeseen happens. + +Prior to actually doing the rebase to Fedora Linux 36, you should apply any pending updates. Enter the following in the terminal: + +``` +$ rpm-ostree update +``` + +or install updates through GNOME Software and reboot. + +### Rebasing using GNOME Software + +GNOME Software shows you that there is new version of Fedora Linux available on the Updates screen. + +![Fedora 36 update available][5] + +First thing you need to do is download the new image, so click on the *Download* button. This will take some time. When it’s done you will see that the update is ready to install. + +![Fedora 36 update ready to install][6] + +Click on the *Restart & Upgrade* button. This step will take only a few moments and the computer will be restarted at the end. After restart you will end up in new and shiny release of Fedora Linux 36. Easy, isn’t it? + +### Rebasing using terminal + +If you prefer to do everything in a terminal, then this part of the guide is for you. + +Rebasing to Fedora Linux 36 using the terminal is easy. First, check if the 36 branch is available: + +``` +$ ostree remote refs fedora +``` + +You should see the following in the output: + +``` +fedora:fedora/36/x86_64/silverblue +``` + +If you want to pin the current deployment (this deployment will stay as option in GRUB until you remove it), you can do it by running: + +``` +$ sudo ostree admin pin 0 +``` + +To remove the pinned deployment use the following command: + +``` +$ sudo ostree admin pin --unpin 2 +``` + +where 2 is the position in the $rpm-ostree status + +Next, rebase your system to the Fedora Linux 36 branch. + +``` +$ rpm-ostree rebase fedora:fedora/36/x86_64/silverblue +``` + +Finally, the last thing to do is restart your computer and boot to Fedora Linux 36. + +### How to roll back + +If anything bad happens—for instance, if you can’t boot to Fedora Linux 36 at all—it’s easy to go back. Pick the previous entry in the GRUB menu at boot (if you don’t see it, try to press ESC during boot), and your system will start in its previous state before switching to Fedora Linux 36. To make this change permanent, use the following command: + +``` +$ rpm-ostree rollback +``` + +That’s it. Now you know how to rebase Fedora Silverblue to Fedora Linux 36 and roll back. So why not do it today? + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/how-to-rebase-to-fedora-linux-36-on-silverblue/ + +作者:[Michal Konečný][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://fedoramagazine.org/author/zlopez/ +[b]: https://github.com/lkxed +[1]: https://fedoramagazine.org/wp-content/uploads/2021/04/silverblue-rebase-816x345.jpg +[2]: https://docs.fedoraproject.org/en-US/fedora-silverblue/ +[3]: https://docs.fedoraproject.org/en-US/fedora-silverblue/ +[4]: https://fedoramagazine.org/give-fedora-silverblue-a-test-drive/ +[5]: https://fedoramagazine.org/wp-content/uploads/2022/05/Screenshot-from-2022-05-11-09-33-55.png +[6]: https://fedoramagazine.org/wp-content/uploads/2022/05/Screenshot-from-2022-05-11-09-40-07.png From 33175b08fcb3c9a161aefc78b02308791735c8dc Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 16 May 2022 19:00:30 +0800 Subject: [PATCH 06/10] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][ta?= =?UTF-8?q?lk]:=2020220516=205=20benefits=20of=20switching=20from=20Google?= =?UTF-8?q?=20Analytics=20to=20Plausible.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...hing from Google Analytics to Plausible.md | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 sources/talk/20220516 5 benefits of switching from Google Analytics to Plausible.md diff --git a/sources/talk/20220516 5 benefits of switching from Google Analytics to Plausible.md b/sources/talk/20220516 5 benefits of switching from Google Analytics to Plausible.md new file mode 100644 index 0000000000..0612c953ce --- /dev/null +++ b/sources/talk/20220516 5 benefits of switching from Google Analytics to Plausible.md @@ -0,0 +1,109 @@ +[#]: subject: "5 benefits of switching from Google Analytics to Plausible" +[#]: via: "https://opensource.com/article/22/5/plausible-analytics" +[#]: author: "Tom Greenwood https://opensource.com/users/tpgreenwood" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 benefits of switching from Google Analytics to Plausible +====== +Plausible is an open source alternative to Google Analytics. + +![The legacy of open source and the tide of progress][1] +Image by: Opensource.com + +Google Analytics (GA) has been the industry standard web analytics tool for about as long as there have been analytics tools. Nearly every brief that my WordPress agency receives specifies that GA must be installed. And there is rarely any debate around whether it's the best tool for the job. + +My team at Wholegrain Digital has had concerns about GA in terms of privacy, General Data Protection Regulation (GDPR) compliance, performance, user experience, not to mention Google as a global advertising, and search monopoly. However, we continued using GA for 99% of our projects because we didn't feel that there was a strong enough alternative. + +Well, that has changed. We've made a decision that GA will no longer be our default analytics tool. Instead, our default analytics tool will be [Plausible][2]. + +In this article, I'll outline why we consider Plausible a better choice as a default analytics solution, the compromises to be aware of, and how it will impact our clients. + +### Why use Plausible instead of Google Analytics + +We believe that using Plausible over GA is not a purely ideological choice. There are in fact a number of tangible benefits that make it an objectively better product in many cases. Let's take a look at some of these benefits. + +#### Privacy + +One of Plausible's headline benefits is that it has been designed as a privacy-first analytics tool. This might sound like an ideological factor, but it has real practical implications too. + +Plausible only collects anonymous user data, and does not use cookies. This means that unlike most analytics solutions, it complies with both the GDPR and the European Cookie Law, so it's a tick in the box for legal compliance. It's also hosted in the EU and the data is owned by you so it doesn't get shared with any other organizations, which is another tick. + +This has a positive knock-on effect for user experience, because without privacy-invading cookies, you don't need to implement a cookie banner on the website (unless you use cookies for other things). Considering that the first few seconds of a website visit are the most critical to brand experience and conversion rates, cookie banners are arguably the single most damaging thing to the success of any online service. Avoiding these banners puts your brand and message first, helps you make a good first impression, and increases conversion rates. + +#### Simpler user interface + +The GA dashboard was never a great case study in intuitive design, but as the functionality of GA has expanded, so too has the complexity of the interface. I'm increasingly hearing frustrations from even experienced web marketers that they sometimes struggle to find basic data inside GA. + +Plausible has taken the opposite approach and focused on ease of use over quantity of features. The dashboard is beautifully designed to showcase the data you want in a way that is easy to find and understand. It's what most people wish GA to be and it's a breath of fresh air. + +![Image of Plausible with a dark theme][3] +Image by: (Tom Greenwood, CC BY-SA 4.0) + +This is not just a pleasantry. The reality is that if a tool is easy to use then you will use it, and if it is hard to use then you won't. The simplicity of the Plausible interface means that even though it has less features, many users are likely to get a lot more insights and value from their analytics. + +#### Better web performance + +The Plausible tracking script is the smallest we are aware of for any analytics service, coming in at less than 1kb compared to 17kb for GA and even more if you're using Google Tag Manager. + +Better web performance improves user experience, helps your website to rank better in search engines and improves conversion rates. Web performance matters, and when it comes to web performance, every kilobyte matters. + +#### Reduced environmental impact + +Plausible's tiny tracking script isn't just good for web performance, it's also good for the environment. At Wholegrain we are world leaders in sustainable web design and understand that every bit of wasted data is also wasted energy and carbon emissions. + +This adds up. As a minimum, switching to Plausible would save 16kb per visitor, so for a website with a modest 10K visitors per month this would be 160MB of data per month, or 2GB per year. A back of an envelope calculation using the latest methodology that we have developed for website carbon calculations put this at about the equivalent of 800 grams of CO2. Now multiply that up by the millions of websites running worldwide and you are talking about significant amounts of wasted energy and unnecessary carbon emissions. + +But it doesn't stop there. Analytics tools consume energy on the end user's device as they harvest data, in the transmission networks as they send that data back to the data center, and in the data center to store it all for eternity. By tracking less, Plausible is using less energy in its operation than bloated analytics tools such as GA that are tracking many more metrics that most people don't need. + +Plausible also hosts the data in data centers with a commitment to using renewable sources of electricity, which is great (though to be fair Google also does that), and they donate 5% of their revenue to good causes, so the money you are paying is also helping support environmental and social projects. + +#### More accurate data + +Finally, Plausible breaks one of the greatest myths about GA, which is that it is accurate. Plausible's own research and our own experiences with client websites show that GA can significantly under report data, sometimes by as much as 50-60%. + +When you look at GA and you think you are looking at all of your website data, you are most likely only looking at a portion of it. This is because GA is more likely to be blocked by ad blockers and privacy friendly web browsers, but perhaps more significantly because GA should not be tracking your visitors unless they have accepted cookies, which many visitors do not. + +Plausible therefore offers us a simple way to get a more complete and accurate view of website visitors. Needless to say, if you are a digital marketing manager and you want to make yourself look good, you want to use the analytics service that reports all of your visitors and not just some of them. + +### Are there any downsides? + +There are very few downsides to using Plausible. If you are a GA power user and genuinely need a lot of its more advanced functionality then Plausible is not going to meet all of your needs. Plausible can track events, conversions, and campaigns but if you need more than that then you'll need another tool. + +The only other notable downside to Plausible is that it is not free. There is a monthly fee but it is very reasonable, starting at $6 per month. It's a small price to pay for such a good tool, to protect the privacy of your website visitors and to maintain ownership of your data. + +### What are the impacts? + +Here at Wholegrain Digital we are implementing Plausible in a way that we hope will offer many of our clients the benefits listed above without the downsides. Nobody will be forced to stop using GA, but we will be talking about the benefits of Plausible proactively with our clients and including it in our proposals as the default option. + +In many cases, Plausible is not just capable of meeting a project's requirements, but is objectively a better solution than GA, so we'll be trying to help our clients to reap the benefits of this. + +In cases where advanced GA features are required, we will of course stick with GA for now. And in some cases, we may run GA and Plausible in parallel. This has a small overhead in terms of carbon footprint and performance, so it isn't our first choice. However, in some cases it may provide a necessary bridge to help our clients gain confidence in Plausible before making the leap, or help them gain a complete data set while ensuring compliance with privacy laws. + +As for the costs, Plausible is a very good value for what it offers, but we will be offering it free of charge to our clients for any websites cared for on our WordPress maintenance service. We hope that this will help lower the barrier to entry and help more of our clients and their website visitors gain the benefits of Plausible. + +### It is Plausible! + +I hope I've convinced you that Plausible is not just a viable but a really great alternative to GA. If you need any advice on how to figure out the best analytics solution for your website or how to ensure that you are GDPR compliant without compromising user experience, get in touch with me. + +*This article originally appeared on the Wholegrain Digital blog and has been republished with permission.* + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/5/plausible-analytics + +作者:[Tom Greenwood][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/tpgreenwood +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/LIFE_wavegraph.png +[2]: https://plausible.io +[3]: https://opensource.com/sites/default/files/2022-05/Plausible-%C2%B7-websitecarbon-com.jpg From ed2921436230669f5a5ade97c47b0813880798dc Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 16 May 2022 19:01:47 +0800 Subject: [PATCH 07/10] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][te?= =?UTF-8?q?ch]:=2020220516=20Use=20Composer=20to=20require=20Git=20reposit?= =?UTF-8?q?ories=20within=20PHP=20projects.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...re Git repositories within PHP projects.md | 227 ++++++++++++++++++ 1 file changed, 227 insertions(+) create mode 100644 sources/tech/20220516 Use Composer to require Git repositories within PHP projects.md diff --git a/sources/tech/20220516 Use Composer to require Git repositories within PHP projects.md b/sources/tech/20220516 Use Composer to require Git repositories within PHP projects.md new file mode 100644 index 0000000000..9f8e7ef467 --- /dev/null +++ b/sources/tech/20220516 Use Composer to require Git repositories within PHP projects.md @@ -0,0 +1,227 @@ +[#]: subject: "Use Composer to require Git repositories within PHP projects" +[#]: via: "https://opensource.com/article/22/5/composer-git-repositories" +[#]: author: "Jonathan Daggerhart https://opensource.com/users/daggerhart" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Use Composer to require Git repositories within PHP projects +====== +This dependency management tool makes it easier to require a repository even when it hasn't been created as a package. + +![young woman working on a laptop][1] +Image by: CC BY 3.0 US Mapbox Uncharted ERG + +The dependency management tool [Composer][2] provides multiple ways to include Git repositories within a PHP: Hypertext Preprocessor (PHP) project. + +In many cases, repositories have been created on Packagist, so requiring them with Composer is very straightforward. But what do you do when a repository has not been created as a package on Packagist? You use Composer to require the package directly from the repository. This article explains how. + +Note: Some of the terminology in this post is confusing because multiple words are used to describe different things. Here is a quick vocabulary list that will help: + +* Project: The custom software you are building. This can be a website, a command-line utility, an application, or anything else you dream up. +* Package: Any third-party software you want to download and use within your project. It can be a library, Drupal theme, WordPress plugin, or any other number of things. +* Git repository: Also called the Git repo, this is the version-control host for a package. Common hosts include GitHub, GitLab, or Bitbucket, but any URL-accessible Git repository will work for this tutorial. +* Composer repositories: In a composer.json file, there is an optional property named "repositories." This property is where you can define new places for Composer to look when downloading packages. + +``` +composer.json +``` + +When adding a Git repo to your project with Composer, you can find yourself in two situations: Either the repo contains a `composer.json` file, which defines how the repo should be handled when required, or it does not. You can add the Git repository to your project in both cases, with different methods. + +### Git repo with composer.json + +When a repository includes a `composer.json` file, it defines aspects of itself that are important to how Composer manages the package. Here is an example of a simple `composer.json` file a package may include: + +``` +{ + "name": "mynamespace/my-custom-library", + "type": "library" +} +``` + +This example shows two important properties that a `composer.json` file can define: + +* Name: The package's namespaced name. In this case, "mynamespace" is the namespace for the package "my-custom-library." +* Type: The type of package the repo represents. Package types are used for installation logic. Out of the box, Composer allows for the following package types: library, project, metapackage, and composer-plugin. + +You can verify this by looking at the `composer.json` file of any popular GitHub project. They each define their package name and the package type near the top of the file. When a repository has this information defined in its `composer.json` file, requiring the repository within your project is quite simple. + +### Require a Git repository that has a composer.json file + +After you've identified a Git repository with a `composer.json` file, you can require that repository as a package within your project. + +Within your project's `composer.json` file, you need to define a new property (assuming it doesn't exist already) named "repositories." The value of the repositories property is an array of objects, each containing information about the repository you want to include in your project. Consider this `composer.json` file for your custom project. + +``` +{ + "name": "mynamespace/my-project-that-uses-composer", + "repositories": [ + { + "type": "vcs", + "url": "https://github.com/mynamespace/my-custom-library.git" + } + ], + "require": { + "mynamespace/my-custom-library": "dev-master" + } +} +``` + +You are doing two important things here. First, you're defining a new repository that Composer can reference when requiring packages. And second, you're requiring the package from the newly defined repository. + +Note: The package version is a part of the require statement and not a part of the repository property. You can require a specific branch of a repo by choosing a version named "dev-". + +If you were to run `composer install` in the context of this file, Composer would look for a project at the defined URL. If that URL represents a Git repo that contains a `composer.json` file that defines its name and type, Composer will download that package to your project and place it in the appropriate location. + +### Custom package types + +The example package shown above is of the type "library," but with WordPress and Drupal you're dealing with plugins, modules, and themes. When requiring special package types in your project, it's important to install them in specific locations within the project file structure. Wouldn't it be nice if you could convince Composer to treat these types of packages as special cases? Well, you're in luck. There is an official Composer plugin that will do that for you. + +The [Installers][3] plugin for Composer contains the custom logic required for handling many different package types for a large variety of projects. It is extremely helpful when working with projects that have well-known and supported package installation steps. + +This project allows you to define package types like drupal-theme, drupal-module, wordpress-plugin, wordpress-theme, and many more, for a variety of projects. In the case of a drupal-theme package, the Installers plugin will place the required repo within the `/themes/contrib` folder of your Drupal installation. + +Here is an example of a `composer.json` file that might live within a Drupal theme project as its own Git repository: + +``` +{ + "name": "mynamespace/whatever-i-call-my-theme", + "type": "drupal-theme", + "description": "Drupal 8 theme", + "license": "GPL-2.0+" +} +``` + +Note that the only meaningful difference here is that the type is now drupal-theme. With the drupal-theme type defined, any project that uses the Installers plugin can easily require your repo in its Drupal project, and it will be treated as a contributed theme. + +### Require any Git repository with Composer + +What happens when the repo you want to include in your project does not define anything about itself with a `composer.json` file? When a repo does not define its name or type, you have to define that information for the repo within your project's `composer.json` file. Take a look at this example: + +``` +{ + "name": "mynamespace/my-project-that-uses-composer", + "repositories": [ + { + "type": "package", + "package": { + "name": "mynamespace/my-custom-theme", + "version": "1.2.3", + "type": "drupal-theme", + "source": { + "url": "https://github.com/mynamespace/my-custom-theme.git", + "type": "git", + "reference": "master" + } + } + } + ], + "require": { + "mynamespace/my-custom-theme": "^1", + "composer/installers": "^1" + } +} +``` + +Notice that your repository type is now "package." That is where you will define everything about the package you want to require. + +Create a new object named "package" where you define all the essential information that Composer needs to know to be able to include this arbitrary git repo within your project, including: + +* Name: The namespaced package name. It should probably match the repository you're requiring but doesn't have to. +* Type: The type of package. This reflects how you want Composer to treat this repository. +* Version: A version number for the repo. You will need to make this up. +* Source: An object that contains the following repository information: + +URL: The Git or other version-control system (VCS) URL where the package repo can be found +Type: The VCS type for the package, such as git, svn, cvs, and so on +Reference: The branch or tag you want to download +* URL: The Git or other version-control system (VCS) URL where the package repo can be found +* Type: The VCS type for the package, such as git, svn, cvs, and so on +* Reference: The branch or tag you want to download + +* URL: The Git or other version-control system (VCS) URL where the package repo can be found +* Type: The VCS type for the package, such as git, svn, cvs, and so on +* Reference: The branch or tag you want to download + +I recommend reviewing the [official documentation][4] on Composer package repositories. Note that it is possible to include zip files as Composer packages as well. Essentially, you are now responsible for all parts of how Composer treats this repository. Since the repository itself is not providing Composer with any information, you are responsible for determining almost everything, including the current version number for the package. + +This approach allows you to include almost anything as a Composer package in your project, but it has some notable drawbacks: + +* Composer will not update the package unless you change the version field. +* Composer will not update the commit references. If you use master as a reference, you will have to delete the package to force an update, and you will have to deal with an unstable lock file. + +``` +version +``` + +``` +master +``` + +### Custom package versions + +Maintaining the package version in your `composer.json` file isn't always necessary. Composer is smart enough to look for GitHub releases and use them as the package versions. But eventually you will likely want to include a simple project that has only a few branches and no official releases. + +When a repository does not have releases, you will be responsible for deciding what version the repository branch represents to your project. In other words, if you want composer to update the package, you will need to increment the "version” defined in your project's `composer.json` file before running `composer update`. + +### Overriding a Git repository's composer.json + +When defining a new Composer repository of the type package, you can override a package's own `composer.json` definitions. Consider a Git repository that defines itself as a library in its `composer.json`, but you know that the code is actually a drupal-theme. You can use the above approach to include the Git repository within your project as a drupal-theme, allowing Composer to treat the code appropriately when required. + +Example: Require Guzzle as a drupal-theme just to prove that you can. + +``` +{ + "name": "mynamespace/my-project-that-uses-composer", + "repositories": [ + { + "type": "package", + "package": { + "name": "mynamespace/guzzle-theme", + "version": "1.2.3", + "type": "drupal-theme", + "source": { + "url": "https://github.com/guzzle/guzzle.git", + "type": "git", + "reference": "master" + } + } + } + ], + "require": { + "mynamespace/guzzle-theme": "^1", + "composer/installers": "^1" + } +} +``` + +This works! You've downloaded the Guzzle library and placed it within the `/themes` folder of your Drupal project. This is not a very practical example, but it highlights how much control the package type approach provides. + +### Summary + +Composer offers plenty of options for including arbitrary packages within a project. Determining how those packages are included in the project primarily comes down to who defines the package information. If the Git repository includes a `composer.json` file that defines its name and type, you can have Composer rely on the repository itself for the definition. + +But if you want to include a repository that does not define its name and type, then it is up to your project to define and maintain that information for your own internal use. Alternatively, if a repository doesn't define a `composer.json` file, consider submitting a pull request that adds it. + +*This article originally appeared on the Daggerhart Lab blog and is republished with permission.* + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/5/composer-git-repositories + +作者:[Jonathan Daggerhart][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/daggerhart +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/lenovo-thinkpad-laptop-window-focus.png +[2]: https://getcomposer.org/ +[3]: https://github.com/composer/installers +[4]: https://getcomposer.org/doc/05-repositories.md#package-2 From b6d886917c54051cb4b8acf636a6a804693f0939 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 16 May 2022 19:03:01 +0800 Subject: [PATCH 08/10] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][te?= =?UTF-8?q?ch]:=2020220516=20Use=20Composer=20to=20require=20Git=20reposit?= =?UTF-8?q?ories=20within=20PHP=20projects.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e Composer to require Git repositories within PHP projects.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20220516 Use Composer to require Git repositories within PHP projects.md b/sources/tech/20220516 Use Composer to require Git repositories within PHP projects.md index 9f8e7ef467..1604430b42 100644 --- a/sources/tech/20220516 Use Composer to require Git repositories within PHP projects.md +++ b/sources/tech/20220516 Use Composer to require Git repositories within PHP projects.md @@ -12,6 +12,7 @@ Use Composer to require Git repositories within PHP projects This dependency management tool makes it easier to require a repository even when it hasn't been created as a package. ![young woman working on a laptop][1] + Image by: CC BY 3.0 US Mapbox Uncharted ERG The dependency management tool [Composer][2] provides multiple ways to include Git repositories within a PHP: Hypertext Preprocessor (PHP) project. From 2a43fd2c82929e210c3eacf7cce23dc6190da428 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 16 May 2022 19:20:11 +0800 Subject: [PATCH 09/10] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][te?= =?UTF-8?q?ch]:=2020220516=20How=20To=20Reset=20Root=20Password=20In=20Fed?= =?UTF-8?q?ora=2036.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...How To Reset Root Password In Fedora 36.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 sources/tech/20220516 How To Reset Root Password In Fedora 36.md diff --git a/sources/tech/20220516 How To Reset Root Password In Fedora 36.md b/sources/tech/20220516 How To Reset Root Password In Fedora 36.md new file mode 100644 index 0000000000..7df8ba5341 --- /dev/null +++ b/sources/tech/20220516 How To Reset Root Password In Fedora 36.md @@ -0,0 +1,99 @@ +[#]: subject: "How To Reset Root Password In Fedora 36" +[#]: via: "https://ostechnix.com/reset-root-password-in-fedora/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Reset Root Password In Fedora 36 +====== +Reset Forgotten Root Password In Fedora + +Have you forgotten the root password in Fedora? Or do you want to change the root user password in your Fedora system? No problem! This brief guide walks you through the steps to change or reset root password in Fedora operating systems. + +**Note:** This guide has been officially tested on Fedora 36 and 35 versions. The steps provided below are same for resetting root password in Fedora Silverblue and older Fedora versions. + +**Step 1** - Switch on your Fedora system and press **ESC** key until you see the GRUB boot menu. Once the GRUB menu is appeared, choose the Kernel you want to boot and hit **e** to edit the selected boot entry. + +![Grub Menu In Fedora 36][1] + +**Step 2** - In the next screen, you will see all boot parameters. Find the parameter named **ro**. + +![Find ro Kernel Parameter In Grub Entry][2] + +**Step 3** - Replace the **'ro'** parameter with **'rw init=/sysroot/bin/sh'**(without quotes, of course). Please mind the space between `"rw"` and "`init=/sysroot`...". After modifying it, the kernel parameter line should look like below. + +![Modify Kernel Parameters][3] + +**Step 4** - After changing the parameters as shown above, press **Ctrl+x** to enter into the emergency mode i.e. single user mode. + +From the emergency mode, enter the following command to mount root (`/` ) file system in read/write mode. + +``` +chroot /sysroot/ +``` + +![Mount Root Filesystem In Read, Write Mode In Fedora Linux][4] + +**Step 5** - Now change the root password with `passwd` command: + +``` +passwd root +``` + +Enter the root password twice. I suggest you to use a strong password. + +![Reset Or Change Root Password In Fedora][5] + +**Step 6** - After resetting the root password, run the following command to enable SELinux relabeling on reboot : + +``` +touch /.autorelabel +``` + +![Enable SELinux Relabeling On Reboot In Fedora][6] + +**Step 7** - Finally, exit the single user mode and reboot the Fedora system to normal mode by running the following command: + +``` +exit +``` + +``` +reboot +``` + +Wait for SELinux relabeling process to complete. It will take a few minutes depending upon the filesystem's size and speed of your hard drive. + +![SELinux Filesystem Relabeling In Progress][7] + +**Step 8** - After the filesystem relabeling is completed, you can log in to your Fedora system with new root password. + +![Login To Fedora As Root User][8] + +As you can see, the steps to reset root password in Fedora 36 is fairly easy and exactly same as **[resetting root password in RHEL][9]** and its clones like CentOS, AlmaLinux and Rocky Linux. + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/reset-root-password-in-fedora/ + +作者:[sk][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://ostechnix.com/author/sk/ +[b]: https://github.com/lkxed +[1]: https://ostechnix.com/wp-content/uploads/2022/05/Grub-Menu-In-Fedora-36.png +[2]: https://ostechnix.com/wp-content/uploads/2021/11/Find-ro-Kernel-Parameter-In-Grub-Entry.png +[3]: https://ostechnix.com/wp-content/uploads/2022/05/Modify-Kernel-Parameters.png +[4]: https://ostechnix.com/wp-content/uploads/2022/05/Mount-Root-Filesystem-In-Read-Write-Mode-In-Fedora-Linux.png +[5]: https://ostechnix.com/wp-content/uploads/2022/05/Reset-Or-Change-Root-Password-In-Fedora.png +[6]: https://ostechnix.com/wp-content/uploads/2022/05/Enable-SELinux-Relabeling-On-Reboot-In-Fedora.png +[7]: https://ostechnix.com/wp-content/uploads/2021/11/SELinux-filesystem-relabeling-in-progress.png +[8]: https://ostechnix.com/wp-content/uploads/2022/05/Login-To-Fedora-As-Root-User.png +[9]: https://ostechnix.com/how-to-reset-root-user-password-in-centos-8-rhel-8/ From dd769b60190eebce77e753ab2f6d64638426465a Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 16 May 2022 20:05:03 +0800 Subject: [PATCH 10/10] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][te?= =?UTF-8?q?ch]:=2020220516=20Structured=20Data=20Processing=20with=20Spark?= =?UTF-8?q?=20SQL.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ructured Data Processing with Spark SQL.md | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 sources/tech/20220516 Structured Data Processing with Spark SQL.md diff --git a/sources/tech/20220516 Structured Data Processing with Spark SQL.md b/sources/tech/20220516 Structured Data Processing with Spark SQL.md new file mode 100644 index 0000000000..21b3226dc1 --- /dev/null +++ b/sources/tech/20220516 Structured Data Processing with Spark SQL.md @@ -0,0 +1,130 @@ +[#]: subject: "Structured Data Processing with Spark SQL" +[#]: via: "https://www.opensourceforu.com/2022/05/structured-data-processing-with-spark-sql/" +[#]: author: "Phani Kiran https://www.opensourceforu.com/author/phani-kiran/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Structured Data Processing with Spark SQL +====== +Spark SQL is the module in the Spark ecosystem that processes data in a structured format. It internally uses the Spark Core API for its process, but the usage is abstracted from the user. This article dives a little deeper and tells you what’s new in Spark SQL 3.x. + +![][1] + +with Spark SQL, users can also write SQL-styled queries. This is essentially helpful for the wide user community that is proficient in structured query language or SQL. Users will also be able to write interactive and ad hoc queries on the structured data. Spark SQL bridges the gap between resilient distributed data sets (RDDs) and relational tables. An RDD is the fundamental data structure of Spark. It stores data as distributed objects across a cluster of nodes suitable for parallel processing. RDDs are good for low-level processing, but are difficult to debug during runtime and programmers cannot automatically infer schema. Also, there is no built-in optimisation for RDDs. Spark SQL provides the DataFrames and data sets to address these issues. + +Spark SQL can use the existing Hive metastore, SerDes, and UDFs. It can connect to existing BI tools using JDBC/ODBC. + +### Data sources + +Big Data processing often needs the ability to process different file types and data sources (relational and non-relational). Spark SQL supports a unified DataFrame interface to process different types of sources, as given below. + +*Files:* + +* CSV +* Text +* JSON +* XML + +*JDBC/ODBC:* + +* MySQL +* Oracle +* Postgres + +*Files with schema:* + +* AVRO +* Parquet + +*Hive tables:* + +* Spark SQL also supports reading and writing data stored in Apache Hive. + +With DataFrame, users can seamlessly read these diversified data sources and do transformations/joins on them. + +### What’s new in Spark SQL 3.x + +In the previous releases (Spark 2.x), the query plans were based on heuristics rules and cost estimation. The process from parsing to logical and physical query planning, and finally to optimisation was sequential. These releases had little visibility into the runtime characteristics of transformations and actions. Hence, the query plan was suboptimal because of the following reasons: + +* Missing and outdated statistics +* Suboptimal heuristics +* Wrong estimation of costs + +Spark 3.x has enhanced this process by using runtime data for iteratively improving the query planning and optimisation. The runtime statistics of a prior stage are used to optimise the query plan for subsequent stages. There is a feedback loop that helps to re-plan and re-optimise the execution plan. + +![Figure 1: Query planning][2] + +#### Adaptive query execution (AQE) + +The query is changed to a logical plan and finally to a physical plan. The concept here is ‘reoptimisation’. It takes the data available during the prior stage and reoptimises for subsequent stages. Because of this, the overall query execution is much faster. + +AQE can be enabled by setting the SQL configuration, as given below (default false in Spark 3.0): + +``` +spark.conf.set(“spark.sql.adaptive.enabled”,true) +``` + +#### Dynamically coalescing shuffle partitions + +Spark determines the optimum number of partitions after a shuffle operation. With AQE, Spark uses the default number of partitions, which is 200. This can be enabled by the configuration: + +``` +spark.conf.set(“spark.sql.adaptive.coalescePartitions.enabled”,true) +``` + +#### Dynamically switching join strategies + +Broadcast Hash is the best join operation. If one of the data sets is small, Spark can dynamically switch to Broadcast join instead of shuffling large amounts of data across the network. + +#### Dynamically optimising skew joins + +If the data dispersion is not uniform, data will be skewed and there will be a few large partitions. These partitions take up a lot of time. Spark 3.x optimises this by splitting the large partitions into multiple small partitions. This can be enabled by setting: + +``` +spark.conf.set(“spark.sql.adaptive.skewJoin.enabled”,true) +``` + +![Figure 2: Performance improvement in Spark 3.x (Source: Databricks)][3] + +### Other enhancements + + +In addition, Spark SQL 3.x supports the following. + +#### Dynamic partition pruning + +3.x will only read the partitions that are relevant based on the values from one of the tables. This eliminates the need to parse the big tables. + +#### Join hints + +This allows users to specify the join strategy to be used if the user has knowledge of the data. This enhances the query execution process. + +#### ANSI SQL compliant + +In the earlier versions of Spark, which are Hive compliant, we could use certain keywords in the query which would work perfectly fine. However, this is not allowed in Spark SQL 3, which has full ANSI SQL support. For example, ‘cast a string to integer’ will throw runtime exception. It also supports reserved keywords. + +#### Newer Hadoop, Java and Scala versions + +From Spark 3.0 onwards, Java 11 and Scala 2.12 are supported. Java 11 has better native coordination and garbage correction, which results in better performance. Scala 2.12 exploits new features of Java 8 and is better than 2.11. + +Spark 3.x has provided these useful features off-the-shelf instead of developers worrying about them. This will improve the overall performance of Spark significantly. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/05/structured-data-processing-with-spark-sql/ + +作者:[Phani Kiran][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.opensourceforu.com/author/phani-kiran/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Spark-SQL-Data-cluster.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-1-Query-planning.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-2-Performance-improvement-in-Spark-3.x-Source-Databricks.jpg