openSUSE:Libzypp URI
libzypp は、様々な種類のメディアに対して統一したアクセス手段 (リソース) を提供します。これらのリソースは URI と呼ばれる識別子で指定します。 libzypp を使用する任意のアプリケーションから、 YaST や zypper が利用しているのと同じアクセス手段を利用することができます。 zypp では基本的に URI をパッケージリポジトリの場所を示すものとして利用していますが、 zypp では URI を RPM ファイルや .repo ファイルの場所を示すものとしても使うことができます。この記事では、対応済みの全ての URI スキームとそれらの使い方について述べています。
この記事はまだ書きかけ(stub)の状態です! この記事には加筆が求められています。もしあなたが加筆できるようならば、openSUSE 記事スタイルガイドに従って加筆をお願いします。また他の加筆が必要な記事の一覧もご参照ください。 |
TODO:
- スキームごとの説明とそれらの動き
- 特定の URI に対するパラメータ
- クロスリンク
- 実際の例
目次
クイックリファレンス
http://download.opensuse.org/distribution/SL-OSS-factory/inst-source dir:/home/jkupec/myrpms dvd:/ nfs:/nfsserver/path/to/repo iso:/?iso=/path/to/openSUSE11-DVD.iso iso:/?iso=CD1.iso&url=nfs:/myserver/dirwithisos
URI の構造
ftp://example.com:8042/over/there?name=ferret#nose === ================ ========== =========== ==== | | | | | スキーム 認証情報とポート パス クエリ ラベル | | === ========================== urn:example:animal:ferret:nose
全ての URI には スキーム 識別子を指定します (たとえば http や file) 。スキームに続けて、上記の例のようにスキーム固有の項目を指定します。様々なアプリケーションでは URI を使いやすいものにするため、たとえば入力すべき項目を表示したり (YaST のリポジトリ管理モジュール) 、省略された項目を自動で推測したり (zypper では、ファイルやディレクトリの指定が行なわれた場合に、 dir のスキームであるものとして扱います) しています。
ZYpp URI
ZYpp で対応している全ての URI には、 alias という問い合わせパラメータを指定することができます。 これはリポジトリの識別子としてアプリケーション側から使用できる予約パラメータです。
HTTP/HTTPS/FTP
これらについては特に説明するまでもないでしょう:
http://server/path/on/server http://user:pass@server/path https://user:pass@server/path?proxy=foo&proxyuser=me&proxypass=pw
ftp://server/relative/path/to/media/dir ftp://server/%2fabsolute/path/to/media/dir
ftp://user:pass@server/path/to/media/dir ftp://user:pass@server/%2f/home/user/path/to/media/dir
URL には問い合わせパラメータを指定することもできます (たとえば上記の "proxy" のように):
パラメータ | 値 | 既定値 | 説明 | 関連する cURL オプション |
---|---|---|---|---|
timeout | 数値 | 60 | 秒単位で、接続タイムアウトを指定します | CURLOPT_CONNECTTIMEOUT |
ssl_verify | true, false, verify_host, verify_peer | true | SSL 証明書の検証を行なうかどうかを指定します | CURLOPT_SSL_VERIFYHOST, CURLOPT_SSL_VERIFYPEER |
ssl_capath | パス名 | /etc/ssl/certs | SSL 証明書のディレクトリを指定します | CURLOPT_CAPATH |
proxy | ホスト名 | (なし) | プロキシサーバを指定します | CURLOPT_PROXY |
proxyport | TCP ポート番号 | 80 | プロキシサーバの TCP ポートを指定します | CURLOPT_PROXY |
proxyuser | ユーザ名 | (なし) | プロキシサーバでの認証用ユーザ名を指定します | CURLOPT_PROXYUSERPWD |
proxypassword | パスワード | ~/.curlrc から値を読み込みます | プロキシサーバでの認証用パスワードを指定します | CURLOPT_PROXYUSERPWD |
CD/DVD
cd:/ cd:/subdir cd:/?devices=/dev/hda,/dev/hdb
dvd:/ dvd:/subdir dvd:/?devices=/dev/hda,/dev/hdb
ローカルファイル
dir:/directory/name file:/directory/name
SMB/CIFS
cifs://servername/share/path/on/the/share" cifs://username:passwd@servername/share/path/on/the/share?mountoptions=ro
smb://servername/share/path/on/the/share" smb://username:passwd@servername/share/path/on/the/share?mountoptions=ro
NFS
nfs://nfs-server/exported/path nfs://nfs-server/exported/path?mountoptions=ro
ハードディスクのボリューム
hd:/?device=/dev/hda1 hd:/subdir?device=/dev/sda1 hd:/subdir?device=/dev/sda1&filesystem=reiserfs
ISO イメージ
iso:/?iso=/path/to/CD1.iso iso:/?iso=CD1.iso&url=dir:/path/to
iso:/?iso=CD1.iso&url=nfs://server/path/to/media iso:/?iso=CD1.iso&url=hd:/?device=/dev/hda iso:/?iso=DVD1.iso&url=hd:/directory/?device=/dev/sda2
iso:/subdir?iso=DVD1.iso&url=nfs://nfs-server/directory&mnt=/nfs/attach/point&filesystem=udf