Manpages

名 称

dpkg-architecture − パ ッ ケ ー ジ 構 築 用 に ア ー キ テ ク チ ャ を 決 定 ・ 設 定 す る

書 式

dpkg-architecture [options] [action] 有 効 な オ プ シ ョ ン : −aDebian-Architecture −tGnu-System-Type −f 有 効 な ア ク シ ョ ン : −l, −qVariable-Name, −s, −u, −c Command

説 明

dpkg-architecture は パ ッ ケ ー ジ 構 築 用 に 、 ビ ル ド ・ ホ ス ト ア ー キ テ ク チ ャ を 決 定 ・ 設 定 す る 機 構 を 提 供 す る 。

概 要

ビ ル ド ア ー キ テ ク チ ャ は 、 常 に dpkg へ の 外 部 呼 び 出 し に よ っ て 決 定 さ れ 、 コ マ ン ド ラ イ ン で は 設 定 で き な い 。

−a−t ま た は 両 方 の オ プ シ ョ ン で 、 ホ ス ト ア ー キ テ ク チ ャ を 指 定 で き る 。 デ フ ォ ル ト で は 、 gcc へ の 外 部 呼 び 出 し で 決 定 さ れ る が 、 CC と gcc の 両 方 が 利 用 で き な い 場 合 、 ビ ル ド ア ー キ テ ク チ ャ と 同 じ に な る 。 −a−t の ど ち ら か で 十 分 だ が 、 他 方 の 値 は 使 用 可 能 な デ フ ォ ル ト に セ ッ ト さ れ る 。 実 際 に は 、 選 択 し た も の が デ フ ォ ル ト と 一 致 し な い 場 合 、 dpkg-architecture が 警 告 す る の で 、 た い て い 1 つ を 指 定 す る だ け の ほ う が よ い 。 デ フ ォ ル ト の ア ク シ ョ ン は −l で 、 1行 ご と 変 数 名 =値 の 形 で 環 境 変 数 を 表 示 す る 。 単 一 の 変 数 の 値 を 表 示 し た い だ け な ら 、 −q を 利 用 し て も よ い 。 −s を 指 定 し た 場 合 、 export コ マ ン ド 形 式 で 出 力 す る 。 こ れ に eval を 用 い て 、 環 境 変 数 の 設 定 (set) に 使 用 で き る 。 −u は 、 全 変 数 を 解 除 (unset) す る コ マ ン ド を 返 す 。 −c は 、 決 定 し た 値 を 全 変 数 に 設 定 し た 環 境 で 、 コ マ ン ド を 実 行 す る 。

−f 強 制 フ ラ グ が 指 定 さ れ た 場 合 を 除 き 、 ス ク リ プ ト で 使 用 さ れ る の と 同 名 の 既 存 の 環 境 変 数 は 、 上 書 き さ れ な い 。 こ れ は dpkg-architecture へ の 呼 び 出 し を 、 他 の ス ク リ プ ト (例 え ば dpkg-buildpackage) に 埋 め 込 ん で も 、 ユ ー ザ が 値 を 上 書 き で き る と い う こ と で あ る 。 −q ク エ リ オ プ シ ョ ン に は 、 −f を 暗 黙 に 指 定 す る 。 そ の た め 、 既 存 の 環 境 設 定 に よ っ て 影 響 さ れ な い 。

用 語

ビ ル ド マ シ ン

(build machine) パ ッ ケ ー ジ の 構 築 を 行 う マ シ ン 。 ホ ス ト マ シ ン
(host machine) 構 築 し た パ ッ ケ ー ジ を 使 用 す る マ シ ン 。
Debian ア ー キ テ ク チ ャ (Debian Architecture)

FTP ア ー カ イ ブ の バ イ ナ リ ツ リ ー で 指 定 す る Debian ア ー キ テ ク チ ャ 文 字 列 。 例 : i386, sparc, hurd-i386.

GNU シ ス テ ム タ イ プ ( GNU System Type)

cpu-system や cpu-vendor-system と い っ た 、 2, 3 パ ー ト か ら 成 る ア ー キ テ ク チ ャ 仕 様 文 字 列 。 例 : i386-linux, sparc-linux, i386-gnu.

dpkg-buildpackage は −a オ プ シ ョ ン を 受 け 付 け 、 そ の ま ま dpkg-architecture に 渡 す 。 そ の 他 の 用 例 :

CC=i386-gnu-gcc dpkg-architecture -c debian/rules build

eval ’dpkg-architecture -u

変 数

dpkg-architecture は 以 下 の 変 数 を 設 定 す る :
DEB_BUILD_ARCH
ビ ル ド マ シ ン の Debian ア ー キ テ ク チ ャ
DEB_BUILD_GNU_TYPE
ビ ル ド マ シ ン の GNU シ ス テ ム タ イ プ
DEB_BUILD_GNU_CPU

DEB_BUILD_GNU_TYPECPU

DEB_BUILD_GNU_SYSTEM

DEB_BUILD_GNU_TYPE の シ ス テ ム 部

DEB_HOST_ARCH ホ ス ト マ シ ン の Debian ア ー キ テ ク チ ャ
DEB_HOST_GNU_TYPE
ホ ス ト マ シ ン の GNU シ ス テ ム タ イ プ
DEB_HOST_GNU_CPU

DEB_HOST_GNU_TYPECPU

DEB_HOST_GNU_SYSTEM

DEB_HOST_GNU_TYPE の シ ス テ ム 部

DEBIAN/RULES

dpkg-architecture で 設 定 し た 環 境 変 数 は 、 debian/rules に make 変 数 (make 文 書 を 参 照 ) と し て 渡 さ れ る 。 必 要 で あ れ ば 、 構 築 プ ロ セ ス で こ の 変 数 を 使 用 で き る し 、 使 用 す る べ き で あ る 。 以 下 、 パ ッ ケ ー ジ で の ク ロ ス コ ン パ イ ル サ ポ ー ト の 改 良 方 法 も 示 す 、 使 用 例 で あ る :

