ag旗舰厅官网_ag旗舰厅下载客户端

热门关键词: ag旗舰厅官网,ag旗舰厅下载客户端

关于计算机

当前位置:ag旗舰厅官网 > 关于计算机 > Linux探索之旅,中查找非自由软件

Linux探索之旅,中查找非自由软件

来源:http://www.pedaLyourcycLe.com 作者:ag旗舰厅官网 时间:2019-10-04 14:04

有一天,我在 Digital ocean 上读到一篇有趣的指南,它解释了自由和开源软件之间的区别。在此之前,我认为两者都差不多。但是,我错了。它们之间有一些显著差异。在阅读那篇文章时,我想知道如何在 Linux 中找到非自由软件,因此有了这篇文章。

图片 1

向 “Virtual Richard M. Stallman” 问好,这是一个在 Debian 中查找非自由软件的 Perl 脚本

Virtual Richard M. Stallman ,简称 vrms,是一个用 Perl 编写的程序,它在你基于 Debian 的系统上分析已安装软件的列表,并报告所有来自非自由和 contrib 树的已安装软件包。对于那些不太清楚区别的人,自由软件应该符合以下四项基本自由

  • 自由 0 – 不管任何目的,随意运行程序的自由。
  • 自由 1 – 研究程序如何工作的自由,并根据你的需求进行调整。访问源代码是一个先决条件。
  • 自由 2 – 重新分发副本的自由,这样你可以帮助别人。
  • 自由 3 – 改进程序,并向公众发布改进的自由,以便整个社区获益。访问源代码是一个先决条件。

任何不满足上述四个条件的软件都不被视为自由软件。简而言之,自由软件意味着用户有运行、复制、分发、研究、修改和改进软件的自由。

现在让我们来看看安装的软件是自由的还是非自由的,好么?

vrms 包存在于 Debian 及其衍生版(如 Ubuntu)的默认仓库中。因此,你可以使用 apt 包管理器安装它,使用下面的命令。

  1. $ sudoapt-get install vrms

安装完成后,运行以下命令,在基于 debian 的系统中查找非自由软件。

  1. $ vrms

在我的 Ubuntu 16.04 LTS 桌面版上输出的示例。

  1. Non-free packages installed on ostechnix
  2. unrar Unarchiverfor.rar files (non-free version)
  3. 1 non-free packages,0.0% of 2103 installed packages.

图片 2

如你在上面的截图中看到的那样,我的 Ubuntu 中安装了一个非自由软件包。

如果你的系统中没有任何非自由软件包,则应该看到以下输出。

  1. No non-free or contrib packages installed on ostechnix! rms would be proud.

vrms 不仅可以在 Debian 上找到非自由软件包,还可以在 Ubuntu、Linux Mint 和其他基于 deb 的系统中找到非自由软件包。

限制

vrms 虽然有一些限制。就像我已经提到的那样,它列出了安装的非自由和 contrib 部分的软件包。但是,某些发行版并未遵循确保专有软件仅在 vrms 识别为“非自由”的仓库中存在,并且它们不努力维护这种分离。在这种情况下,vrms 将不能识别非自由软件,并且始终会报告你的系统上安装了非自由软件。如果你使用的是像 Debian 和 Ubuntu 这样的发行版,遵循将专有软件保留在非自由仓库的策略,vrms 一定会帮助你找到非自由软件包。

就是这些。希望它是有用的。还有更好的东西。敬请关注!

干杯!

via: ostechnix

本文永久更新链接地址

图片 3

作者 谢恩铭 转载请注明出处公众号「程序员联盟」(微信号:ProgrammerLeague )原文:

《Linux探索之旅》全系列

  1. 第二部分第七课:软件安装,如虎添翼
  2. 第二部分第八课预告:RTFM 阅读那该死的手册

上一课 Linux探索之旅 | 第二部分第六课:Nano文本编辑器和终端配置 挺轻松的。

这一课也会比较轻松,所以好好享受吧~

