CentOSで用語として使われるレポジトリとはどういう意味か分かりません。
すみません、教えていただけますでしょうか。
IT用語集ではレポジトリの定義は貯蔵庫とか書かれていますが。
イメージが湧きません。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

LinuxカーネルはオープンソースのOSカーネルで


Linux系OSは、ほとんどをオープンソースのソフトウェアによって構成されたOSです。

ですから、オープンソース系ライセンスの特徴である
・開発に誰でも参加できる
・誰でも利用できる
・誰でもmakeすることができる
・誰でもmakeしてパッケージ作成して配布できる

といった要素があるため、Linuxディストリビューションでは
採用したソフトウェアを、インストールディスクイメージに組み込むだけでなく
インターネット上のサーバーに置いて、公開(配布)しています。

この保存場所を、リポジトリーと呼びます。

誰でもということは、有志の第三者が
ディストリビューションに含まれていないソフトについて…
あるいは、採用されたものより新しいバージョンについて…
独自のパッケージを作成し、それを公開することもできます。

そして、そういったものも、適切な手順によって
ディストリビューターの管理外で
外部リポジトリーを構成することができます。

ですから、そういったものを利用することで
より便利になることもありますし…
信頼性やセキュリティについての不安が生じることもありえます。


一般的には、特許技術などの問題で採用されていないもの。
インストールディスクに組み込むことで、国によっては配布できなくなるもの。
そういったものは、リポジトリーや外部リポジトリーから導入するようになっています。

Samba3.6のように、最新版での大幅改修への期待があるものが
ディストリビューションへの採用には、検証期間が必要なために遅れることもあります。
そういう場合にも、外部リポジトリーで提供されることがありえます。


なお、リポジトリーにはソフトウェアパッケージ自体だけでなく
Flash PlayerをAdobeのサイトからダウンロードして導入するような
スクリプトも登録されています。(CentOSの場合は知らんけど、Ubuntuとかではそうなっています)

理屈としては、PDFによるマニュアルを提供することもできますし
シェアウェアのように、気に入った人は振り込んでくれというスタイルで
多種多様なコンテンツを提供することもできないことはありません。

ただし、Linuxディストリビューションではそれは行われていません。


そういったリポジトリーとの連携の延長上に生まれたのが
iOSやAndroidで使われているストア/マーケットのシステムです。


リポジトリーの利用にはRedHat系(CentOS含む)のYumや
Debian系(Ubuntu,Mint含む)のaptのようなツールが使われますし
GUIフロントエンドが提供されることもあります。

一般的にはディストリビューションごとに独自のものを持ちますが
LubuntuやMintのように、派生ディストリビューションでは
派生元のリポジトリーの一部を共用する場合もあります。

これは、リポジトリーで提供されるソフトウェアパッケージについて
依存関係や互換性で問題がおきないようにしているためで
また、問題がおきない組合せでは共用も可能なのです。

ですから、外部リポジトリーでも、共用前提で提供している場合もあります。


仮にPDF配布の独自外部リポジトリーを作るとしたら
ディストリビューションを規定しない、汎用外部リポジトリーとして作ることもできます。


余談ですが、カタカナ表記は、厳密な規定は無いのですがrepositoryの英語発音は
http://dictionary.goo.ne.jp/leaf/ej3/70727/m0u/r …
で聞く限り、レポジトリには聞こえないと思います。
というか、二分するなら、リポジトリィかリポゼトリィという現実、この国の英語力って orz

個人的には、長音が付く付かないの区別ができない素人を考慮して
付くべき長音は省かないという方針で書いています。
変換効率が落ちることもあるけど、どっちかというと文系だし。
    • good
    • 2

「パッケージを置いてある倉庫」だと、考えてください。



Windowsのように、主たる機能のほとんどを同じ組織で設計し、完成させて出荷するOSとは違い、パッケージ管理形式に関わらず、Unix/Linux系統の「ディストリビューション」は、「本体」であるカーネルを、各種パッケージと組み合わせ、「使いやすい形にまとめただけ」のモノなのです。

各ディストロは、まとめられ方が違うだけで、本質的には同じモノなのです。
ですから、パッケージ単体の動作要件には、ディストリビューションの名前では無く、必要なカーネル仕様や、ライブラリで定義してあることが多く見られます。

ディストロを開発している中心になっている集団は、動作の安定性や安全性、新技術への対応を重視したパッケージ群を構成し、Security(保安修正パッチ)・Factory(開発版)リポジトリ・Stable(安定版)リポジトリ、などを用意しますが、それだけでは物足りない集団も当然出て来ます。

同じディストロを利用しているユーザが、より、そのディストロを自分達の使い勝手の良いものにするために、「本隊」とは別に、「本隊」では「急ぐ必要は無い」と、後回しになったり、「権利問題で収録不能」だったり、「必要性無し」と判断されるような「パッケージ群をまとめてある、ネット上の場所」や、「パッケージ群それ自身」を、「外部リポジトリ」と考えて差し支えないでしょう。
    • good
    • 2

