序章

ほとんどすべてのサーバーに必要な機能の1つは、他のネットワークマシンと情報を送受信する能力です。 人々は一般的にサーバーをコンテンツを提供するものと考えていますが(結局のところ、サーバーはその名前に含まれています)、さまざまな理由でコンテンツを取得する機能も必要です。

ほとんどのLinuxパッケージは、ディストリビューションのリポジトリから入手でき、標準のパッケージ管理ツールを使用してダウンロードできますが、他の情報やファイルは他のメカニズムを使用する必要があります。 このガイドでは、Linuxサーバーにファイルとデータを取得するための最も一般的な方法のいくつかについて説明します。

このリストを実行するために主にUbuntu14.04VPSインスタンスを使用しますが、他のディストリビューションやリリースでこのソフトウェアのほとんどすべてをインストールして使用できます。

リポジトリからのデータとソフトウェアの取得

おそらく、パッケージとソフトウェアをサーバーに取り込む最も一般的な方法は、リポジトリを使用することです。 このコンテキストのリポジトリは、実際にはかなり異なるものを参照できます。

これは、単に利用可能なソフトウェアの大規模なコレクションを指している場合があります。 これらには、ディストリビューションで使用するために一般的にテストおよび構成された、コンパイル済みですぐにインストールできるソフトウェアが含まれています。 特定のソフトウェアプロジェクトを構築するために必要なすべてのファイルを含むソースリポジトリもあります。

このセクションでは、これらのタイプの両方について説明します。

通常の配布リポジトリからのソフトウェアのインストール

Linuxコンピューター用のソフトウェアをインストールする標準的な方法は、パッケージマネージャーを使用することです。 パッケージマネージャーは、互換性のあるシステムで検証、パッケージ化、およびテストされたパッケージのリポジトリーを含む構成済みのサーバーセットに接続するように構成されています。

Linuxディストリビューションは、これを実現するためにさまざまなパッケージ形式とパッケージマネージャーを使用します。

最も一般的なパッケージ形式は、DebianおよびUbuntuディストリビューションとその派生物で使用される.debパッケージ形式と、RedHat、CentOS、Fedoraなどで従来から使用されている.rpmパッケージ形式です。ディストリビューション。 一部のシステムは、異なるパッケージ形式を使用します。 たとえば、ArchLinuxは単純な.tar.xzパッケージを使用します。

一般に、.debパッケージを使用するディストリビューションは、aptパッケージ管理ツールスイートを使用する傾向があります。 aptを使用して.debパッケージを管理する方法については、ここをクリックしてください。

同様に、.rpmパッケージ形式を使用するこれらのディストリビューションは、通常、yumパッケージマネージャーを使用します。 さまざまなソースからyumの使用方法を学ぶことができます。そのいくつかの例は、ここここ、およびここで入手できます。

Arch Linuxはこれらのパターンに従わず、独自のパッケージ形式を使用しているため、この機能を管理するためにpacmanと呼ばれる独自のパッケージマネージャーも開発しました。 Arch wikiには、pacmanの使用方法に関するすばらしいページがあります。これはここにあります。

パーソナルパッケージアーカイブの使用方法

Ubuntuマシンで利用可能なソフトウェアを入手する1つの方法は、パーソナルパッケージアーカイブまたはPPAを使用することです。 ソフトウェアを入手するこの方法はほとんどのディストリビューションには関係ありませんが、Ubuntuサーバーに柔軟性を提供します。

PPAは基本的にリポジトリであり、通常は単一またはいくつかの特定のパッケージに焦点を当てており、公式のUbuntuチャネル外の個人またはチームによって維持されます。 これにより、PPAをパッケージマネージャーの個別のソースとして使用でき、そこでビルドおよび保存されたソフトウェアを他のパッケージとシームレスにインストールできるようになります。

これには明らかな利点がいくつかあります。 Ubuntuの公式リリースの間に新しいバージョンのソフトウェアを入手できます。これにより、通常、一度に6か月間ほとんどのパッケージの古いバージョンが残ります。 また、Ubuntuチームによって正式にパッケージ化されていないソフトウェアに簡単にアクセスできます。ただし、独立した当事者がパッケージを提供するためにそれを引き受けている場合に限ります。