我们来谈谈Linux下软件的安装,会在我们的Ubuntu这个Linux发行版中演示。

一般提到软件安装,有过Windows系统使用经验的朋友肯定深有体会,那个麻烦啊,大致流程是这样的:

  • 在搜索引擎(比如百度或google)中搜索我们的软件名称。

  • 看到一个不错的结果,点击进入。如果是官网一般会进入官网。

  • 下载此软件的安装程序。

  • 双击下载下来的安装程序,开始安装。一直按“下一步”,直到“完成”。

但是:

  • 有的软件还会问你要安装在何处。

  • 有的还会在你不知情的状况下安装捆绑软件,相当不开心。

  • 有的还有病毒... 这日子口简直没法过了...

但是在Linux系统中,特别是Ubuntu中,安装软件的流程绝对不是这样的,比Windows中安装软件方便、安全、捷多了。

而且,你会发现在Linux中安装软件是一种乐趣,就是这个feel,倍儿爽。

这也是Linux相对Windows的一个优点。我们一起来体验。

首先,我们得声明:小编是纯爷们... 不好意思,搞错了,应该是:

这一课涉及到的软件包安装等知识点是基于Debian一族的Linux发行版,包括Ubuntu。

其他不是Debian一族的Linux发行版,例如Fedora,Redhat,CentOS,等等。其实安装软件的方式大同小异,就是每个Linux发行版之间所用的命令不一样,软件包的名称有点区别罢了。所以一通百通。

在Windows下,我们如果要安装软件,一般都是使用“安装程序”,一般是.exe结尾的可执行程序,双击即可运行。一般会把我们的软件安装到Program Files这个文件夹下。

例如我们常用的QQ这个软件的安装包就是.exe文件,如下:

图片 4

在Ubuntu下,我们也有类似的程序,但是我们不称之为“安装程序”,而称之为“软件包”,英语是Package。

一个软件包其实是软件的所有文件的压缩包,二进制形式的,包含了安装软件的所有指令。在Debian一族里,软件包的后缀是.deb(是Debian的前三个字母),Ubuntu作为Debian一族的一员,当然也是用.deb的软件包。而如果是Red Hat一族(包括Red Hat,Fedora,等),软件包是.rpm为后缀。

那么,一个.deb格式的软件包,其实是类似Windows下的.exe的安装程序咯?

确实很像,但是其实它们的运作方式不一样。我们列出主要的两个不同点:

  • 软件包管理包括了依赖关系的管理

  • 软件包不需要我们通过搜索引擎来找到并下载,几乎所有的.deb软件包都存放在相同地方,称为软件仓库,英语叫repository。

这两个方面我们会一一来讲解。

通常来说,很少有一个软件可以单独在Linux上运行,也就是说它不依赖于其他程序。一个软件经常需要使用到其他程序或者其他程序的片段。我们说这个软件依赖其他程序,这就是依赖关系。

比如说,Linux下类似Photoshop的软件GIMP,它不能单独运行,它的正常运作还需要调用图片读取的库(比如说如何读取一个JPG图片),往往依赖关系还有下层依赖关系,环环相扣。

当然,在Windows里面你也遇到过依赖问题,比如你运行Eclipse软件,它会说你还没安装Java环境;你运行一个大型游戏,它提示你先安装Direct X,等等。

幸运的是,Debian的包管理系统非常智能。每一个软件包都“知道”它依赖于哪几个程序。这可以让系统去寻找并安装缺失的依赖程序。

所以,你只要告诉包管理系统“我要安装某某软件”,包管理系统会为你打理一切。

上面我们说了,Linux的软件包都存放在一个地方,叫做软件仓库,repository。

对于Windows的各种软件,可没有这样一个集中存放的地方,所以网上有软件的各种版本、各种型号任君选择。

因为Linux是在Windows之后诞生的,所以为了避免Windows的这个“弊端”,Linux选择创建一个集中存放软件的地方。

