Merge remote-tracking branch 'LCTT/master'

This commit is contained in:
Xingyu Wang 2019-06-18 14:57:55 +08:00
commit 75ffecc8c6
17 changed files with 1072 additions and 256 deletions

View File

@ -1,8 +1,8 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-10988-1.html)
[#]: subject: (Graviton: A Minimalist Open Source Code Editor)
[#]: via: (https://itsfoss.com/graviton-code-editor/)
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
@ -10,7 +10,7 @@
Graviton极简的开源代码编辑器
======
[Graviton][1]是一款开发中的免费开源跨平台代码编辑器。这位 16 岁的开发人员 Marc Espin 强调说,它是一个“极简”的代码编辑器。我不确定这点,但它确实有一个干净的用户界面,就像其他的[现代代码编辑器,如 Atom][2]。
[Graviton][1]是一款开发中的自由开源的跨平台代码编辑器。他的开发者 16 岁的 Marc Espin 强调说,它是一个“极简”的代码编辑器。我不确定这点,但它确实有一个清爽的用户界面,就像其他的[现代代码编辑器,如 Atom][2]。
![Graviton Code Editor Interface][3]
@ -30,9 +30,7 @@ Graviton 一些值得一说的特性有:
  * 提供英语、西班牙语和一些其他欧洲语言。
  * 适用于 Linux、Windows 和 macOS。
我快速看来一下 Graviton它可能不像 [VS Code][7] 或 [Brackets][8] 那样功能丰富,但对于一些简单的代码编辑来说,它并不是一个糟糕的工具。
我快速看来一下 Graviton它可能不像 [VS Code][7] 或 [Brackets][8] 那样功能丰富,但对于一些简单的代码编辑来说,它还算不错的工具。
### 下载并安装 Graviton
@ -42,22 +40,20 @@ Graviton 一些值得一说的特性有:
你可以在其发布页面上找到最新版本的 Graviton。Debian 和 [Ubuntu 用户可以使用 .deb 安装][10]。它已提供 [AppImage][11]以便可以在其他发行版中使用它。DMG 和 EXE 文件也分别可用于 macOS 和 Windows。
[下载 Graviton][12]
- [下载 Graviton][12]
如果你有兴趣,你可以在 GitHub 仓库中找到 Graviton 的源代码:
[GitHub 中 Graviton 的源码][13]
- [GitHub 中 Graviton 的源码][13]
如果你决定使用 Graviton 并发现了一些问题,请在[此处][14]写一份错误报告。如果你使用 GitHub你可能想为 Graviton 项目加星。这可以提高开发者的士气,因为他知道有更多的用户欣赏他的努力。
如果你看到现在,我相信你了解[如何从源码安装软件][16]
**写在最后**
### 写在最后
有时,简单本身就成了一个特性,而 Graviton 专注于极简可以帮助它在已经拥挤的代码编辑器世界中获取一席之地。
并且它是 FOSS 软件,我们尝试突出开源软件。如果你知道一些有趣的开源软件,并且想要更多的人知道,[请给我们留言][17]
--------------------------------------------------------------------------------
via: https://itsfoss.com/graviton-code-editor/
@ -65,7 +61,7 @@ via: https://itsfoss.com/graviton-code-editor/
作者:[Abhishek Prakash][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/) 荣誉推出

View File

@ -0,0 +1,64 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (5 transferable higher-education skills)
[#]: via: (https://opensource.com/article/19/6/5-transferable-higher-education-skills)
[#]: author: (Stephon Brown https://opensource.com/users/stephb)
5 transferable higher-education skills
======
If you're moving from the Ivory Tower to the Matrix, you already have
the foundation for success in the developer role.
![Two hands holding a resume with computer, clock, and desk chair ][1]
My transition from a higher-education professional into the tech realm was comparable to moving from a pond into an ocean. There was so much to learn, and after learning, there was still so much more to learn!
Rather than going down the rabbit hole and being overwhelmed by what I did not know, in the last two to three months, I have been able to take comfort in the realization that I was not entirely out of my element as a developer. The skills I acquired during my six years as a university professional gave me the foundation to be successful in the developer role.
These skills are transferable in any direction you plan to go within or outside tech, and it's valuable to reflect on how they apply to your new position.
### 1\. Composition and documentation
Higher education is replete with opportunities to develop skills related to composition and communication. In most cases, clear writing and communication are mandatory requirements for university administrative and teaching positions. Although you may not yet be well-versed in deep technical concepts, learning documentation and writing your progress may be two of the strongest skills you bring as a former higher education administrator. All of those "In response to…" emails will finally come in handy when describing the inner workings of a class or leaving succinct comments for other developers to follow what you have implemented.
### 2\. Problem-solving and critical thinking
Whether you've been an adviser who sits with students and painstakingly develops class schedules for graduation or a finance buff who balances government funds, you will not leave critical thinking behind as you transition into a developer role. Although your critical thinking may have seemed specialized for your work, the skill of turning problems into opportunities is not lost when contributing to code. The experience gained while spending long days and nights revising recruitment strategies will be necessary when composing algorithms and creative ways of delivering data. Continue to foster a passion for solving problems, and you will not have any trouble becoming an efficient and skillful developer.
### 3\. Communication
Though it may seem to overlap with writing (above), communication spans verbal and written disciplines. When you're interacting with clients and leadership, you may have a leg up over your peers because of your higher-education experience. Being approachable and understanding how to manage interactions are skills that some software practitioners may not have fostered to an impactful level. Although you will experience days of staring at a screen and banging your head against the keyboard, you can rest well in knowing you can describe technical concepts and interact with a wide range of audiences, from clients to peers.
### 4\. Leadership
Sitting on that panel; planning that event; leading that workshop. All of those experiences provide you with the grounding to plan and lead smaller projects as a new developer. Leadership is not limited to heading up large and small teams; its essence lies in taking initiative. This can be volunteering to do research on a new feature or do more extensive unit tests for your code. However you use it, your foundation as an educator will allow you to go further in technology development and maintenance.
### 5\. Research
You can Google with the best of them. Being able to clearly truncate your query into the idea you are searching for is characteristic of a higher-education professional. Most administrator or educator jobs focus on solving problems in a defined process for qualitative, quantitative, or mixed results; therefore, cultivating your scientific mind is valuable when providing software solutions. Your research skills also open opportunities for branching into data science and machine learning.
### Bonus: Collaboration
Being able to reach across various offices and fields for event planning and program implementation fit well within team collaboration—both within your new team and across development teams. This may leak into the project management realm, but being able to plan and divide work between teams and establish accountability will allow you as a new developer to understand the software development lifecycle process a little more intimately because of your past related experience.
### Summary
As a developer jumping head-first into technology after years of walking students through the process of navigating higher education, [imposter syndrome][2] has been a constant fear since moving into technology. However, I have been able to take heart in knowing my experience as an educator and an administrator has not gone in vain. If you are like me, be encouraged in knowing that these transferable skills, some of which fall into the soft-skills and other categories, will continue to benefit you as a developer and a professional.
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/6/5-transferable-higher-education-skills
作者:[Stephon Brown][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://opensource.com/users/stephb
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/resume_career_document_general.png?itok=JEaFL2XI (Two hands holding a resume with computer, clock, and desk chair )
[2]: https://en.wikipedia.org/wiki/Impostor_syndrome

View File

@ -0,0 +1,53 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Use ImageGlass to quickly view JPG images as a slideshow)
[#]: via: (https://opensource.com/article/19/6/use-imageglass-view-jpg-images-slideshow-windows-10)
[#]: author: (Jeff Macharyas https://opensource.com/users/jeffmacharyas)
Use ImageGlass to quickly view JPG images as a slideshow
======
Want to view images from a folder one-by-one in a slideshow on Windows
10? Open source to the rescue.
![Looking back with binoculars][1]
Welcome to todays episode of "How Can I Make This Work?" In my case, I was trying to view a folder of JPG images as a slideshow on Windows 10. As often happens, I turned to open source to solve the issue.
On a Mac, viewing a folder of JPG images as a slideshow is a simple matter of selecting all the images in a folder ( **Command-A** ), and then pressing **Option-Command-Y**. From there, you can advance the images with the arrow key. Of course, you can do a similar thing on Windows by selecting the first image, then clicking on the window frame's yellow **Manage** bar, then selecting **Slide Show**. There, you can control the speed, but only to a point: slow, medium, and fast.
I wanted to advance the images in Windows the same way I do it on a Mac. Naturally, I fired up the Googler and searched for a solution. There, I found the [ImageGlass][2] open source app, [licensed GPL 3.0][3], and it did the trick perfectly. Here's what it looks like:
![Viewing an image in ImageGlass.][4]
### About ImageGlass
ImageGlass was developed by Dương Diệu Pháp, a Vietnamese developer who works on the front end for Chainstack, according to his website. He collaborates with US-based [Kevin Routley][5], who "develops new features for ImageGlass." The source code is available on [GitHub][6].
ImageGlass supports most common image formats, including JPG, GIF, PNG, WEBP, SVG, and RAW. Users can customize this extension list easily.
My specific problem was needing to find an image for a catalog cover. Unfortunately, it was in a folder containing dozens of photos. Navigating through the slideshow in ImageGlass, stopping on the image I wanted, and downloading it into my project folder turned out to be easy. Open source to the rescue yet again, and the app took only seconds to download and use.
ImageGlass was featured as a Picasa alternative in Jason Bakers article [9 open source alternatives to][7] [Picasa][7] from March 10, 2016. There are some other interesting image-related open source tools in there as well if you are in need.
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/6/use-imageglass-view-jpg-images-slideshow-windows-10
作者:[Jeff Macharyas][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://opensource.com/users/jeffmacharyas
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/look-binoculars-sight-see-review.png?itok=NOw2cm39 (Looking back with binoculars)
[2]: https://imageglass.org/
[3]: https://github.com/d2phap/ImageGlass/blob/master/LICENSE
[4]: https://opensource.com/sites/default/files/uploads/imageglass-screenshot.png (Viewing an image in ImageGlass.)
[5]: https://github.com/fire-eggs
[6]: https://github.com/d2phap/ImageGlass
[7]: https://opensource.com/alternatives/picasa

View File

@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: translator: (chen-ni)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )

View File

@ -1,145 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (chen-ni)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (A short primer on assemblers, compilers, and interpreters)
[#]: via: (https://opensource.com/article/19/5/primer-assemblers-compilers-interpreters)
[#]: author: (Erik O'Shaughnessy https://opensource.com/users/jnyjny/users/shawnhcorey/users/jnyjny/users/jnyjny)
A short primer on assemblers, compilers, and interpreters
======
A gentle introduction to the historical evolution of programming
practices.
![keyboard with connected dots][1]
In the early days of computing, hardware was expensive and programmers were cheap. In fact, programmers were so cheap they weren't even called "programmers" and were in fact usually mathematicians or electrical engineers. Early computers were used to solve complex mathematical problems quickly, so mathematicians were a natural fit for the job of "programming."
### What is a program?
First, a little background. Computers can't do anything by themselves, so they require programs to drive their behavior. Programs can be thought of as very detailed recipes that take an input and produce an output. The steps in the recipe are composed of instructions that operate on data. While that sounds complicated, you probably know how this statement works:
```
`1 + 2 = 3`
```
The plus sign is the "instruction" while the numbers 1 and 2 are the data. Mathematically, the equal sign indicates that both sides of an equation are "equivalent," however most computer languages use some variant of equals to mean "assignment." If a computer were executing that statement, it would store the results of the addition (the "3") somewhere in memory.
Computers know how to do math with numbers and move data around the machine's memory hierarchy. I won't say too much about memory except that it generally comes in two different flavors: fast/small and slow/big. CPU registers are very fast, very small and act as scratch pads. Main memory is typically very big and not nearly as fast as register memory. CPUs shuffle the data they are working with from main memory to registers and back again while a program executes.
### Assemblers
Computers were very expensive and people were cheap. Programmers spent endless hours translating hand-written math into computer instructions that the computer could execute. The very first computers had terrible user interfaces, some only consisting of toggle switches on the front panel. The switches represented 1s and 0s in a single "word" of memory. The programmer would configure a word, indicate where to store it, and commit the word to memory. It was time-consuming and error-prone.
![Programmers operate the ENIAC computer][2]
_Programmers[Betty Jean Jennings][3] (left) and [Fran Bilas][4] (right) operate [ENIAC's][5] main control panel._
Eventually, an [electrical engineer][6] decided his time wasn't cheap and wrote a program with input written as a "recipe" expressed in terms people could read that output a computer-readable version. This was the first "assembler" and it was very controversial. The people that owned the expensive machines didn't want to "waste" compute time on a task that people were already doing; albeit slowly and with errors. Over time, people came to appreciate the speed and accuracy of the assembler versus a hand-assembled program, and the amount of "real work" done with the computer increased.
While assembler programs were a big step up from toggling bit patterns into the front panel of a machine, they were still pretty specialized. The addition example above might have looked something like this:
```
01 MOV R0, 1
02 MOV R1, 2
03 ADD R0, R1, R2
04 MOV 64, R0
05 STO R2, R0
```
Each line is a computer instruction, beginning with a shorthand name of the instruction followed by the data the instruction works on. This little program will first "move" the value 1 into a register called R0, then 2 into register R1. Line 03 adds the contents of registers R0 and R1 and stores the resulting value into register R2. Finally, lines 04 and 05 identify where the result should be stored in main memory (address 64). Managing where data is stored in memory is one of the most time-consuming and error-prone parts of writing computer programs.
### Compilers
Assembly was much better than writing computer instructions by hand; however, early programmers yearned to write programs like they were accustomed to writing mathematical formulae. This drove the development of higher-level compiled languages, some of which are historical footnotes and others are still in use today. [ALGO][7] is one such footnote, while real problems continue to be solved today with languages like [Fortran][8] and [C][9].
![Genealogy tree of ALGO and Fortran][10]
Genealogy tree of ALGO and Fortran programming languages
The introduction of these "high-level" languages allowed programmers to write their programs in simpler terms. In the C language, our addition assembly program would be written:
```
int x;
x = 1 + 2;
```
The first statement describes a piece of memory the program will use. In this case, the memory should be the size of an integer and its name is **x** The second statement is the addition, although written "backward." A C programmer would read that as "X is assigned the result of one plus two." Notice the programmer doesn't need to say where to put **x** in memory, as the compiler takes care of that.
A new type of program called a "compiler" would turn the program written in a high-level language into an assembly language version and then run it through the assembler to produce a machine-readable version of the program. This composition of programs is often called a "toolchain," in that one program's output is sent directly to another program's input.
The huge advantage of compiled languages over assembly language programs was porting from one computer model or brand to another. In the early days of computing, there was an explosion of different types of computing hardware from companies like IBM, Digital Equipment Corporation, Texas Instruments, UNIVAC, Hewlett Packard, and others. None of these computers shared much in common besides needing to be plugged into an electrical power supply. Memory and CPU architectures differed wildly, and it often took man-years to translate programs from one computer to another.
With high-level languages, the compiler toolchain only had to be ported to the new platform. Once the compiler was available, high-level language programs could be recompiled for a new computer with little or no modification. Compilation of high-level languages was truly revolutionary.
![IBM PC XT][11]
IBM PC XT released in 1983, is an early example of the decreasing cost of hardware.
Life became very good for programmers. It was much easier to express the problems they wanted to solve using high-level languages. The cost of computer hardware was falling dramatically due to advances in semiconductors and the invention of integrated chips. Computers were getting faster and more capable, as well as much less expensive. At some point, possibly in the late '80s, there was an inversion and programmers became more expensive than the hardware they used.
### Interpreters
Over time, a new programming model rose where a special program called an "interpreter" would read a program and turn it into computer instructions to be executed immediately. The interpreter takes the program as input and interprets it into an intermediate form, much like a compiler. Unlike a compiler, the interpreter then executes the intermediate form of the program. This happens every time an interpreted program runs, whereas a compiled program is compiled just one time and the computer executes the machine instructions "as written."
As a side note, when people say "interpreted programs are slow," this is the main source of the perceived lack of performance. Modern computers are so amazingly capable that most people can't tell the difference between compiled and interpreted programs.
Interpreted programs, sometimes called "scripts," are even easier to port to different hardware platforms. Because the script doesn't contain any machine-specific instructions, a single version of a program can run on many different computers without changes. The catch, of course, is the interpreter must be ported to the new machine to make that possible.
One example of a very popular interpreted language is [perl][12]. A complete perl expression of our addition problem would be:
```
`$x = 1 + 2`
```
While it looks and acts much like the C version, it lacks the variable initialization statement. There are other differences (which are beyond the scope of this article), but you can see that we can write a computer program that is very close to how a mathematician would write it by hand with pencil and paper.
### Virtual Machines
The latest craze in programming models is the virtual machine, often abbreviated as VM. There are two flavors of virtual machine; system virtual machines and process virtual machines. Both types of VMs provide a level of abstraction from the "real" computing hardware, though they have different scopes. A system virtual machine is software that offers a substitute for the physical hardware, while a process virtual machine is designed to execute a program in a system-independent manner. So in this case, a process virtual machine (virtual machine from here on) is similar in scope to an interpreter in that a program is first compiled into an intermediated form before the virtual machine executes it.
The main difference between an interpreter and a virtual machine is the virtual machine implements an idealized CPU accessed through its virtual instruction set. This abstraction makes it possible to write front-end language tools that compile programs written in different languages and target the virtual machine. Probably the most popular and well known virtual machine is the Java Virtual Machine (JVM). The JVM was initially only for the Java programming language back in the 1990s, but it now hosts [many][13] popular computer languages: Scala, Jython, JRuby, Clojure, and Kotlin to list just a few. There are other examples that may not be common knowledge. I only recently learned that my favorite language, [Python][14], is not an interpreted language, but a [language hosted on a virtual machine][15]!
Virtual machines continue the historical trend of reducing the amount of platform-specific knowledge a programmer needs to express their problem in a language that supports their domain-specific needs.
### That's a wrap
I hope you enjoy this primer on some of the less visible parts of software. Are there other topics you want me to dive into next? Let me know in the comments.
* * *
_This article was originally published on[PyBites][16] and is reprinted with permission._
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/5/primer-assemblers-compilers-interpreters
作者:[Erik O'Shaughnessy][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://opensource.com/users/jnyjny/users/shawnhcorey/users/jnyjny/users/jnyjny
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/programming_keyboard_coding.png?itok=E0Vvam7A (keyboard with connected dots)
[2]: https://opensource.com/sites/default/files/uploads/two_women_operating_eniac.gif (Programmers operate the ENIAC computer)
[3]: https://en.wikipedia.org/wiki/Jean_Bartik (Jean Bartik)
[4]: https://en.wikipedia.org/wiki/Frances_Spence (Frances Spence)
[5]: https://en.wikipedia.org/wiki/ENIAC
[6]: https://en.wikipedia.org/wiki/Nathaniel_Rochester_%28computer_scientist%29
[7]: https://en.wikipedia.org/wiki/ALGO
[8]: https://en.wikipedia.org/wiki/Fortran
[9]: https://en.wikipedia.org/wiki/C_(programming_language)
[10]: https://opensource.com/sites/default/files/uploads/algolfortran_family-by-borkowski.png (Genealogy tree of ALGO and Fortran)
[11]: https://opensource.com/sites/default/files/uploads/639px-ibm_px_xt_color.jpg (IBM PC XT)
[12]: www.perl.org
[13]: https://en.wikipedia.org/wiki/List_of_JVM_languages
[14]: /resources/python
[15]: https://opensource.com/article/18/4/introduction-python-bytecode
[16]: https://pybit.es/python-interpreters.html

View File

@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: translator: (robsean)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )

View File

@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )

View File

@ -1,91 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Search Linux Applications On AppImage, Flathub And Snapcraft Platforms)
[#]: via: (https://www.ostechnix.com/search-linux-applications-on-appimage-flathub-and-snapcraft-platforms/)
[#]: author: (sk https://www.ostechnix.com/author/sk/)
Search Linux Applications On AppImage, Flathub And Snapcraft Platforms
======
![Search Linux Applications On AppImage, Flathub And Snapcraft][1]
Linux is evolving day by day. In the past, the developers had to build applications separately for different Linux distributions. Since there are several Linux variants exists, building apps for all distributions became tedious task and quite time consuming. Then some developers invented package converters and builders such as [**Checkinstall**][2], [**Debtap**][3] and [**Fpm**][4]. But they didnt completely solved the problem. All of these tools will simply convert one package format to another. We still need to find and install the required dependencies the app needs to run.
Well, the time has changed. We have now universal Linux apps. Meaning we can install these applications on most Linux distributions. Be it Arch Linux, Debian, CentOS, Redhat, Ubuntu or any popular Linux distribution, the Universal apps will work just fine out of the box. These applications are packaged with all necessary libraries and dependencies in a single bundle. All we have to do is to download and run them on any Linux distributions of our choice. The popular universal app formats are **AppImages** , [**Flatpaks**][5] and [**Snaps**][6].
The AppImages are created and maintained by **Simon peter**. Many popular applications, like Gimp, Firefox, Krita and a lot more, are available in these formats and available directly on their download pages.Just download them, make it executable and run it in no time. You dont even root permissions to run AppImages.
The developer of Flatpak is **Alexander Larsson** (a RedHat employee). The Flatpak apps are hosted in a central repository (store) called **“Flathub”**. If youre a developer, you are encouraged to build your apps in Flatpak format and distribute them to the users via Flathub.
The **Snaps** are created mainly for Ubuntu, by **Canonical**. However, the developers of other Linux distributions are started to contribute to Snap packing format. So, Snaps will work on other Linux distributions as well. The Snaps can be downloaded either directly from applications download page or from **Snapcraft** store.
Many popular Companies and developers have released their applications in AppImage, Flatpak and Snap formats. If you ever looking for an app, just head over to the respective store and grab the application of your choice and run it regardless of the Linux distribution you use.
There is also a command line universal app search tool called **“Chob”** is available to easily search Linux Applications on AppImage, Flathub and Snapcraft platforms. This tool will only search for the given application and display official link in your default browser. It wont install them. This guide will explain how to install Chob and use it to search AppImages, Flatpaks and Snaps on Linux.
### Search Linux Applications On AppImage, Flathub And Snapcraft Platforms Using Chob
Download the latest Chob binary file from the [**releases page**][7]. As of writing this guide, the latest version was **0.3.5**.
```
$ wget https://github.com/MuhammedKpln/chob/releases/download/0.3.5/chob-linux
```
Make it executable:
```
$ chmod +x chob-linux
```
Finally, search the applications you want. For example, I am going to search applications related to **Vim**.
```
$ ./chob-linux vim
```
Chob will search for the given application (and related) on AppImage, Flathub and Snapcraft platforms and display the results.
![][8]
Search Linux applications Using Chob
Just choose the application you want by typing the appropriate number to open the official link of the selected app in your default web browser where you can read the details of the app.
![][9]
View Linux applications Details In Browser
For more details, have a look at the Chob official GitHub page given below.
**Resource:**
* [**Chob GitHub Repository**][10]
--------------------------------------------------------------------------------
via: https://www.ostechnix.com/search-linux-applications-on-appimage-flathub-and-snapcraft-platforms/
作者:[sk][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.ostechnix.com/author/sk/
[b]: https://github.com/lujun9972
[1]: https://www.ostechnix.com/wp-content/uploads/2019/05/chob-720x340.png
[2]: https://www.ostechnix.com/build-packages-source-using-checkinstall/
[3]: https://www.ostechnix.com/convert-deb-packages-arch-linux-packages/
[4]: https://www.ostechnix.com/build-linux-packages-multiple-platforms-easily/
[5]: https://www.ostechnix.com/flatpak-new-framework-desktop-applications-linux/
[6]: https://www.ostechnix.com/introduction-ubuntus-snap-packages/
[7]: https://github.com/MuhammedKpln/chob/releases
[8]: http://www.ostechnix.com/wp-content/uploads/2019/05/Search-Linux-applications-Using-Chob.png
[9]: http://www.ostechnix.com/wp-content/uploads/2019/05/View-Linux-applications-Details.png
[10]: https://github.com/MuhammedKpln/chob

View File

@ -94,7 +94,7 @@ Kernel: 5.1.2-arch1-1-ARCH x86_64 Up: 1h 31m Mem: 2800.5/7884.2 MiB (35.5%)
Storage: 465.76 GiB (80.8% used) Procs: 163 Shell: bash 5.0.7 inxi: 3.0.34
```
[![Find Linux System Details Using inxi][1]][3]
![][3]
Find Linux System Details Using inxi
@ -331,7 +331,7 @@ We can set different color schemes for inxi output using **-c** option. Yu can s
Here is inxi output with and without **-c** option.
[![inxi output without color scheme][1]][4]
![][4]
inxi output without color scheme
@ -597,7 +597,7 @@ via: https://www.ostechnix.com/how-to-find-your-system-details-using-inxi/
[a]: https://www.ostechnix.com/author/sk/
[b]: https://github.com/lujun9972
[1]: data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
[1]: https://www.ostechnix.com/wp-content/uploads/2016/08/inxi-520x245-1-720x340.png
[2]: https://www.ostechnix.com/yay-found-yet-another-reliable-aur-helper/
[3]: http://www.ostechnix.com/wp-content/uploads/2016/08/Find-Linux-System-Details-Using-inxi.png
[4]: http://www.ostechnix.com/wp-content/uploads/2016/08/inxi-output-without-color-scheme.png

View File

@ -0,0 +1,133 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Installing alternative versions of RPMs in Fedora)
[#]: via: (https://fedoramagazine.org/installing-alternative-rpm-versions-in-fedora/)
[#]: author: (Adam Šamalík https://fedoramagazine.org/author/asamalik/)
Installing alternative versions of RPMs in Fedora
======
![][1]
[Modularity][2] enables Fedora to provide alternative versions of RPM packages in the repositories. Several different applications, language runtimes, and tools are available in multiple versions, build natively for each Fedora release.
The Fedora Magazine has already covered [Modularity in Fedora 28 Server Edition][3] about a year ago. Back then, it was just an optional repository with additional content, and as the title hints, only available to the Server Edition. A lot has changed since then, and now **Modularity is a core part of the Fedora distribution**. And some packages have moved to modules completely. At the time of writing — out of the 49,464 binary RPM packages in Fedora 30 — 1,119 (2.26%) come from a module ([more about the numbers][4]).
### Modularity basics
Because having too many packages in multiple versions could feel overwhelming (and hard to manage), packages are grouped into **modules** that represent an application, a language runtime, or any other sensible group.
Modules often come in multiple **streams** — usually representing a major version of the software. Available in parallel, but only one stream of each module can be installed on a given system.
And not to overwhelm users with too many choices, each Fedora release comes with a set of **defaults** — so decisions only need to be made when desired.
Finally, to simplify installation, modules can be optionally installed using pre-defined **profiles** based on a use case. A database module, for example, could be installed as a client, a server, or both.
### Modularity in practice
When you install an RPM package on your Fedora system, chances are it comes from a module stream. The reason why you might not have noticed is one of the core principles of Modularity — remaining invisible until there is a reason to know about it.
Lets compare the following two situations. First, installing the popular _i3_ tiling window manager, and second, installing the minimalist _dwm_ window manager:
```
$ sudo dnf install i3
...
Done!
```
As expected, the above command installs the _i3_ package and its dependencies on the system. Nothing else happened here. But what about the other one?
```
$ sudo dnf install dwm
...
Enabling module streams:
dwm 6.1
...
Done!
```
It feels the same, but something happened in the background — the default _dwm_ module stream ( _6.1_ ) got enabled, and the _dwm_ package from the module got installed.
To be transparent, there is a message about the module auto-enablement in the output. But other than that, the user doesnt need to know anything about Modularity in order to use their system the way they always did.
But what if they do? Lets see how a different version of _dwm_ could have been installed instead.
Use the following command to see what module streams are available:
```
$ sudo dnf module list
...
dwm latest ...
dwm 6.0 ...
dwm 6.1 [d] ...
dwm 6.2 ...
...
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
```
The output shows there are four streams of the _dwm_ module, _6.1_ being the default.
To install the _dwm_ package in a different version — from the _6.2_ stream for example — enable the stream and then install the package by using the two following commands:
```
$ sudo dnf module enable dwm:6.2
...
Enabling module streams:
dwm 6.2
...
Done!
$ sudo dnf install dwm
...
Done!
```
Finally, lets have a look at profiles, with PostgreSQL as an example.
```
$ sudo dnf module list
...
postgresql 9.6 client, server ...
postgresql 10 client, server ...
postgresql 11 client, server ...
...
```
To install PostgreSQL 11 as a server, use the following command:
```
$ sudo dnf module install postgresql:11/server
```
Note that — apart from enabling — modules can be installed with a single command when a profile is specified.
It is possible to install multiple profiles at once. To add the client tools, use the following command:
```
$ sudo dnf module install postgresql:11/client
```
There are many other modules with multiple streams available to choose from. At the time of writing, there were 83 module streams in Fedora 30. That includes two versions of MariaDB, three versions of Node.js, two versions of Ruby, and many more.
Please refer to the [official user documentation for Modularity][5] for a complete set of commands including switching from one stream to another.
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/installing-alternative-rpm-versions-in-fedora/
作者:[Adam Šamalík][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://fedoramagazine.org/author/asamalik/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2019/06/modularity-f30-816x345.jpg
[2]: https://docs.pagure.org/modularity
[3]: https://fedoramagazine.org/modularity-fedora-28-server-edition/
[4]: https://blog.samalik.com/2019/06/12/counting-modularity-packages.html
[5]: https://docs.fedoraproject.org/en-US/modularity/using-modules/

View File

@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: translator: (robsean)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )

View File

@ -0,0 +1,94 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Personal assistant with Mycroft and Fedora)
[#]: via: (https://fedoramagazine.org/personal-assistant-with-mycroft-and-fedora/)
[#]: author: (Clément Verna https://fedoramagazine.org/author/cverna/)
Personal assistant with Mycroft and Fedora
======
![][1]
Looking for an open source personal assistant ? [Mycroft][2] is allowing you to run an open source service which gives you better control of your data.
### Install Mycroft on Fedora
Mycroft is currently not available in the official package collection, but it can be easily installed from the project source. The first step is to download the source from Mycrofts GitHub repository.
```
$ git clone https://github.com/MycroftAI/mycroft-core.git
```
Mycroft is a Python application and the project provides a script that takes care of creating a virtual environment before installing Mycroft and its dependencies.
```
$ cd mycroft-core
$ ./dev_setup.sh
```
The installation script prompts the user to help him with the installation process. It is recommended to run the stable version and get automatic updates.
When prompted to install locally the Mimic text-to-speech engine, answer No. Since as described in the installation process this can take a long time and Mimic is available as an rpm package in Fedora so it can be installed using dnf.
```
$ sudo dnf install mimic
```
### Starting Mycroft
After the installation is complete, the Mycroft services can be started using the following script.
```
$ ./start-mycroft.sh all
```
In order to start using Mycroft the device running the service needs to be registered. To do that an account is needed and can be created at <https://home.mycroft.ai/>.
Once the account created, it is possible to add a new device at the following address [https://account.mycroft.ai/devices.][3] Adding a new device requires a pairing code that will be spoken to you by your device after starting all the services.
![][4]
The device is now ready to be used.
### Using Mycroft
Mycroft provides a set of [skills][5] that are enabled by default or can be downloaded from the [Marketplace][5]. To start you can simply ask Mycroft how is doing, or what the weather is.
```
Hey Mycroft, how are you ?
Hey Mycroft, what's the weather like ?
```
If you are interested in how things works, the _start-mycroft.sh_ script provides a _cli_ option that lets you interact with the services using the command line. It is also displaying logs which is really useful for debugging.
Mycroft is always trying to learn new skills, and there are many way to help by [contributing][6] the Mycroft community.
* * *
Photo by [Przemyslaw Marczynski][7] on [Unsplash][8]
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/personal-assistant-with-mycroft-and-fedora/
作者:[Clément Verna][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://fedoramagazine.org/author/cverna/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2017/08/mycroft-816x345.jpg
[2]: https://mycroft.ai/
[3]: https://account.mycroft.ai/devices
[4]: https://fedoramagazine.org/wp-content/uploads/2019/06/Screenshot_2019-06-14-Account.png
[5]: https://market.mycroft.ai/skills
[6]: https://mycroft.ai/contribute/
[7]: https://unsplash.com/@pemmax?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[8]: https://unsplash.com/search/photos/ai?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText

View File

@ -0,0 +1,124 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Exploring /run on Linux)
[#]: via: (https://www.networkworld.com/article/3403023/exploring-run-on-linux.html)
[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/)
Exploring /run on Linux
======
There's been a small but significant change in how Linux systems work with respect to runtime data.
![Sandra Henry-Stocker][1]
If you havent been paying close attention, you might not have noticed a small but significant change in how Linux systems work with respect to runtime data. A re-arrangement of how and where its accessible in the file system started taking hold about eight years ago. And while this change might not have been big enough of a splash to wet your socks, it provides some additional consistency in the Linux file system and is worthy of some exploration.
To get started, cd your way over to /run. If you use df to check it out, youll see something like this:
```
$ df -k .
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 609984 2604 607380 1% /run
```
Identified as a “tmpfs” (temporary file system), we know that the files and directories in /run are not stored on disk but only in volatile memory. They represent data kept in memory (or disk-based swap) that takes on the appearance of a mounted file system to allow it to be more accessible and easier to manage.
**[ Two-Minute Linux Tips:[Learn how to master a host of Linux commands in these 2-minute video tutorials][2] ]**
/run is home to a wide assortment of data. For example, if you take a look at /run/user, you will notice a group of directories with numeric names.
```
$ ls /run/user
1000 1002 121
```
A long file listing will clarify the significance of these numbers.
```
$ ls -l
total 0
drwx------ 5 shs shs 120 Jun 16 12:44 1000
drwx------ 5 dory dory 120 Jun 16 16:14 1002
drwx------ 8 gdm gdm 220 Jun 14 12:18 121
```
This allows us to see that each directory is related to a user who is currently logged in or to the display manager, gdm. The numbers represent their UIDs. The content of each of these directories are files that are used by running processes.
The /run/user files represent only a very small portion of what youll find in /run. There are lots of other files, as well. A handful contain the process IDs for various system processes.
```
$ ls *.pid
acpid.pid atopacctd.pid crond.pid rsyslogd.pid
atd.pid atop.pid gdm3.pid sshd.pid
```
As shown below, that sshd.pid file listed above contains the process ID for the ssh daemon (sshd).
```
$ cat sshd.pid
1148
$ ps -ef | grep sshd
root 1148 1 0 Jun14 ? 00:00:00 /usr/sbin/sshd -D <==
root 10784 1148 0 12:44 ? 00:00:00 sshd: shs [priv]
shs 10922 10784 0 12:44 ? 00:00:00 sshd: shs@pts/0
root 18109 1148 0 16:13 ? 00:00:00 sshd: dory [priv]
dory 18232 18109 0 16:14 ? 00:00:00 sshd: dory@pts/1
shs 19276 10923 0 16:50 pts/0 00:00:00 grep --color=auto sshd
```
Some of the subdirectories within /run can only be accessed with root authority such as /run/sudo. Running as root, for example, we can see some files related to real or attempted sudo usage:
```
/run/sudo/ts# ls -l
total 8
-rw------- 1 root dory 112 Jun 16 16:37 dory
-rw------- 1 root shs 168 Jun 17 08:33 shs
```
In keeping with the shift to using /run, some of the old locations for runtime data are now symbolic links. /var/run is now a pointer to /run and /var/lock a pointer to /run/lock, allowing old references to work as expected.
```
$ ls -l /var
total 52
drwxr-xr-x 2 root root 4096 Jun 17 07:36 backups
drwxr-xr-x 19 root root 4096 Apr 18 13:46 cache
drwxrwsrwt 2 root whoopsie 4096 Jun 13 07:39 crash
drwxr-xr-x 75 root root 4096 Jun 9 15:14 lib
drwxrwsr-x 2 root staff 4096 Oct 16 2017 local
lrwxrwxrwx 1 root root 9 May 14 2018 lock -> /run/lock
drwxrwxr-x 17 root syslog 4096 Jun 17 00:00 log
drwxrwsrwt 2 root mail 4096 Jun 13 12:10 mail
drwxrwsrwt 2 root whoopsie 4096 Jan 5 2018 metrics
drwxr-xr-x 2 root root 4096 Jan 5 2018 opt
lrwxrwxrwx 1 root root 4 May 14 2018 run -> /run
drwxr-xr-x 9 root root 4096 Jun 16 2018 snap
drwxr-xr-x 9 root root 4096 Jun 9 15:14 spool
drwxrwxrwt 8 root root 4096 Jun 17 00:00 tmp
drwxr-xr-x 3 root root 4096 Jan 19 12:14 www
```
While minor as far as technical changes go, the transition to using /run simply allows for a better organization of runtime data in the Linux file system.
**[ Now read this:[Invaluable tips and tricks for troubleshooting Linux][3] ]**
Join the Network World communities on [Facebook][4] and [LinkedIn][5] to comment on topics that are top of mind.
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3403023/exploring-run-on-linux.html
作者:[Sandra Henry-Stocker][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.networkworld.com/author/Sandra-Henry_Stocker/
[b]: https://github.com/lujun9972
[1]: https://images.idgesg.net/images/article/2019/06/exploring_run-100799398-large.jpg
[2]: https://www.youtube.com/playlist?list=PL7D2RMSmRO9J8OTpjFECi8DJiTQdd4hua
[3]: https://www.networkworld.com/article/3242170/linux/invaluable-tips-and-tricks-for-troubleshooting-linux.html
[4]: https://www.facebook.com/NetworkWorld/
[5]: https://www.linkedin.com/company/network-world

View File

@ -0,0 +1,101 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (KIT Scenarist is a Powerful Tool for Creating Screenplays)
[#]: via: (https://itsfoss.com/kit-scenarist/)
[#]: author: (John Paul https://itsfoss.com/author/john/)
KIT Scenarist is a Powerful Tool for Creating Screenplays
======
Did you ever wish that there was an open source tool for all your screenplay writing needs? Well, you are in luck. Today, we will be looking at an application that will do just that. Today, we will be looking at KIT Scenarist.
### KIT Scenarist: An Open Source tool for writing screenplays
[KIT Scenarist][1] is a program designed to be your one-stop-shop to create the next great screenplay. KIT Scenarists tools are split up into four modules: Research, Cards, Script, and Statistics. When you load KIT Scenarist for the first time after installing it, you will be asked if you want to enable each of these modules. You can also disable any of the modules from the setting menu.
![Scenarist][2]
The Research module gives you a place to store your story ideas, as well as, ideas and information for both characters and locations. You can also add images for a character or location to give you inspiration.
The Cards module shows you the scenes that you have written or sketched out like cards on a cord board. You can drag these scenes around on the board to rearrange them. You can also jump to a certain scene or mark a scene as done.
The Script module is where the actual writing takes place. It has a widget that tells you approximately how long your screenplay will take to perform. Like a word processor, you can tell KIT Scenarist what parts of the script are the actions, character, dialogue, etc and it will format it correctly.
![Scenarist Research module][3]
The Statistics module gives you all kinds of reports and graphs about your screenplay. The scene report shows how long each act is and what characters are in it. The location report shows how much time is spent at each location and in which acts. The cast report shows how many scenes each character is in and how much dialogue they have. There is even a report that lists all of the dialogue for each character.
[][4]
Suggested read Tilix: Advanced Tiling Terminal Emulator for Power Users
Like all well-designed apps, KIT Scenarist has both a light and dark theme. The dark theme is the default.
![Scenarist Statistics module][5]
KIT Scenarist stores your projects in `.kitsp` files. These files are essentially SQLite database files with a different extension. This means that if you ever run into issues with KIT Scenarist, you can retrieve your information with an SQLite viewer.
This application also allows you to import scripts from a wide range of script writing applications. You can import the following file formats: Final Draft Screenplay (.fdx), Final Draft Template (.fdxt), Trelby Screenplay (.trelby), [Fountain Text][6] (.foundation), Celtx Project (.celtx), .odt, . doc and .docx. You can export your outline and script to .docx, .pdf, .fdx. or .Fountain.
The desktop version of KIT Scenarist is free, but they also have a couple of [Pro options][7]. They have a cloud service to collaborate with others or sync your work to other devices. The cloud service costs $4.99 for a month or $52.90 for a year. They have other subscription lengths. KIT Scenarist is available in the iOS app store or the Google Play store, but cost money there. Finally, if you are an organization who wants to use KIT Scenarist but it is missing a feature you want, they will add it if you finance the work.
![Scenarist Cards module][8]
### How to Install Scenarist
Currently, the only repo that Scenarist is available for downloading is the [Arch User Repository][9]. (Arch rulez :D)
Otherwise, you have to [download][10] a package installer from the website. They have packages available for Linux (both .deb and .rpm), Windows, and macOS. As I stated above, there are also versions available for both Android and iOS, but they are not free. You can find the source code of KIT Scenarist on GitHub.
[KIT Scenarist on GitHub][11]
If KIT Scenarist wont start on your Linux system, try installing the `libxcb-xinerama0` package.
![Scenarist Script][12]
### Final Thoughts on KIT Scenarist
KIT Scenarist offers the full script writing experience. All your information is stored in one place, so you dont need to look everywhere for your information. It does everything. Now, the creator just needs to add a feature to submit your script directly to the person who will make you the next famous playwright.
[][13]
Suggested read Bookworm: A Simple yet Magnificent eBook Reader for Linux
If KIT Scenarist looks too overwhelming and you want to try something simpler, I would recommend trying [Trelby][14]. If you are into writing, you may read my list of [useful open source tools for writers][15].
Have you every used KIT Scenarist? What is your favorite open source screenwriting tool? Please let us know in the comments below.
If you found this article interesting, please take a minute to share it on social media, Hacker News or [Reddit][16].
--------------------------------------------------------------------------------
via: https://itsfoss.com/kit-scenarist/
作者:[John Paul][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/john/
[b]: https://github.com/lujun9972
[1]: https://kitscenarist.ru/en/index.html
[2]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/scenarist-about.png?fit=800%2C469&ssl=1
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/scenarist-research.png?fit=800%2C371&ssl=1
[4]: https://itsfoss.com/tilix-terminal-emulator/
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/scenarist-statistics.png?fit=800%2C467&ssl=1
[6]: https://www.fountain.io/
[7]: https://kitscenarist.ru/en/pricing.html
[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/scenarist-cards.png?fit=800%2C470&ssl=1
[9]: https://aur.archlinux.org/packages/scenarist
[10]: https://kitscenarist.ru/en/download.html
[11]: https://github.com/dimkanovikov/kitscenarist
[12]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/scenarist-script.png?fit=800%2C468&ssl=1
[13]: https://itsfoss.com/bookworm-ebook-reader-linux/
[14]: https://www.trelby.org/
[15]: https://itsfoss.com/open-source-tools-writers/
[16]: http://reddit.com/r/linuxusersgroup

View File

@ -0,0 +1,257 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Cylon The Arch Linux Maintenance Program For Newbies)
[#]: via: (https://www.ostechnix.com/cylon-arch-linux-maintenance-program/)
[#]: author: (sk https://www.ostechnix.com/author/sk/)
Cylon The Arch Linux Maintenance Program For Newbies
======
![Cylon is an Arch Linux Maintenance Program][1]
Recently switched to Arch Linux as your daily driver? Great! Ive got a good news for you. Meet **Cylon** , a maintenance program for Arch Linux and derivatives. It is a menu-driven **Bash** script which provides updates, maintenance, backups and system checks for Arch Linux and its derivatives such as Manjaro Linux etc. Cylon is mainly a CLI program, and also has a basic dialog GUI. In this guide, we will see how to install and use Cylon in Arch Linux.
### Cylon The Arch Linux Maintenance Program
##### Install Cylon
Cylon is available in the [**AUR**][2]. You can install it using any AUR helpers, for example [**Yay**][3].
```
$ yay -S cylon
```
##### Usage
Please note that Cylon _**will not install all tools**_ by default. Some functions require various dependencies packages to be installed. There are three dependencies and the rest are optional dependencies. The optional dependencies are left to user discretion. When you perform a function, it will display the missing packages if there are any. All missing packages will be shown as **n/a** (not available) in menus. You need to install the missing packages by yourself before using such functions.
To launch Cylon, type _**cylon**_ in the Terminal:
```
$ cylon
```
Sample output from my Arch linux system:
![][4]
Default interface of Cylon, the Arch Linux maintenance program
You can also launch Cylon from the Menu. It usually found under **Applications > System Tools**.
As you see in the above screenshot, there are **14** menu entries in Cylon main menu to perform different functions. To go to each entry, type the respective number. Also, as you see in the screenshot, there is **n/a** besides the 2 and 3 menu entries which means **auracle** and [**Trizen**][5] are not installed. You need to install them first before performing those functions.
Let us see what each menu entry does.
**1\. Pacman**
Under [**Pacman**][6] section, you can do various package management operations such as install, update, upgrade, verify, remove packages, display package information, view Arch Linux news feed and many. Just type a number to perform the respective action.
![][7]
You can go back to main menu by typing the number **21**.
**2. auracle
**
The **auracle** is an AUR helper program that can be used to perform various AUR actions such as install, update, download, search, remove AUR packages in your Arch linux box.
**3\. trizen**
It is same as above section.
**4\. System Update**
As the name says, this section is dedicated to perform Arch Linux update. Here you can update both the official and AUR packages. Cylon gives you the following four options in this section.
1. Update Arch Main Repos only,
2. Update AUR only,
3. Update All repos,
4. No Update and exit.
![][8]
**5\. System Maintenance**
In this section, you can do the following maintenance tasks.
1. Failed Systemd Services and status,
2. Check Journalctl log for Errors,
3. Check Journalctl for fstrim SSD trim,
4. Analyze system boot-up performance,
5. Check for Broken Symlinks,
6. Find files where no group or User corresponds to files numeric ID,
7. lostfiles,
8. Diskspace usage,
9. Find 200 of the biggest files,
10. Find inodes usage,
11. Old configuration files scan,
12. Print sensors information,
13. Clean journal files,
14. Delete core dumps /var/lib/systemd/coredump/,
15. Delete files,
16. bleachbit n/a,
17. rmlint n/a,
18. List All Open Files,
19. DMI table decoder,
20. Return.
The non-installed packages will be shown with letters n/a besides that applications. You need to install them first before choosing that particular action.
** **Recommended Download** [**Free Video: “Penetration Testing Methodologies Training Course (a $99 value!) FREE”**][9]
**6\. System backup**
This section provides backup utilities such as **rsync** to backup your Arch Linux system. Also, there is a custom backup options which allows you to manually backup files/folders to a user-specified location.
![][10]
**7\. System Security**
Cylon provides various security tools including the following:
1. ccrypt Encrypt/decrypt files,
2. clamav Antivirus,
3. rkhunter RootKit hunter scan,
4. lynis System audit tool,
5. Password generator,
6. List the password aging info of a user,
7. Audit SUID/SGID Files.
Remember you need to install them yourself in order to use them. Cylon will not help you to install the missing packages.
**8\. Network Maintenance**
This section is for network related functions. Here, you can:
1. See wifi link quality continuously on screen,
2. Use speedtest-cli -testing internet bandwidth,
3. Check if website up with netcat and ping,
4. Display all interfaces which are currently available,
5. Display kernal routing table,
6. Check the status of UFW, Uncomplicated Firewall,
7. Network Time Synchronization status check,
8. traceroute print route packets trace to network host,
9. tracepath traces path to a network host,
10. View all open ports
**9\. xterm terminal**
Here, you can launch xterm terminal at output folder path in new window.
**10\. View/Edit config file**
View and edit the configuration files if necessary.
**11\. System information**
This is most useful feature of Cylon utlity. This section provides your Arch Linux systems information such as,
* Uptime,
* Kernel details,
* OS architecture,
* Username,
* Default Shell,
* Screen resolution,
* CPU,
* RAM (used/total),
* Editor variable,
* Location of pacman cache folder,
* Hold packages,
* Number of orphan packages,
* Total number of installed packages,
* Number of all explicitly installed packages,
* All foreign installed packages,
* All foreign explicitly installed packages,
* All packages installed as dependencies,
* Top 5 largest packages,
* 5 newest updated packages,
* Packages Installed size by repositories.
![][11]
**12\. Cylon information**
It will display the information about Cylon program. It also performs the dependencies installation check and display the list of installed non-installed dependencies.
![][12]
**13\. Weather**
It displays the 3 day weather forecast by **wttr.in** utility.
* * *
**Related Read:**
* **[How To Check Weather Details From Command Line In Linux][13]**
* * *
**14\. Exit**
Type **14** to exit Cylon.
For more details, type **cylon -h** in the Terminal to print cylon information.
* * *
**Recommended read:**
* [**Cylon-deb : The Debian Linux Maintenance Program**][14]
* * *
Cylon script offers a lot of tools and features to maintain your Arch Linux system. If youre new to Arch Linux, give it a try and see if it helps.
**Resource:**
* [**Cylon GitHub page**][15]
--------------------------------------------------------------------------------
via: https://www.ostechnix.com/cylon-arch-linux-maintenance-program/
作者:[sk][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.ostechnix.com/author/sk/
[b]: https://github.com/lujun9972
[1]: https://www.ostechnix.com/wp-content/uploads/2017/06/Cylon-The-Arch-Linux-Maintenance-Program-720x340.png
[2]: https://aur.archlinux.org/packages/cylon/
[3]: https://www.ostechnix.com/yay-found-yet-another-reliable-aur-helper/
[4]: http://www.ostechnix.com/wp-content/uploads/2017/06/cylon-interface.png
[5]: https://www.ostechnix.com/trizen-lightweight-aur-package-manager-arch-based-systems/
[6]: https://www.ostechnix.com/getting-started-pacman/
[7]: http://www.ostechnix.com/wp-content/uploads/2017/06/Cylon-pacman.png
[8]: http://www.ostechnix.com/wp-content/uploads/2017/06/Cylon-system-update.png
[9]: https://ostechnix.tradepub.com/free/w_cybf03/prgm.cgi
[10]: http://www.ostechnix.com/wp-content/uploads/2017/06/Cylon-system-backup.png
[11]: http://www.ostechnix.com/wp-content/uploads/2017/06/Cylon-system-information.png
[12]: http://www.ostechnix.com/wp-content/uploads/2017/06/Cylon-information.png
[13]: https://www.ostechnix.com/check-weather-details-command-line-linux/
[14]: https://www.ostechnix.com/cylon-deb-debian-linux-maintenance-program/
[15]: https://github.com/gavinlyonsrepo/cylon

View File

@ -0,0 +1,139 @@
[#]: collector: (lujun9972)
[#]: translator: (chen-ni)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (A short primer on assemblers, compilers, and interpreters)
[#]: via: (https://opensource.com/article/19/5/primer-assemblers-compilers-interpreters)
[#]: author: (Erik O'Shaughnessy https://opensource.com/users/jnyjny/users/shawnhcorey/users/jnyjny/users/jnyjny)
浅谈汇编器,编译器和解释器
======
简单介绍一下编程方式的历史演变
![keyboard with connected dots][1]
在计算机诞生不久的早期年代,硬件非常昂贵,而程序员比较廉价。这些廉价程序员甚至都没有“程序员”这个头衔,并且常常是由数学家或者电气工程师来充当这个角色的。早期的计算机被用来在短时间内解决复杂的数学问题,所以数学家天然就适合“编程”工作。
### 什么是程序?
首先来看一点背景知识。计算机自己是做不了任何事情的,它们的任何行为都需要程序来引导。你可以把程序看成是非常精确的菜谱,这种菜谱读取一个输入,然后生成对应的输出。菜谱里的各个步骤由操作数据的指令构成。听上去有点儿复杂,不过你或许知道下面这个语句是什么意思:
```
`1 + 2 = 3`
```
其中的加号是“指令”,而数字 1 和 2 是数据。数学上的等号意味着等式两边的部分是“等价”的不过在大部分编程语言中等号或者它的变形都是“赋值”的意思。如果计算机执行上面这个语句它会把这个加法的结果也就是“3”储存在内存中的某个地方。
计算机知道如何使用数字进行数学运算,以及如何在内存结构中移动数据。在这里就不对内存进行展开了,你只需要知道内存一般分为两大类:“速度快/空间小”和“速度慢/空间大”。CPU 寄存器的读写速度非常快但是空间非常小相当于一个速记便签。主存储器通常有很大的空间但是读写速度就比寄存器差远了。在程序运行的时候CPU 不断将它所需要用到的数据从主存储器挪动到寄存器,然后再把结果放回到主存储器。
### 汇编器
当时的计算机很贵,而人力比较便宜。程序员需要耗费很多时间把手写的数学表达式翻译成计算机可以执行的指令。最初的计算机只有非常糟糕的用户界面,有些甚至只有前面板上的拨动开关。这些开关就代表一个内存“单元”里的一个个 “0” 和 “1”。程序员需要配置一个内存单元选择好储存位置然后把这个单元提交到内存里。这是一个既耗时又容易出错的过程。
![Programmers operate the ENIAC computer][2]
_程序员[Betty Jean Jennings][3] (左) 和 [Fran Bilas][4] (右) 在操作 [ENIAC][5] 的主控制面板._
后来有一名 [电气工程师][6] 认为自己的时间很宝贵,就写了一个能够把人们可以读懂的“菜谱”一样的程序转换成计算机可以读懂的版本的程序。这就是最初的“汇编器”,在当时引起了不小的争议。这些昂贵机器的主人不希望把计算资源浪费在人们已经在做的任务上(虽然又慢又容易出错)。不过随着时间的推移,人们逐渐发现使用汇编器在速度和准确性上都胜于人工编写机器语言,并且计算机完成的“实际工作量”增加了。
尽管汇编器相比在机器面板上切换比特的状态已经是很大的进步了,这种编程方式仍然非常专业。上面加法的例子在汇编语言中看起来差不多是这样的:
```
01 MOV R0, 1
02 MOV R1, 2
03 ADD R0, R1, R2
04 MOV 64, R0
05 STO R2, R0
```
每一行都是一个计算机指令,前面是一个指令的简写,后面是指令所操作的数据。这个小小的程序会将数值 1 “移动”到寄存器 R0然后把 2 移动到寄存器 R1。03 行把 R0 和 R1 两个寄存器里的数值相加,然后将结果储存在 R2 寄存器里。最后04 行和 05 行决定结果应该被放在主存储器里的什么位置(在这里是地址 64。管理内存中存储数据的位置是编程过程中最耗时也最容易出错的部分之一。
### 编译器
汇编器已经比手写计算机指令要好太多了,不过早期的程序员还是渴望能够按照他们所习惯的方式,像书写数学公式一样地去写程序。这种需求驱动了更高级别编译语言的发展,其中有一些已经成为历史,另一些如今还在使用。比如[ALGO][7] 就已经成为历史了,但是像 [Fortran][8] 和 [C][9] 这样的语言仍然在不断解决实际问题。
![Genealogy tree of ALGO and Fortran][10]
ALGO 和 Fortran 编程语言的谱系树
这些“高级”语言使得程序员可以用更简单的方式编写程序。在 C 语言中,我们的加法程序就变成了这样:
```
int x;
x = 1 + 2;
```
第一个语句描述了该程序将要使用的一块内存。在这个例子中,这块内存应该占一个整数的大小,名字是 **x**。第二个语句是加法,虽然是倒着写的。一个 C 语言的程序员会说这是 "X 被赋值为 1 加 2 的结果"。需要注意的是,程序员并不需要决定在内存的什么位置储存 **x**,这个任务交给编译器了。
这种被称为“编译器”的新程序可以把用高级语言写的程序转换成汇编语言,再使用汇编器把汇编语言转换成机器可读的程序。这种程序的组合常常被称为“工具链”,因为一个程序的输出就直接成为另一个程序的输入。
编译语言相比汇编语言的优势体现在从一台计算机迁移到不同型号或者品牌的另一台计算机上的时候。在计算机的早期岁月里,包括 IBMDigital Equipment Corporation德州仪器UNIVAC 以及惠普在内的很多公司都在尝试不同类型的计算机硬件。这些计算机除了都需要连接电源之外就没有太多共同点了。它们在内存和 CPU 架构上的差异相当大,当时经常需要人们花费数年来将一台计算机的程序翻译成另一台计算机的程序。
有了高级语言,我们只需要把编译器工具链迁移到新的平台就行了。只要有可用的编译器,高级语言写的程序最多只需要经过小幅修改就可以在新的计算机上被重新编译。高级语言的编译是一个真正的革命性成果。
![IBM PC XT][11]
1983 发布的 IBM PC XT 是硬件价格下降的早期例子。
程序员们的生活得到了很好的改善。相比之下,通过高级语言表达他们想要解决的问题让事情变得轻松很多。由于半导体技术的进步以及集成芯片的发明,计算机硬件的价格急剧下降。计算机的速度越来越快,能力也越来越强,并且还便宜了很多。从某个时点往后(也许是 80 年代末期吧),事情发生了转变,程序员变得比他们所使用的硬件更值钱了。
### 解释器
随着时间的推移,一种新的编程方式兴起了。一种被称为“解释器”的特殊程序可以将程序直接转换成可以立即执行的计算机指令。和编译器差不多,解释器读取程序并将它转换成一个中间形态。但和编译器不同的是,解释器直接执行程序的这个中间形态。解释型语言在每一次执行的时候都要经历这个过程;而编译程序只需要编译一次,之后计算机每次只需要执行编译好的机器指令就可以了。
顺便说一句,这个特性就是导致人们感觉解释型程序运行得比较慢的原因。不过现代计算机的性能出奇地强大,以至于大多数人无法区分编译型程序和解释型程序。
解释型程序(有时也被成为“脚本”)甚至更容易被迁移到不同的硬件平台上。因为脚本并不包含任何机器特有的指令,同一个版本的程序可以不经过任何修改就直接在很多不同的计算机上运行。不过当然了,解释器必须得先迁移到新的机器上才行。
一个很流行的解释型语言是 [perl][12]。用 perl 完整地表达我们的加法问题会是这样的:
```
`$x = 1 + 2`
```
虽然这个程序看起来和 C 语言的版本差不多,运行上也没有太大区别,但却缺少了初始化变量的语句。其实还有一些其它的区别(超出这篇文章的范围了),但你应该已经注意到,我们写计算机程序的方式已经和数学家用纸笔手写数学表达式非常接近了。
### 虚拟机
最新潮的编程方式要数虚拟机(经常简称 VM了。虚拟机分为两大类系统虚拟机和进程虚拟机。这两种虚拟机都提供一种对“真实的”计算硬件的不同级别的抽象不过他们的作用域不同。系统虚拟机是一个提供物理硬件的替代的软件而进程虚拟机则被设计用来以一种“系统独立”的方式执行程序。所以在这个例子里进程虚拟机往后我所说的虚拟机都是指这个类型的作用域和解释器的比较类似因为也是先将程序编译成一个中间形态然后虚拟机再执行这个中间形态。
虚拟机和解释器的主要区别在于,虚拟机创造了一个虚拟的 CPU以及一套虚拟的指令集。有了这层抽象我们就可以编写前端工具来把不同语言的程序编译成虚拟机可以接受的程序了。也许最流行也最知名的虚拟机就是 Java 虚拟机JVM了。JVM 最初在 1990 年代只支持 Java 语言,但是如今却可以运行 [许多][13] 流行的编程语言,包括 ScalaJythonJRubyClojure以及 Kotlin 等等。还有其它一些不太常见的例子,在这里就不说了。我也是最近才知道,我最喜欢的语言 Python 并不是一个解释型语言,而是一个 [运行在虚拟机上的语言][15]!
虚拟机仍然在延续这样一个历史趋势:让程序员在使用特定领域的编程语言解决问题的时候,所需要的对特定计算平台的了解变得越来越少了。
### 就是这样了
希望你喜欢这篇简单介绍软件背后运行原理的短文。有什么其它话题是你想让我接下来讨论的吗?在评论里告诉我吧。
* * *
_This article was originally published on[PyBites][16] and is reprinted with permission._
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/5/primer-assemblers-compilers-interpreters
作者:[Erik O'Shaughnessy][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/chen-ni)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/jnyjny/users/shawnhcorey/users/jnyjny/users/jnyjny
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/programming_keyboard_coding.png?itok=E0Vvam7A (keyboard with connected dots)
[2]: https://opensource.com/sites/default/files/uploads/two_women_operating_eniac.gif (Programmers operate the ENIAC computer)
[3]: https://en.wikipedia.org/wiki/Jean_Bartik (Jean Bartik)
[4]: https://en.wikipedia.org/wiki/Frances_Spence (Frances Spence)
[5]: https://en.wikipedia.org/wiki/ENIAC
[6]: https://en.wikipedia.org/wiki/Nathaniel_Rochester_%28computer_scientist%29
[7]: https://en.wikipedia.org/wiki/ALGO
[8]: https://en.wikipedia.org/wiki/Fortran
[9]: https://en.wikipedia.org/wiki/C_(programming_language)
[10]: https://opensource.com/sites/default/files/uploads/algolfortran_family-by-borkowski.png (Genealogy tree of ALGO and Fortran)
[11]: https://opensource.com/sites/default/files/uploads/639px-ibm_px_xt_color.jpg (IBM PC XT)
[12]: www.perl.org
[13]: https://en.wikipedia.org/wiki/List_of_JVM_languages
[14]: /resources/python
[15]: https://opensource.com/article/18/4/introduction-python-bytecode
[16]: https://pybit.es/python-interpreters.html

View File

@ -0,0 +1,91 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Search Linux Applications On AppImage, Flathub And Snapcraft Platforms)
[#]: via: (https://www.ostechnix.com/search-linux-applications-on-appimage-flathub-and-snapcraft-platforms/)
[#]: author: (sk https://www.ostechnix.com/author/sk/)
在 AppImage、Flathub 和 Snapcraft 平台上搜索 Linux 应用
======
![Search Linux Applications On AppImage, Flathub And Snapcraft][1]
Linux 一直在发展。过去,开发人员必须分别为不同的 Linux 发行版构建应用。由于存在多种 Linux 变体,因此为所有发行版构建应用变得很繁琐,而且非常耗时。接着一些开发人员发明了包转换器和构建器,如 [**Checkinstall**][2]、[**Debtap**][3] 和 [**Fpm**][4]。但他们没有完全解决问题。所有这些工具都只是将一种包格式转换为另一种包格式。我们仍然需要找到并安装应用运行所需的依赖项。
好吧,时代已经变了。我们现在有了通用的 Linux 应用。这意味着我们可以在大多数 Linux 发行版上安装这些应用。无论是 Arch Linux、Debian、CentOS、Redhat、Ubuntu 还是任何流行的 Linux 发行版,通用应用都可以正常使用。这些应用与所有必需的库和依赖项打包在一个包中。我们所要做的就是在我们使用的任何 Linux 发行版上下载并运行它们。流行的通用应用格式有 **AppImages**、[**Flatpaks**][5] 和 [**Snaps**][6]。
AppImages 由 **Simon peter** 创建和维护。许多流行的应用,如 Gimp、Firefox、Krita 等等,都有这些格式,并可直接在下载页面下载。只需下载它们,使其可执行并立即运行它。你甚至无需 root 权限来运行 AppImages。
Flatpak 的开发人员是 **Alexander Larsson**RedHat 员工)。 Flatpak 应用托管在名为 **“Flathub”** 的中央仓库(商店)中。如果你是开发人员,建议你使用 Flatpak 格式构建应用,并通过 Flathub 将其分发给用户。
**Snaps** 由 **Canonical** 而建,主要用于 Ubuntu。但是其他 Linux 发行版的开发人员开始为 Snap 打包格式做出贡献。因此Snaps 也开始适用于其他 Linux 发行版。Snaps 可以直接从应用的下载页面下载,也可以从 **Snapcraft** 商店下载。
许多受欢迎的公司和开发人员已经发布了 AppImage、Flatpak 和 Snap 格式的应用。如果你在寻找一款应用,只需进入相应的商店并获取你选择的应用并运行它,而不用管你使用何种 Linux 发行版。
还有一个名为 **“Chob”** 的命令行通用应用搜索工具可在 AppImage、Flathub 和 Snapcraft 平台上轻松搜索 Linux 应用。此工具仅搜索给定的应用并在默认浏览器中显示官方链接。它不会安装它们。本指南将解释如何安装 Chob 并使用它来搜索 Linux 上的 AppImages、Flatpaks 和 Snaps。
### 使用 Chob 在 AppImage、Flathub 和 Snapcraft 平台上搜索 Linux 应用
从[**发布页面**][7]下载最新的 Chob 二进制文件。在编写本指南时,最新版本为 **0.3.5**
```
$ wget https://github.com/MuhammedKpln/chob/releases/download/0.3.5/chob-linux
```
使其可执行:
```
$ chmod +x chob-linux
```
最后,搜索你想要的应用。例如,我将搜索与 **Vim** 相关的应用。
```
$ ./chob-linux vim
```
Chob 将在 AppImage、Flathub 和 Snapcraft 平台上搜索给定的应用(和相关应用)并显示结果。
![][8]
使用 Chob 搜索 Linux 应用
只需要输入你想要应用前面的数字就可在默认浏览器中打开它的官方链接,并可在其中阅读应用的详细信息。
![][9]
在浏览器中查看 Linux 应用的详细信息
有关更多详细信息,请查看下面的 Chob 官方 GitHub 页面。
**资源:**
* [**Chob 的 GitHub 仓库**][10]
--------------------------------------------------------------------------------
via: https://www.ostechnix.com/search-linux-applications-on-appimage-flathub-and-snapcraft-platforms/
作者:[sk][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.ostechnix.com/author/sk/
[b]: https://github.com/lujun9972
[1]: https://www.ostechnix.com/wp-content/uploads/2019/05/chob-720x340.png
[2]: https://www.ostechnix.com/build-packages-source-using-checkinstall/
[3]: https://www.ostechnix.com/convert-deb-packages-arch-linux-packages/
[4]: https://www.ostechnix.com/build-linux-packages-multiple-platforms-easily/
[5]: https://www.ostechnix.com/flatpak-new-framework-desktop-applications-linux/
[6]: https://www.ostechnix.com/introduction-ubuntus-snap-packages/
[7]: https://github.com/MuhammedKpln/chob/releases
[8]: http://www.ostechnix.com/wp-content/uploads/2019/05/Search-Linux-applications-Using-Chob.png
[9]: http://www.ostechnix.com/wp-content/uploads/2019/05/View-Linux-applications-Details.png
[10]: https://github.com/MuhammedKpln/chob