ソースからコンパイルすることに対する最大の利点は、これらのパッケージが通常のパッケージツールを介して管理されることです。 これは、更新を定期的に受信でき、一般的なパッケージエコシステムにプラグインされていることを意味します。これにより、依存関係の解決などの機能を利用できます。

ただし、このアプローチには欠点もあります。 1つは、使用しているPPAのメンテナに多くの信頼を置く必要があります。 Ubuntuのパッケージャーを信頼するのには十分な理由があるかもしれませんが、関心のあるPPAが信頼できるソースから提供されているかどうかを自問する必要があります。 メンテナが悪意を持っていなくても、セキュリティを最も意識しておらず、無意識のうちに侵害されたパッケージを提供している可能性があります。

覚えておくべきもう1つのことは、これらのPPAの寿命です。 このソースから突然サポートが削除された場合のアクションの計画はありますか? ディストリビューションがデフォルトのチャネルを介してパッケージのサポートを追加することになった場合に備えて、注意を払う時間はありますか?

始める前に、PPAを簡単に管理できるように、システムにパッケージを追加する必要がある場合があります。 これはリリースによって異なりますが、以下の2つのオプションのいずれかを使用できるはずです。

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 update 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を取得できます。

GitHub repo URL

URLをコピーして、cloneコマンドの後でターミナルセッションに貼り付けることができます。

 git clone  https://github.com/user/project.git

これにより、プロジェクト全体が現在のディレクトリに複製されます。

一般的なWebリソース

リポジトリを使用したソフトウェアの管理は簡単で、ソフトウェアと変更を追跡するための優れた方法を提供しますが、さまざまな理由から、これらの方法に常に依存できるとは限りません。 すべてのソフトウェアがリポジトリに保持されているわけではなく、サーバーに必要なデータの種類はソフトウェアパッケージだけではありません。

リポジトリ以外のコンテンツについては、他のツールを利用できます。 以下では、いくつかの洗練された方法と洗練されていない方法について説明します。

リモートダウンロードと転送

おそらく、最も自然に感じられるサーバーにデータを取得する方法は、データを自宅のコンピューターにダウンロードしてから、サイトにアップロードすることです。 おそらくすでにカスタムコンテンツをサイトにアップロードしているので、この方法は、正確にエレガントではないにしても、簡単です。

サイトに必要なコンテンツ、ファイル、またはパッケージは、通常のWebブラウザーを使用してコンピューターにダウンロードできます。 ソフトウェアを入手している場合は、サーバーのディストリビューション、リリース、およびアーキテクチャに一致する正しいバージョンをダウンロードしていることを確認してください(ダウンロードオプションが異なる場合)。

その後、これらのファイルをサーバーに簡単に転送できます。 推奨される方法は、sftp接続を使用することです。これにより、データを安全に簡単に転送できます。 このガイドで示すように、コマンドラインから sftpを使用できます。または、このガイドでFileZillaの使用に関するで示すように、sftp機能を備えたFTPクライアントを使用できます。 sftp

これは、Web上でアクセスできるファイルに加えて、作成したファイルを転送できるため、サーバーにコンテンツを取り込むための最も柔軟な方法です。

コンソールベースのWebブラウザ

システムにコンテンツを取り込むもう1つの興味深い方法は、サーバー内から実際にWebブラウザーを使用することです。

グラフィカルディスプレイサーバー全体と従来のブラウザーをサーバーにインストールできますが、これはほとんどの場合やり過ぎであり、必要ありません。 別の方法は、テキストのみの出力で表示されるWebサイトにアクセスできるコンソールベースのWebブラウザを使用することです。

コンソールベースのWebブラウザで利用できるオプションはかなりあります。

リンクス

lynxブラウザーは、現在も活発に開発および使用されている最も古いWebブラウザーです。 使い方も簡単です。 基本的に、上矢印キーと下矢印キーを使用すると、ページ全体のリンク間を簡単にジャンプできます。 リンクをたどるには、エントリが強調表示されているときにEnterキーまたは右矢印を押します。

これはデフォルトではシステムで使用できない場合がありますが、次のように入力することで簡単にインストールできます。

sudo apt-get update
sudo apt-get install lynx

LynxはCookieの管理とブックマークを処理できます。 端末がサポートしている場合は、色付きの出力をレンダリングできます。 通常、実際の機能を提供するためにjavascriptなどに依存しないWebサイトに使用できます。

ここでは、たとえば、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

ご覧のとおり、これはかなり使いやすいです。

このブラウザは、コマンドラインからWebを閲覧するのにも優れています。 lynxのようなものに対するlinksブラウザの機能の1つは、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

決定に影響を与える可能性のあるもう1つの機能は、linksにデフォルトでマウスのサポートが組み込まれていることです。つまり、通常のブラウザの場合と同じように、ターミナルウィンドウのリンクをクリックできます。

linksブラウザの人気のあるフォークはelinksです。 このフォークは2001年に開始され、linksレンダリングメカニズムと基盤となるエンジンを活用しながら、拡張機能セットを組み込んでいます。

Ubuntuマシンでelinksを取得するには、次のように入力します。

sudo apt-get update
sudo apt-get install elinks

elinksからlinksで得られる機能には、パスワードとフォームの管理、タブ付きブラウジング、部分的なJavaScriptのサポート、ビットトレントとIPv6プロトコルのサポートがあります。 これらは速度を犠牲にしてもたらされるかもしれませんが、おそらくこれはあまり目立たないでしょう。

w3m

これは、グラフィカルブラウザを使用するのと同じ方法で使用する方が簡単な、もう1つのフル機能のテキストブラウザです。 このリストにある他のほとんどのブラウザでは、リンク間をジャンプできますが、ページ自体を閲覧するのは困難です。 ただし、w3mブラウザは、TABを使用してリンクと矢印キーの間を移動し、カーソルを個別に移動してページをスクロールします。

多くのシステムにはデフォルトでw3mが含まれていますが、サーバーにこのブラウザーがない場合は、次のように入力して追加できます。

sudo apt-get update
sudo apt-get install w3m

一部の人々が興味を持つこのブラウザのもう1つの利点は、viのようなキーコマンドを使用できることです。 たとえば、「j」、「k」、「l」、および「h」と入力してカーソルを移動することもできます。

ユーティリティのダウンロード

サーバー自体から参照できると便利な場合もありますが、多くの場合、自分のマシンのグラフィカルWebブラウザーからの参照の方が効率的であり、ページをより忠実にレンダリングできるようになります。

このため、多くの人が自分のマシンでWebを閲覧し、ダウンロードリンクをターミナルウィンドウに貼り付けて、ダウンロードユーティリティで使用します。

wget

wgetツールは、Webサイトからページやダウンロードをすばやく取得するための優れたオプションです。

Ubuntuサーバーでwgetをまだ使用できない場合は、次のように入力して取得できます。

sudo apt-get update
sudo apt-get install wget

その後、リモートソースからファイルをダウンロードするのは、次のようにコマンド名の後にURLを貼り付けるのと同じくらい簡単です。

 wget  www.example.com

これを一般的なWebサイトに向けると、インデックスまたはメインページがローカルディレクトリ内のファイルにダウンロードされます。 ファイルに向けると、代わりにファイルがダウンロードされます。

通常、プロセスは、自宅のコンピューターのブラウザーを使用して、興味のあるインターネット上のファイルを見つけ、ダウンロードへのリンクを右クリックして、「リンクの場所をコピーする」と同様のオプションを選択することです。 次に、上記のコマンドでこのURLを使用します。

ダウンロードが中断された場合、実際には-cフラグを使用できます。これにより、現在のディレクトリに不完全なファイルが見つかった場合に、部分的なダウンロードが再開されます。

 wget -c  www.example.com

wgetコマンドは、Cookieを処理でき、スクリプトの候補として適しています。また、Webサイト全体を元の形式で再帰的にダウンロードできます。

カール

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 file.html  www.example.com

これは、選択したい名前のファイルをダウンロードする場合にも同様に機能し、ディレクトリインデックスの操作に役立つだけではありません。

リダイレクトが渡された場合は、-Lフラグを使用して、curlにそれに従うように指示できます。

結論

これまでに、インターネットからサーバーにソフトウェア、データ、および資料を取得するためのかなりの数の異なるオプションがあることがわかります。 これらはすべてWebからコンテンツをプルする機能を備えていますが、あらゆる種類のダウンロードや消費に適しているわけではありません。

オプションが何であるかを知り、それが設計された状況で各ソリューションの長所を活用できるようにすることは役に立ちます。 これにより、不要な作業を回避し、問題に取り組む方法に柔軟性を持たせることができます。

ジャスティン・エリングウッド