CentOSで言えば


ネットワーク上に置かれているrpmパッケージの置き場所がリポジトリ。
(通常yumを使ってリポジトリのパッケージをインストールする。)
外部リポジトリはCentOSの公式のリポジトリ以外の非公式のリポジトリのことを言う。
    • good
    • 0

rpmパッケージが置いてあるところですね。


CentOSでyumを使う場合は/etc/yum.repos.d/配下のファイルで指定しています。

私はDAGなんかは割と良く使います。
http://dag.wieers.com/rpm/
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qポートの80と443

こちらのサービス(https://secure.logmein.com/)を利用すると、インターネットを見られるサーバーのポートの80と443が空いていればルータやファイアウォールに特段の設定なく外部からサーバーを操作できるそうですが、逆にサーバーのポートの80や443を空けることには何か危険性があるのでしょうか。

Aベストアンサー

ポート80は一般的なHTTP、ポート443はHTTPSです。
この2つのポートがあいていなければインターネット接続(WEBブラウジング)は出来ません。
ですから、ほとんどのファイアウォールでこのポートは開いています。(インターネット接続を制限している社内LANでは当然閉じていますが)

ちなみに、よく使うポートとしてはFTPで20、21、SMTP(送信メール)で25、受信メールPOP3で110あたりです。セキュリティポリシー上、この辺は制限される事も多いですが、HTTP 80、HTTPS(暗号化用)443は通常閉じません。


危険性?
WEBプロトコルを使ってFTP的なファイル転送(WebDAV)やVPN等も出来るようになっています。当然そこにはある種の危険はつきものですが、WEBブラウジングに伴う危険と大きく変わりません。ウィルス等に感染していればこの2つのポートだけでも相当危険でしょうね。

参考まで。

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

QProxyを利用しているかどうか確認する方法

自分のPCからネットに接続する際
Proxyサーバを経由しているかどうかを
確認する方法はありますか?

Aベストアンサー

ブラウザーがIEの場合として、
ツール→インターネットオプション→接続→LANの設定→LANにプロキシサーバを使用する ここにチェックがはいっていればProxyサーバ経由です。

Qinterface,extend,implementのちがい

お世話になります、

Javaを勉強しているのですが、
interface,extend,implementの使い分けがわかりません。

私の解釈としては、
(1)interfaceは、グローバル変数の定義、グローバルメソッドの定義(実装はしない)。

(2)extendは、extendクラスを親クラスとして親クラスの機能を使用できる。

(3)implementは…,implementもextendと同じような意味だと解釈しているんですが、違う点は、implementで定義してあるメソッドは、使用しなくても、実装しなければならないという点でしょうか?

とにかくこの3つのを使い分けるコツとかあれば教えてください。
よろしくお願いします。

Aベストアンサー

バラバラに理解してもしょうがないッス。

まず、
(1)interface と implements
(2)class と extends

が対応しているわけっす。

JavaはC++と違って、比較的言語仕様を「簡単」にしたので「多重継承」という
概念がないです。
多重継承っていうのは、複数のクラスを親クラスにして継承するってことですね。

たとえば、 「TextFieldクラス」と「Japaneseクラス」を多重継承すると、
「JTextFieldクラス」ができるっていうのが自然な考え方でしょう?

まぁ、例えば、日本語クラスであれば、getStringLength()メソッドなどが
あったほうが良いでしょうか。
このgetStringLength()メソッドは、2バイト文字も1バイト文字も「1文字」
と数えてくれると言う点で、まさに、日本語クラス用のメソッドだと言えるでしょう。

例えば、Java的に記述すると、、、
class Japanese {
public int getStringLength() {
  ・・・
return strlength;
 }
 ・・・
}

class TextField {
・・・
}

class JTextField extends TextField, extends Japanese {
・・・・
}

C++ではそのように実装するでしょう。
しかし、Javaにはこのような高度な機能はありません。

そこで、生まれた苦肉の策が、「interfaceとimplements」です。

interface Japanese {
public int getStringLength(); // interfaceは実装を含まない!
                 // すなわち「実装の継承」ができるわけではない。
}

class TextField {
・・・
}

class JTextField extends TextField implements Japanese {
・・・・
public int getStringLength() {
  ・・・
return strlength; //implementsの実装を「各クラスで」実装してやる必要がある。
 }
}


結局のところ、Javaでは、複数のクラスを親クラスには持ち得ないため、継承できなかったクラスは「各クラスで実装してやる必要性」があるのです。


ではどのように使うのが効果的か?

なまえのままです。「代表的なインターフェイス」にたいしてinterfaceを使うのが良いと思います。

例えば、プレイヤー系であれば、ビデオ・コンポ・ウォークマン・などにかかわらず、
interface controlpanel {
public play();
public stop();
public next();
public back();
}
というような基本的インターフェイスを「持っているべき」です。

こうすることで、それぞれのクラス宣言の際に、これらの「インターフェイスを持っているべきであり、実装されるべきである」ということを「強く暗示」することができます。
class videoplayer extends player implements controlpanel {
public play() {・・・}
public stop() {・・・}
public next() {・・・}
public back() {・・・}
}

こうすることで、同様のクラスを作成するユーザーは、
「プレイヤー系は、4つ操作が出来るコントロールパネルをインターフェイスとして持つべきなのだな!?」という暗示を受け取り、自分のクラスでもそれを模倣するでしょう。

class mp3player extends player implements controlpanel {
public play() {・・・}
public stop() {・・・}
public next() {・・・}
public back() {・・・}
}

また、これらのクラスを使用するユーザーも、「implements controlpanel」という
表記を見て、「4つの基本操作は押さえられているのだな!」という基本中の基本動作を抑えることが出来ます。

まとめると、クラスに「こういう特徴もたしてください!」「こういう特徴持ってますよ!」という一種の暗示的警告や方向性を与えることができるわけですね。

バラバラに理解してもしょうがないッス。

まず、
(1)interface と implements
(2)class と extends

が対応しているわけっす。

JavaはC++と違って、比較的言語仕様を「簡単」にしたので「多重継承」という
概念がないです。
多重継承っていうのは、複数のクラスを親クラスにして継承するってことですね。

たとえば、 「TextFieldクラス」と「Japaneseクラス」を多重継承すると、
「JTextFieldクラス」ができるっていうのが自然な考え方でしょう?

まぁ、例えば、日本語クラスであれば...続きを読む

QERROR1062:Duplicate entry.....というエラーが出てしまいました

いつもお世話になります。
データベースからSELECTで抽出したデータを別のテーブルにINSERTするSQLを実行したのですが、
ERROR1062:Duplicate entry.....というエラーが出てしまいました。
お詳しい方がいらっしゃいましたら、アドバイスをいただけませんでしょうか?よろしくお願いいたします。
【実行したSQL】
INSERT INTO tblA (dataA1, dataA2, dataA3, dataA4) SELECT "9001","AA",dataB1,dataB2 FROM tblB WHERE dataB1 = 52

tblAの主キー:dataA1とdataA2
tblBの主キー:dataB1

dataA1とdataA2はtblAの主キーとなっているため、重複してしまうということのようです。tblBの主キーはdataB1であるため、抽出されてくるデータは常に1件なので問題ないと期待していましたが、甘くなかったようです。何か良い方法はないものでしょうか?よろしくお願いいたします。

Aベストアンサー

「ERROR 1062」は、重複データを格納しようとした場合に出力されるエラーです。
既にdataA1='9001'&dataA2='AA'という行が、tblAに格納されているのですよね?

>抽出されてくるデータは常に1件なので問題ないと期待していました

「insert ~ select ~」を実行前に、既に同じデータが格納されているのでは?
あるいはprimary keyの指定が、質問中に記された通りでなく、2件以上検索されているかです。

>何か良い方法はないものでしょうか?

何をするための方法を、聞きたいのかが分かりませんが?

Qapt-get install ****** でinstallしたものをuninstallするには?

御世話になります。
vncserverだけをinstallするつもりが
誤って
apt-get install vncとうってしまいました。
これをuninstallしたいのですが
どのようにすればよろしいでしょうか?

教えて下さい。

Aベストアンサー

# apt-get remove パッケージ名
では、設定ファイルは削除されずに残ります。

完全に削除するときは、
# apt-get --purge remove パッケージ名
です。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Q「いずれか」と「いづれか」どっちが正しい!?

教えて下さいっ!
”どちらか”と言う意味の「いずれか」のかな表記として
「いずれか」と「いづれか」のどちらが正しいのでしょう???

私は「いずれか」だと思うんですが、辞書に「いずれか・いづ--。」と書いてあり、???になってしまいました。
どちらでもいいってことでしょうか?

Aベストアンサー

「いずれか」が正しいです.
「いづれ」は「いずれ」の歴史的かな遣いですので,昔は「いづれ」が使われていましたが,現代では「いずれ」で統一することになっていますので,「いずれ」が正しいです.

Qレッドハットのバージョン確認方法

自分のサーバで使用しているREDHATのバージョン確認はどうすればいいのでしょうか?

more /etc/issue
とやっても英文しか出てきませんでした。

uname -all
でもカーネルのバージョンは出るのですが、REDHATのバージョンは出ませんでした。

Aベストアンサー

> more /etc/issue
> とやっても英文しか出てきませんでした。

その英文にはRedHatのバージョンは書いてなかったのですか?
書いていなかったとしたら、管理者により編集されている可能性
がありますね。

cat /etc/redhat-release

ではいかがでしょう?
やっぱり英文ですけど。

rpm -q redhat-release

でもいいかも


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング