如何将软件和内容下载到您的LinuxVPS
介绍
几乎所有服务器都必须具备的一项功能是向其他联网机器发送和接收信息的能力。 尽管人们普遍认为服务器是提供内容的(毕竟是名副其实),但出于多种原因,它们也必须具备获取内容的能力。
虽然大多数 Linux 软件包都可以通过其发行版的存储库获得,并且可以使用标准软件包管理工具下载,但其他信息和文件必须使用其他机制。 在本指南中,我们将讨论一些将文件和数据获取到 Linux 服务器的最常用方法。
我们将主要使用 Ubuntu 14.04 VPS 实例来运行此列表,但您可以在其他发行版和发行版上安装和使用几乎任何此类软件。
从存储库获取数据和软件
将软件包和软件安装到服务器上的最常见方式可能是使用存储库。 在这种情况下,存储库实际上可以引用完全不同的东西。
这可能只是指大量可用软件。 这些包含已编译并准备安装的软件,这些软件通常已经过测试和配置,可与您的发行版一起使用。 还有源存储库,其中包含构建某个软件项目所需的所有文件。
我们将在本节中介绍这两种类型。
从常规分发存储库安装软件
为 Linux 计算机安装软件的标准方法是使用包管理器。 包管理器被配置为连接到一组已配置的服务器,这些服务器包含已在兼容系统上审查、打包和测试的包的存储库。
Linux 发行版使用不同的打包格式和包管理器来实现这一点。
最流行的打包格式是 .deb
打包格式,用于 Debian 和 Ubuntu 发行版及其衍生版本,以及 .rpm
打包格式,传统上用于 RedHat、CentOS 和 Fedora 及相关分布。 一些系统使用不同的打包格式。 例如,Arch Linux 使用简单的 .tar.xz
包。
通常,使用 .deb
包的发行版倾向于使用 apt
包管理工具套件。 您可以点击这里了解如何使用 apt 管理 .deb 包。
同样,那些使用 .rpm
包格式的发行版通常坚持使用 yum
包管理器。 您可以从各种来源了解如何使用 yum
,其中一些示例可在 here、here 和 here 获得。
由于 Arch Linux 不遵循这些模式并使用自己的打包格式,它还开发了自己的包管理器,称为 pacman
来管理此功能。 Arch wiki 有一个关于如何使用 pacman 的 很棒的页面,你可以在这里找到。
如何使用个人包裹档案
获取可用于 Ubuntu 机器的软件的一种方法是使用 个人软件包存档 或 PPA
s。 虽然这种获取软件的方法与大多数发行版无关,但它确实为 Ubuntu 服务器提供了灵活性。
PPA 基本上是一个存储库,通常专注于一个或几个特定的包,由官方 Ubuntu 渠道之外的个人或团队维护。 这允许您使用 PPA 作为包管理器的单独源,并且在那里构建和存储的软件将可以与您的其他包一起无缝安装。
这有一些明显的优势。 您可以在官方 Ubuntu 版本之间获得更新版本的软件,这通常会让您一次使用大多数软件包的旧版本 6 个月。 它们还允许您轻松访问尚未由 Ubuntu 团队正式打包的软件,前提是独立方已自行提供软件包。
与从源代码编译相比,最大的优势是这些包是通过普通的打包工具进行管理的。 这意味着他们可以定期接收更新并插入通用包生态系统,这使他们能够利用依赖解析等功能。
然而,这种方法也有缺点。 一方面,您必须非常信任您正在使用的 PPA 的维护者。 虽然您可能有充分的理由信任 Ubuntu 的打包程序,但您应该问问自己您感兴趣的 PPA 是否由可靠的来源提供。 有可能即使维护者不是恶意的,他们也不是最有安全意识的,并且可能在不知不觉中提供受损的软件包。
要记住的另一件事是这些 PPA 的生命周期。 如果突然从这个来源放弃支持,你会有一个行动计划吗? 如果您的发行版最终通过默认渠道添加对软件包的支持,您是否有时间密切关注?
在开始之前,您可能需要向系统添加一个包,以便轻松管理 PPA。 这因版本而异,但您应该能够使用以下两个选项之一:
sudo apt-get update sudo apt-get install python-software-properties # For Ubuntu 12.04 and lower sudo apt-get install software-properties-common # For Ubuntu versions > 12.04
之后,您可以通过键入以下内容来添加 PPA:
sudo add-apt-repository ppa: PPA_name
然后,您需要更新您的包索引以从您的新 PPA 中提取信息。 然后,您可以安装 PPA 提供的任何新软件:
sudo apt-get 更新 sudo apt-get install new_package
Git 存储库
您在处理 Linux 软件时可能会遇到的另一种类型的存储库用于管理软件源文件。 通常,这意味着 git
存储库。
如果您感兴趣的文件托管在 git
存储库中,或者托管在 GitHub、Bitbucket、私有 GitLab 等 Git 解决方案上。 您可以使用常规的 git
命令轻松下载文件。
确保您的服务器已安装 git
以开始:
sudo apt-get update sudo apt-get install git
之后,您可以简单地移动到您想要保留项目的目录,并使用站点上提供的信息克隆存储库。 例如,在 GitHub 上,您可以在右侧获取项目的存储库 URL:
您可以复制 URL,并在克隆命令之后将其粘贴到终端会话中:
git 克隆 https://github.com/user/project.git
这会将整个项目克隆到您的当前目录中。
一般网络资源
虽然使用存储库管理软件很容易,并且为跟踪软件和更改提供了一种很好的方法,但由于各种原因,并不总是可以依赖这些方法。 并非所有软件都保存在存储库中,而且软件包并不是您可能希望在服务器上存储的唯一类型的数据。
对于非存储库内容,我们有其他工具可以帮助我们。 我们将在下面讨论一些复杂且简单的方法。
远程下载和传输
也许最自然的将数据下载到您的服务器的方法是将数据下载到您的家用计算机,然后将其上传到站点。 由于您可能已经将自定义内容上传到您的站点,因此这种方法即使不是很优雅,也很简单。
您可以使用普通的网络浏览器将您想要在您的站点上的任何内容、文件或包下载到您的计算机上。 如果您正在获取软件,请确保您正在下载正确的版本以匹配您的服务器的分发、发布和体系结构(如果下载选项不同)。
之后,您可以轻松地将这些文件传输到您的服务器。 推荐的方法是通过 sftp
连接,这样您就可以轻松安全地传输数据。 您可以像我们在本指南中展示的那样从命令行 使用 sftp,或者您可以使用具有 sftp
功能的 FTP 客户端,正如我们在本指南中展示的关于 使用 FileZilla sftp。
这可能是将内容传输到服务器的最灵活的方式,因为它允许您传输您创建的文件以及您可以在 Web 上访问的文件。
基于控制台的 Web 浏览器
将内容导入系统的另一种有趣方式是在服务器中实际使用 Web 浏览器。
虽然您可以将整个图形显示服务器和传统浏览器安装到您的服务器上,但这几乎总是矫枉过正且没有必要。 另一种方法是使用基于控制台的 Web 浏览器,该浏览器允许您访问显示在纯文本输出中的网站。
基于控制台的 Web 浏览器有很多可用的选项。
猞猁
lynx
浏览器是仍在积极开发和使用中的最古老的 Web 浏览器。 它也很容易使用。 基本上,使用向上和向下箭头键可以让您轻松地在整个页面的链接之间跳转。 要跟踪链接,请在其条目突出显示时按 ENTER 或向右箭头。
默认情况下,这可能在您的系统上不可用,但您可以通过键入以下内容轻松安装它:
sudo apt-get update sudo apt-get install lynx
Lynx 可以处理 cookie 管理和书签。 如果您的终端支持,它可以呈现彩色输出。 它通常可用于任何不依赖 javascript 之类的东西来提供实际功能的网站。
例如,在这里,您可以看到在 lynx
浏览器中呈现的示例 DigitalOcean 帐户页面:
Droplets Create Droplet × Logged in! Image Name IP Address Status Memory Disk Region irssi xxx.241.xxx.54 Active 512MB 20GB nyc1 try 192.xxx.170.xx Active 4GB 60GB nyc2 snmp xxx.170.xx.123 Active 4GB 60GB nyc2 tugboat 192.xxx.162.xxx Active 4GB 60GB nyc2
如您所见,这是相当有用的。
链接
这个浏览器也很擅长从命令行浏览网页。 links
浏览器优于 lynx
的一个特点是它包含一个类似于传统浏览器的菜单系统,可以通过按 ESC 键访问。
如果该浏览器尚未在您的系统上,您可以通过键入以下命令获取该浏览器:
sudo apt-get update sudo apt-get install links
虽然 links
浏览器在其默认配置中不渲染彩色文本,这使得区分超链接有点困难,但它利用了许多 ncurses 功能使渲染看起来相当不错。 将图形站点放入文本总是会导致格式问题,但 links
做得很好:
Droplets Create Droplet Image Name IP Address Status Memory Disk Region irssi xxx.241.xxx.54 Active 512MB 20GB nyc1 try 192.xxx.170.xx Active 4GB 60GB nyc2 snmp xxx.170.xx.123 Active 4GB 60GB nyc2 tugboat 192.xxx.162.xxx Active 4GB 60GB nyc2
另一个可能影响您决定的功能是 links
默认包含鼠标支持,这意味着您可以像在常规浏览器中一样单击终端窗口中的链接。
链接
links
浏览器的一个流行分支是 elinks
。 这个分支于 2001 年开始,在利用 links
渲染机制和底层引擎的同时结合了扩展功能集。
要在 Ubuntu 机器上获取 elinks
,您可以键入:
sudo apt-get update sudo apt-get install elinks
您从 elinks
而不是 links
获得的一些功能包括密码和表单管理、选项卡式浏览、部分 javascript 支持以及 bittorrent 和 IPv6 协议支持。 这些可能是以速度为代价的,但很可能这不会太明显。
宽3米
这是另一个功能齐全的文本浏览器,它可能更易于使用,就像您使用图形浏览器一样。 此列表中的大多数其他浏览器都允许您在链接之间跳转,但会使浏览页面本身变得困难。 但是,w3m
浏览器使用 TAB 在链接和箭头键之间导航,以独立移动光标以滚动页面。
虽然许多系统默认包含 w3m
,但如果您的服务器没有此浏览器,您可以通过键入以下内容添加它:
sudo apt-get update sudo apt-get install w3m
这个浏览器的另一个让一些人感兴趣的优点是它可以使用类似 vi
的按键命令。 例如,您还可以通过键入“j”、“k”、“l”和“h”来移动光标。
下载实用程序
虽然有时能够从服务器本身进行浏览会很有帮助,但更多时候,您会发现在您自己的机器上从图形 Web 浏览器浏览更有效,并且可以让您以更忠实的方式呈现页面。
正因为如此,许多人在自己的机器上浏览网页,然后将下载链接粘贴到他们的终端窗口中,以便与下载实用程序一起使用。
wget
wget
工具是从网站快速获取页面或下载的绝佳选择。
如果您的 Ubuntu 服务器上没有可用的 wget
,您可以通过键入以下命令获取它:
sudo apt-get update sudo apt-get install wget
之后,从远程源下载文件就像在命令名称后粘贴 URL 一样简单,如下所示:
wget www.example.com
如果您将其指向一般网站,它会将索引或主页下载到本地目录中的文件中。 如果您将其指向一个文件,它将改为下载该文件。
通常,该过程是使用家庭计算机上的浏览器在互联网上查找您感兴趣的文件,右键单击下载链接,然后选择类似于“复制链接位置”的选项。 然后,您可以将此 URL 与上述命令一起使用。
如果您的下载被中断,您实际上可以使用 -c
标志,如果在当前目录中找到不完整的文件,它将恢复部分下载:
wget -c www.example.com
wget
命令可以处理 cookie,是一个很好的脚本候选者,并且可以递归地以原始格式下载整个网站。
卷曲
curl
工具也是此类操作的绝佳选择。 虽然 wget
通常通过生成文件来运行,但 curl
默认使用标准输出,这对于脚本和管道非常有用。 它还支持大量的协议,可以处理比wget
更多的HTTP认证方法。
虽然许多系统会默认安装 curl
,但如果您的 Ubuntu 机器没有,您可以键入:
sudo apt-get update sudo apt-get install curl
虽然 curl
正常使用管道,但您也可以轻松地将其输出保存到文件中。 如果您正在为服务器下载文件,这可能是您想要的。 要下载文件并将其输出到同名的本地文件,请键入:
卷曲-O www.example.com/index.html
我们必须指定一个文件,因为这样 curl
将知道如何命名本地文件。
如果我们想选择命名本地文件的名称,如果我们正在查找站点的目录索引,则不再需要将其指向特定文件。 相反,我们可以选择将其指向一个位置,任何配置为返回的索引文件都将放置在我们选择的文件中:
curl -o 文件.html www.example.com
这同样适用于将文件下载到您想要选择的名称,并且不仅对使用目录索引有用。
如果您收到重定向,您可以使用 -L
标志告诉 curl
跟随它。
结论
到目前为止,您可以看到有很多不同的选项可以将软件、数据和资料从 Internet 获取到您的服务器上。 虽然所有这些都能够从网络中提取内容,但它们都不适合所有类型的下载和消费。
了解您的选择是什么以及能够利用每种解决方案的优势来应对其设计的情况会很有帮助。 这将帮助您避免做不必要的工作,并为您解决问题的方式提供灵活性。