当然了,Linux的这一优势也得益于它的开源性。Linux中的软件基本都是开源自由的,任何人都可以分发,传播软件,只要遵守一定软件协议。因此把这些软件集中存放在某个地方是可行的。

但是Windows的大部分软件都是有版权的,闭源的,不开放,甚至收费的,这些软件的作者不会同意把他们本该赚钱的软件存放到一个公共仓库任大家分发,使用。

前面我们说了,Linux的软件会集中存放在一个地方,叫做软件仓库,英语是repository。

但是你也许会问:假如全球的Linux用户都到同一个地方去下载软件,那么存放软件的那个服务器岂不是会死机?

好问题,很有道理。所以,其实软件仓库绝不只是存放在一台服务器上,全球有很多个软件仓库(也就是有很多服务器),大部分软件仓库里的软件都是一样的,只不过是拷贝而已。

有一些特别的软件仓库,会存放其他软件仓库没有的软件,但一般我们用不到这样的软件仓库。

为了加深理解,我们可以用下图来表现软件仓库的原理:

图片 5

所以是用户选择软件仓库,因为基本上各个软件仓库中的软件都是一样的。

我们一般建议用户选择离自己所在地较近的软件仓库的服务器,这样下载速度会比较快。

在法国,Ubuntu默认会使用 这个服务器上的软件仓库,但是使用官方的软件仓库并不一定很好,因为有时候这些服务器会比较卡,例如Ubuntu更新版本和其下软件的时候。

我们来学习如何切换软件仓库。

上面说了,用默认的官方版本没有太大坏处,但是有时候会卡。所以我们要学习如何切换软件仓库。

我们Ubuntu系统使用的软件仓库的列表是记录在一个文件中。为了修改这个文件,我们要用文本编辑器,幸好上一课Linux探索之旅 | 第二部分第六课:Nano文本编辑器和终端配置我们已经接触了文本编辑器,知道如何使用了。

那现在就是将上一课学习的内容付诸实践的时刻了。我们要编辑的那个包含软件仓库的列表的文件是:

/etc/apt/sources.list

这个文件是系统文件,只能被root用户修改。所以我们有两种选择:

  1. 暂时性地成为root,用nano来编辑此文件
sudo nano /etc/apt/sources.list
  1. 先永久成为root
sudo su

再用nano来编辑此文件

nano /etc/apt/sources.list

用nano打开此文件之后,我们看到文件内容类似如下:

图片 6

上图中,由#开始的行是注释,会被忽略,不会被处理。

通常来说,这个文件中有作用的行是由以下两个指令开头:

  • deb:用于下载软件的二进制版本,大多数情况下我们都是用这个。

  • deb-src:用于下载软件的源代码。一般我们用不到,除非你很好奇想查看软件的源代码。这也是自由软件运动的一个好处。

以下是一行的例子:

deb http://fr.archive.ubuntu.com/ubuntu/ trusty universe
  • 第一个参数 是法国Ubuntu官方软件仓库的服务器。

  • 第二个参数trusty,是我们所使用的Ubuntu的版本号,trusty是Ubuntu 14.04的代号。14.04全称是 Trusty Tahr。

  • 最后一个参数(或者后面还有其他参数)是软件仓库的区域,也就是你要查看的代码仓库的不同分区。

上面的概念稍微有点复杂。但其实你只要知道一件事:如果要切换其他的软件仓库,只需要将/etc/apt/sources.list这个文件中的 这个服务器地址替换为其他软件仓库的服务器地址即可。

那么问题来了:我怎么知道其他软件仓库的服务器地址呢?

你可以用搜索引擎来寻找,比如可以搜“Ubuntu repository”。

但是我们要演示一个更快捷方便的方式,也就是要用到图形界面的方式了。

Ubuntu提供了一个图形化的代码仓库管理软件,可以按以下步骤启动:

菜单栏中的System->Administration->Software Sources

单击打开后,如下图:

图片 7

上图中,我们可以看到默认的服务器是法国的:Server for France

我们可以将这个下拉列表选成Other...,那么会打开另一个窗口,如下图:

图片 8

可以看到列表中有很多服务器可供选择,这些都是软件仓库的服务器地址,按国家分类有:United States,United Kingdom,Ukraine,Turkey,等等。

为了选出最快的服务器,我们可以做一个实际测试:

点击右上角的Select Best Server 按钮,然后Ubuntu就会启动测试,测试各个服务器的速度:

图片 9

测试完之后,最快的服务器会被选中,如下图:

图片 10

点击右下角Choose Server来选择这个最快的服务器(小编的情况是ftp.crihan.fr)。

选择之后,会关闭当前小窗口,回到主窗口,我们可以看到Download from后面的下拉列表已经变为了最快的那个服务器的地址:

图片 11

重新用nano来打开我们的/etc/apt/sources.list这个文件,可以看到服务器的地址都已经换成了新的 。

图片 12

所以,图形界面的方式更方便,更直观,比直接用文本编辑器逐行修改/etc/apt/sources.list这个文件快多了。

我们来总结一下:

  • package:包。这是软件的二进制安装包。类似Windows中软件的安装程序(大多以.exe结尾)。

  • dependency:依赖。一个软件包可能需要其他的软件包作为运行的基础。这是依赖关系。

  • repository:仓库。软件的仓库,就是存放软件的服务器,我们从这些服务器上下载软件。

我们上面演示了如何切换其他软件仓库,但也不一定要切换,用默认的软件仓库也是可以的。

在Ubuntu中,我们可以使用图形界面的软件包管理,例如 Synaptic Package Manager(新立得软件包管理器),要打开很简单:

菜单栏中的System->Administration->Synaptic Package Manager

单击打开后,如下图:

图片 13

当然了,我们也可以使用终端来管理软件包,终端的软件包管理命令一般用两个:

  • apt-get:最常用的,一般小编用这个比较多。

  • aptitude:这个命令在卸载软件时可以卸载不用的依赖。

以后的课程我们会使用apt-get一族来演示。

以下我们再学习几个常用的终端的软件包命令,记得这些命令都需要root身份来运行:

一般是

sudo apt-get update

一般是

sudo apt-cache search

一般是

sudo apt-get install xxx

xxx是对应软件包名

一般是

sudo apt-get autoremove xxx #xxx是对应软件包名

一般是

sudo apt-get upgrade

补充一下:dpkg 这个命令也是很有用的,事实上,dpkg 是 apt-get 和 aptitude 这两个命令的后端 命令,而 apt-get 和 aptitude 又是 Synaptic 和 Software Center 这样的软件安装工具的后端。

依赖链:dpkg --> apt-get, aptitude --> Synaptic, Software Center

因此,如果是本地的 .deb 软件包,我们可以用 dpkg 来安装:

sudo dpkg -i *.deb

卸载:

sudo dpkg -r 包名
  1. 大部分Linux的发行版都提供了集中式的软件包下载和安装方式,因此软件的安装比Windows下来得简单很多。这些集中存放软件的服务器被称为软件仓库。

  2. 在Ubuntu下,我们可以使用图形界面的软件包管理来安装软件,当然我们也可以使用终端命令来安装软件,就用apt-get命令族。

  3. apt-get update命令:更新可安装的软件列表。

  4. apt-cache search命令:在软件列表里搜索可用软件。

  5. apt-get install命令:安装软件。

  6. apt-get autoremove命令:卸载软件。

  7. apt-get upgrade命令:升级所有已安装软件。

今天的课就到这里,一起加油吧!

下一课我们学习:Linux探索之旅 | 第二部分第八课:RTFM 阅读那该死的手册

我是 谢恩铭,在巴黎奋斗的软件工程师。我创建了程序员联盟的 知识星球,欢迎加入。热爱生活,喜欢游泳,略懂烹饪。人生格言:「向着标杆直跑」

本文由ag旗舰厅官网发布于关于计算机,转载请注明出处:Linux探索之旅,中查找非自由软件

关键词: