Raspberry Pi OS添加了Microsoft回购。 不,这不是邪恶的秘密

2021-02-09 21:14:02

最近,我们收到警告,茶壶里发生了暴风雨:当Raspberry Pi Foundation使安装Microsoft的Visual Studio Code开发环境变得更加容易时,一些Linux用户将其误认为是野兽标记,关于遥测以及Microsoft不知情地秘密安装了什么回购协议。

确实,最近推送到Raspberry Pi OS的更新将Microsoft存储库添加到Raspberry Pi OS系统,但事实并非如此,它添加了任何实际的软件包。

幸运的是,我自己的Raspberry Pi 400运行的是Ubuntu,而不是Raspberry Pi OS,这使得切换回查看系统中发生的更改变得很容易。同样幸运的是,Raspberry Pi 400几乎非常适合于分散发行版-要运行Pi OS的预更新版本,我需要做的就是关闭我的Pi电源,从我一直使用的Ubuntu卡中交换SD卡到我的旧Pi OS卡,然后重新启动。 Presto,一个预先更新的Pi!

接下来,我用tar czvf〜/ aptbackup.tar.gz / etc / apt复制了Pi 400上整个/ etc / apt /目录。备份到位后,我进行了apt更新; apt upgrade -y将自上次运行Pi OS以来遗漏的所有升级应用于我的系统。

长话短说,对我的软件包管理的唯一更改是添加了一个文件/etc/apt/sources.list.d/vscode.list。该文件向我的来源添加了一个存储库:http://packages.microsoft.com/repos/code,分支稳定且主要。如果我们查看http://packages.microsoft.com/repos/code的实际内容,我们可以看到它仅包含三个程序包:代码,代码探索和代码内幕程序。

最后,执行适当的策略代码确认Visual Studio Code并未实际安装在我的系统上-现在更容易安装(和更新!),因为其父存储库与GPG一起是我的源列表的一部分验证该存储库内容的代码。

在Pi Foundation将Microsoft的Visual Studio代码仓库添加到列表中之前,安装该IDE需要一些额外的步骤,而不是非Linux的步骤。您需要打开Web浏览器,转到Visual Studio Code下载页面,并浏览其他一些小障碍-例如,您需要知道系统需要的是deb文件而不是rpm,您的Pi需要ARM体系结构软件包,最后是这些软件包是ARM还是ARM64(对于不同型号的Pi,这是不同的)。

一旦下载了希望正确的Visual Studio Code程序包版本,然后就需要找到下载的程序包并执行它(通常是在文件管理器中找到它,然后双击它)。完成此操作后,您需要以特权用户身份进行身份验证,最后,程序包(及其依赖项)将开始在Pi上自行下载并安装。

相比之下,既然代码repo(及其GPG密钥)已安装在系统上,则用户只需将sudo apt安装代码即可。这是一种更类似于Unix的处理方式,它相当简单,而且在没有GUI的情况下也可以轻松执行。

我们已经可以听到一些用户抱怨说,以旧的方式安装VS Code并不困难-并且向他们指出,Raspberry Pi Foundation的主要目的不是为了向高级用户提供廉价玩具,它消除了障碍,从而促进了计算机教育。

当然,这些障碍中的第一个障碍当然是价格-很难以低于购买Pi的成本获得功能齐全的通用计算设备。但是,开始编写代码的困难是这些潜在障碍中的另一个障碍-因此,使其易于安装非常流行的IDE非常符合Pi Foundation的核心使命。

在系统上安装了Microsoft VS Code的存储库后,每次系统检查更新时,位于http://packages.microsoft.com的服务器都会获取查询以查看其可用软件包是否有任何更改。如果您tight起眼睛并正确地张着嘴,您可能会争辩说这构成了“遥测” —您接触过Microsoft服务器,对吗?

但是,用Pi创始人Eben Upton的话来说,这是很薄的稀饭。唯一与该Web服务器相关的工具本身就是合适的,它不会泄露有关用户系统的任何信息-它只是检查以查看/ repos / vscode / dists / stable中的内容并下载适当的内容-*。gz文件用于您的系统架构。在我的Pi 400上,Contents-arm64.gz;在较旧的32位Pis上,应为Contents-armhf.gz。

下载目录文件后,apt对其进行解析以确定可用的软件包版本。此数据可告知apt对任何用户安装匹配软件包名称的请求的响应,并让其知道在apt升级或apt dist-upgrade命令之后是否应下载并安装新版本的已安装软件包。 。但是除非用户实际安装了代码,否则这些信息都不会泄露给Microsoft;在这种情况下,Microsoft将知道何时下载其较新版本(因为它也来自“ packages.microsoft.com”)。

对于绝大多数的偏执狂,还有另一种可能性:如果Microsoft要在其回购中提供与/etc/apt/sources.list中指定的标准raspbian.raspberripi.org存储库中的软件包同名的软件包,则可以覆盖真实的系统与自己制作的其他程序一起打包。

但是,这对Microsoft而言将是一个非常明显的变化,该变化几乎是在公司做出后立即被发现的,并且将有效地导致该公司所花费的Linux社区中的所有善意立即遭到破坏。过去的六年辛苦建设。这并不使我们感到合理的关注。

如果您到此为止,但仍然对Raspberry Pi系统上存在Microsoft存储库感到不安,则可以选择。最核心的选择是完全放弃Raspberry Pi操作系统-例如,您始终可以在Pi上运行Ubuntu。在debian.org上也托管了可用于Pi的现成的香草Debian图像。但是,只需要对不满意的存储库一开始就变得更加简单。有几种方法可以这样做:例如,您可以编辑或删除vscode.list文件本身。而且,如果您担心将来的Pi OS更新会将该文件退回或撤消您的更改,则可以在/ etc / hosts中添加一个条目,从而首先无法联系Microsoft的存储库:

快点!如果您的系统尝试检查Microsoft的存储库,它将改为检查...本身,然后将失败。问题解决了。