ソフトウェアリポジトリ
[Wikipedia|▼Menu]
.mw-parser-output .hatnote{margin:0.5em 0;padding:3px 2em;background-color:transparent;border-bottom:1px solid #a2a9b1;font-size:90%}

この項目では、ソフトウェアの格納庫について説明しています。その他の用法については「リポジトリ (曖昧さ回避)」をご覧ください。

ソフトウェアリポジトリ (: software repository)は、ソフトウェアパッケージの格納場所のことで、多くの場合、目次とメタデータが保存される。単にリポジトリと呼ばれる場合もある。ソフトウェアリポジトリは通常、ソース管理またはリポジトリマネージャによって管理される。パッケージマネージャを使用すると、リポジトリ("パッケージ" と呼ばれる)を自動でインストール、更新できる。
概要

多くのソフトウェア発行者などの組織は、無料またはサブスクリプション料金でインターネット上にコンテンツリポジトリ用のサーバーを持っている。リポジトリは、 Perlプログラミング言語のCPANなどの特定のプログラム専用、オペレーティングシステム全体専用のものがある。リポジトリの運営者は通常、リポジトリからソフトウェアパッケージを検索、インストール、その他の方法で操作することを目的としたパッケージ管理システムと呼ばれるツールを提供している。たとえば、多くのLinuxディストリビューションは、 たとえばDebianベースのディストリビューションで一般的に見られるAdvanced Packaging Tool (APT)、またはRedHatベースのディストリビューションで見られるyumといったパッケージ管理システムを使用している。また、Arch Linuxやequo、 Sabayon Linuxで使われるpacmanのような独立したパッケージ管理システムもある。

ソフトウェアリポジトリには便利なパッケージが含まれており、主要なリポジトリにはマルウェア防止機能が備わっている。信頼できるベンダーのデジタル署名されたリポジトリを使用するようにコンピュータが構成されており、適切なアクセス許可システムと組み合わされている場合、マルウェアの脅威が大幅に軽減される。そのため、多くのソフトウェアリポジトリには、ウイルス対策ソフトウェアなどのマルウェア対策ソフトウェアが不要である[1]

ほとんどの主要なLinuxディストリビューションには、メインリポジトリを反映した多くのリポジトリが世界中にある。

エンタープライズ環境では、ソフトウェアリポジトリは通常、アーティファクトを格納するため、またはセキュリティ制限のためにアクセスできない可能性のある外部リポジトリをミラーリングするために使用される。このようなリポジトリは、アクセス制御、バージョン管理、アップロードされたソフトウェアのセキュリティチェック、クラスタ機能などの追加機能を提供し、通常、企業のすべてのニーズに対応するために、1つのパッケージでさまざまな形式をサポートして、信頼できる唯一の情報源を提供する。ArtifactoryとNexusなどが人気がある。

クライアント側では、パッケージ管理システムがリポジトリからのインストールとリポジトリの更新を支援する。

サーバー側では、ソフトウェアリポジトリは通常、ソース管理またはリポジトリマネージャによって管理される。一部のリポジトリマネージャでは、他のリポジトリの場所を1つのURLに集約し、キャッシュプロキシを提供する。継続的ビルドを行う場合、多くのアーティファクトが生成され、多くの場合一元的に保存されるため、リリースされていないアーティファクトを自動的に削除することが重要である。
パッケージ管理システムとパッケージ開発プロセス

パッケージ管理システムは、パッケージ開発プロセスとは異なる。

パッケージ管理システムの一般的な使用法は、さまざまなソースからのコードをコヒーレントなスタンドアロンオペレーティングユニットに統合しやすくすることである。したがって、パッケージ管理システムを使用して、 Linuxディストリビューション、場合によっては特定の制限されたアプリケーションに合わせたディストリビューションを作成することができる。

対照的に、パッケージ開発プロセスは、共通のテーマを持つ関数またはルーチンのコレクションのコードとドキュメントの共同開発を管理するために使用され、それによって、通常は完全ではなく、それ自体では使用できないソフトウェア関数のパッケージを生成する。優れたパッケージ開発プロセスは、ユーザーが優れたドキュメントとコーディング手法に準拠し、ある程度の単体テストを統合するのに役立つ。
リポジトリの例

次の表に、提供されたソフトウェアのリポジトリを備えたいくつかの言語を示します。 「自動チェック」列では、実行される定期的なチェックについて説明します。

コアコードのバージョンが異なり、使用する可能性のある他の提供パッケージを使用して、複数のオペレーティングシステムでソフトウェアをテストできる人はほとんどいません。 Rの場合、 Comprehensive R Archive Network(CRAN)は定期的にテストを実行します。これがどのように価値があるかを確認するために、SallyがパッケージAを提供するとします。Sallyは現在のバージョンのソフトウェアを1つのバージョンのMicrosoft Windowsでのみ実行し、その環境でのみテストしました。 CRANは、ほぼ定期的に、オペレーティングシステムとコアR言語ソフトウェアのバージョンの12の組み合わせの下でSallyの貢献をテストします。それらの1つがエラーを生成した場合、彼女はそのエラーメッセージを受け取ります。運が良ければ、そのエラーメッセージは、彼女が持っているハードウェアとソフトウェアでエラーを複製できない場合でも、エラーを修正するのに十分かもしれません。次に、JohnがパッケージAを使用するパッケージBをリポジトリに提供するとします。パッケージBはすべてのテストに合格し、ユーザーが利用できるようになります。後で、サリーはAの改良版を提出しますが、残念ながらBは壊れます。自動チェックにより、ジョンに情報を提供して、問題を修正できるようになります。

この例では、R寄稿パッケージシステムの長所と短所の両方を明らかにしています。CRANは寄稿パッケージのこの種の自動テストをサポートしていますが、CRANに寄稿されたパッケージは、使用する他の寄稿パッケージのバージョンを指定する必要はありません。パッケージの特定のバージョンを要求するための手順は存在しますが、寄稿者はそれらの手順を使用しない場合があります。

これに加えて、提供されたパッケージの定期的なチェックを実行するCRANなどのリポジトリは、実際には、コア言語の開発バージョン用の広範なアドホックテストスイートを提供します。サリー(上記の例)が、特に言語の開発バージョンから、理解できない、または不適切だと思うエラーメッセージを受け取った場合、彼女はコア開発チームに言語の助けを求めることができます(そして多くの場合Rで行います) 。このように、リポジトリはコア言語ソフトウェアの品質向上に貢献できます。

言語/目的パッケージ開発プロセスリポジトリインストール方法共同開発プラットフォーム自動チェック
Haskellアプリケーションとライブラリを構築するための共通アーキテクチャ[2]Hackage


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:40 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef