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