ARCH=’dpkg --print-architecture’ configure $(ARCH)−linux 上 記 に 代 え て

B_ARCH=$(DEB_BUILD_GNU_TYPE) H_ARCH=$(DEB_HOST_GNU_TYPE) configure --build=$(B_ARCH) --host=$(H_ARCH) と す る 。

ARCH=’dpkg --print-architecture’ ifeq ($(ARCH),alpha)
... endif こ の 代 わ り に

ARCH=$(DEB_HOST_ARCH) ifeq ($(ARCH),alpha)
... endif と す る 。 一 般 的 に 、 ア ー キ テ ク チ ャ 情 報 を 取 得 す る た め に は 、 rules フ ァ イ ル で dpkg を 呼 ぶ べ き で は な い (後 述 の 後 方 互 換 性 を 提 供 す る ま で )。 特 に --print-architecture オ プ シ ョ ン は 、 プ ロ セ ッ サ 名 と 等 し く な い Debian ア ー キ テ ク チ ャ が で き て 以 来 、 当 て に で き な い 。

後 方 互 換 性

新 機 構 を 提 供 す る と き に 、 プ ロ グ ラ ム の 旧 バ ー ジ ョ ン と の 互 換 性 を 確 保 す る の は 、 常 に よ い 考 え で あ る 。 dpkg-architecture は 古 い debian/rules フ ァ イ ル に は 影 響 を 及 ぼ さ な い 。 そ の た め 、 新 し い debian/rules フ ァ イ ル で 、 古 い 構 築 ス ク リ プ ト を 使 用 す る 事 を 考 慮 す る だ け で あ る こ と に 注 意 し て ほ し い 。 以 下 は そ の 方 法 で あ る :

DEB_BUILD_ARCH := $(shell dpkg --print-installation-architecture) DEB_BUILD_GNU_CPU := $(patsubst hurd-%,%,$(DEB_BUILD_ARCH)) ifeq ($(filter-out hurd-%,$(DEB_BUILD_ARCH)),)
DEB_BUILD_GNU_SYSTEM := gnu else
DEB_BUILD_GNU_SYSTEM := linux endif DEB_BUILD_GNU_TYPE=$(DEB_BUILD_GNU_CPU)−$(DEB_BUILD_GNU_SYSTEM)

DEB_HOST_ARCH=$(DEB_BUILD_ARCH) DEB_HOST_GNU_CPU=$(DEB_BUILD_GNU_CPU) DEB_HOST_GNU_SYSTEM=$(DEB_BUILD_GNU_SYSTEM) DEB_HOST_GNU_TYPE=$(DEB_BUILD_GNU_TYPE)

debian/rules フ ァ イ ル の 一 番 上 に の 上 記 の 行 の サ ブ セ ッ ト を 置 く こ と 。 dpkg-architecture を 使 用 す る 場 合 は 、 こ の デ フ ォ ル ト 値 が 上 書 き さ れ る 。 フ ル セ ッ ト は 必 要 な い 。 rules フ ァ イ ル で 使 用 す る 値 を 含 む 、 矛 盾 し な い セ ッ ト を 選 ぶ こ と 。 例 え ば 、 ホ ス ト Debian ア ー キ テ ク チ ャ の み 必 要 と す る 場 合 、
’DEB_HOST_ARCH=’dpkg --print-installation-architecture’ で 十 分 で あ る 。 (こ れ は 確 か に ビ ル ド マ シ ン の Debian ア ー キ テ ク チ ャ で あ る 。 し か し 、 ネ イ テ ィ ブ コ ン パ イ ル と の 後 方 互 換 性 を 持 と う と し て い る だ け で あ る こ と を 思 い 出 す こ と )

(例 え ば 、 十 分 な ソ ー ス 依 存 関 係 を と に か く 宣 言 す る 場 合 な ど ) 旧 式 の 構 築 パ ッ ケ ー ジ に は 関 心 が な い か も し れ な い 。 し か し 、 少 な く と も 環 境 変 数 を 設 定 せ ず 、 ’debian/rules build’ を 直 接 呼 ん で パ ッ ケ ー ジ を 構 築 す る と い う 、 従 来 の 方 法 を サ ポ ー ト す る べ き だ 。 そ の た め に は 、 適 切 な デ フ ォ ル ト 値 を 取 得 す る −q オ プ シ ョ ン を 使 用 す る こ と 。

DEB_BUILD_ARCH=’dpkg-architecture −qDEB_BUILD_ARCH’ DEB_BUILD_GNU=’dpkg-architecture −qDEB_BUILD_GNU’ 上 記 等 の 用 法 が 考 え ら れ る 。 こ の よ う に 、 変 数 が 未 宣 言 で な い こ と を 保 証 で き る 。 こ れ が 旧 式 の 構 築 ス ク リ プ ト と の 後 方 互 換 性 を 壊 し 、 そ の た め に ソ ー ス 依 存 関 係 が 実 装 ・ 宣 言 さ れ る の で あ れ ば 、 あ え て そ う す る べ き で あ る 。

関 連 項 目

dpkg-buildpackage dpkg-cross

連 絡

rules フ ァ イ ル で の make 変 数 の 使 い 方 や 、 パ ッ ケ ー ジ の ク ロ ス コ ン パ イ ル サ ポ ー ト に つ い て の 疑 問 は 、 Marcus Brinkmann <brinkmd [AT] debian.org> ま で email を 送 っ て ほ し い 。

翻 訳 者

倉 澤 望 <nabetaro [AT] debian.jp>