コンテンツにスキップ

「Arch64 FAQ」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
文字列「[[zh-cn:」を「[[zh-hans:」に置換
FAQ#64ビットへの転送ページ
 
1行目: 1行目:
#redirect[[FAQ#64ビット]]
[[Category:Arch について]]
[[ar:64-bit FAQ]]
[[cs:64-bit FAQ]]
[[el:64-bit FAQ]]
[[en:64-bit FAQ]]
[[es:64-bit FAQ]]
[[it:64-bit FAQ]]
[[ru:64-bit FAQ]]
[[sr:64-bit FAQ]]
[[uk:64-bit FAQ]]
[[zh-hans:64-bit FAQ]]
以下は Arch Linux の 64ビット版 (Arch64) に関してよく寄せられる質問のリストです。

== 私のプロセッサが x86_64 に対応しているかどうかを知る方法は? ==
=== Linux ユーザー ===
以下のコマンドを実行してください:
$ less /proc/cpuinfo

{{ic|flags}} エントリーを探してください。 {{ic|lm}} フラグがあったら、あなたのプロセッサーは x86_64 対応です。

もしくは以下のコマンドを実行してみることも出来ます:
$ grep -q "^flags.*\blm\b" /proc/cpuinfo && echo "x86_64" || echo "not x86_64"

=== Windows ユーザー ===
フリーウェアである [http://www.cpuid.com/cpuz.php CPU-Z] を使って、64ビット互換があるかどうか確認できます。AMD の命令セットである AMD64 または Intel の命令セット EM64T は x86_64 のバイナリと互換性があります。

== 32ビットと64ビット、どちらの Arch を使うべきでしょうか? ==
あなたのプロセッサーが [[wikipedia:ja:x64|x86_64]] に対応しているなら、Arch64 を使うべきです。

== Arch64 をインストールする方法は? ==
[https://www.archlinux.org/download/ 公式のインストール ISO] でインストールできます。

== 移植の完成度は? ==
デスクトップやサーバー環境として日常的に使用するのに十分な移植がされています。

== 32ビット版の Arch を使っているのですが、今まで私が使っていたプログラムは動くでしょうか? ==
リポジトリが移植されており、ほとんど全て問題なく動作するでしょう。

稀に、[[Arch User Repository|AUR]] の古いパッケージで {{ic|'i686'}} しか対応していないことがありますが、普通は64ビットでも動作します。{{ic|'x86_64'}} を追加して試して下さい。

== 64ビットにする理由は? ==
多くの状況下で (32ビットに比べて) 高速であり、通常の i686 カーネルでは PAE が無効化されているために利用できない[[wikipedia:ja:アドレス空間配置のランダム化|アドレス空間配置のランダム化 (ASLR)]] や [[wikipedia:ja:位置独立コード|位置独立コード (PIC)]]、[[wikipedia:ja:NXビット|NX ビット]]を使用することによりセキュリティが向上することが挙げられます。もしコンピューターに 4GB 以上のメモリが載っている場合、32ビット OS では利用できない分のメモリも使用することができるので、ぜひ64ビットを使用するべきでしょう。

更に、64ビットの拡張をサポートしている新しい x86 CPU に対して、レガシーな32ビットの CPU をプログラマーがサポートしなくなってきているというのもあります。

以上の理由が32ビット環境を避けるべきという我々のアドバイスですが、カーネルやユーザースペース、個々のプログラムなど、64ビットの方が優れているものは他にもたくさんあり、全てをここに書き出す事は出来ません。

[https://www.archlinux.org/packages/differences/ 差異のレポート]も見てください。32/64ビットのパッケージバージョンの比較を行うことが出来ます。

== バグレポートはどこに送ればいいですか? ==
Arch の [https://bugs.archlinux.org/ Flyspray] を使って下さい。Architecture フィールドで x86_64 を選ぶのは、移植関連に問題があると判断した場合だけにしてください。

== pacman で設定するべきリポジトリはどれですか? ==
全てのレポジトリは移植をサポートしています。

== 既存の PKGBUILD を Arch64 で使用するためにパッチをあてる方法は? ==
以下の変数を移植されたパッケージに追加してください:
arch=('i686' 'x86_64')
小さなパッチは直接 sources と md5sums に追加します:
[ "$CARCH" = "x86_64" ] && source=(${source[@]} 'other source')
[ "$CARCH" = "x86_64" ] && md5sums=(${md5sums[@]} 'other md5sum')
小さな修正を施したいときは build に以下を追加:
[ "$CARCH" = "x86_64" ] && (patch -Np0 -i ../foo_x86_64.patch)
もしくは多くの変更が必要な場合:
if [ "$CARCH" = "x86_64" ]; then
configure/patch/sed # for x86_64
else configure/patch/sed # for i686
fi

== Arch64 で使えなくなるものはありますか? ==
いいえ。現在では、ほとんど全てのアプリケーションが64ビットをサポートしているか、または64ビット対応への作業中です。

最大の問題は'''クローズドソース'''または x86 固有のアセンブリを含んだパッケージであり、64ビットに移植するのに厄介な問題を抱えています (特にエミュレータ)。

以前はこれらのアプリケーションが問題となっていましたが、今では [[Arch User Repository|AUR]] から利用できるようになり、問題なく動作します:
* Acrobat Reader は64ビット版が存在しませんが、互換モードで32ビット版を実行できます。また、PDF ファイルを読むことができるオープンソースのアプリケーションは他にも多数存在します。

あらゆるものが完全に動作します。x86_64 でコンパイルできるのに Arch32 に移植パッケージが存在しないときは (他の64ビットのディストリビューションでネイティブのパッケージを見つけるということも考えられます)、開発者に連絡するかフォーラムで新しいパッケージをリクエストしてください。

== Arch64 環境下で32ビットのアプリケーションは動かすことは出来ますか? ==
はい。動かすことが出来ます。

* {{ic|1=lib32-*}} を [multilib] リポジトリからインストールしてください。リポジトリを使用するために {{ic|/etc/pacman.conf}} に以下の設定を追加してください:
[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

現時点で (2011年11月)、[multilib] には [[Wine]] と [[Skype]] が含まれています。さらに、multilib コンパイラも使えます。

32ビットの chroot を作成する別の方法は[[64ビット環境に32ビット環境をインストール]]を参照してください。

== Arch64 環境下で i686 用の32ビットアプリケーションを作成することはできますか? ==
はい、できます。以下の2つの方法があります:
* 関連するパッケージの [[Multilib]] 版をインストールする
* [[64ビット環境に32ビット環境をインストール|i686 chroot]]

=== [[Multilib]] リポジトリ ===

[multilib] を使用するには、{{ic|/etc/pacman.conf}} を編集し、以下のコメントアウトを無効化してください:

[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

{{ic|pacman -Syu}} であなたのシステムをアップグレードします。その後 {{Pkg|gcc-multilib}} パッケージをインストールしてください。

{{Note|1=もしシステムに {{ic|base-devel}} グループがインストールされている場合、下にあるように [extra] バージョンを [multilib] バージョンに置換してください。{{Pkg|gcc-multilib}} は32/64ビットのコードをビルドすることが出来ます。{{ic|multilib-devel}} をインストールすることで安全にパッケージを置き換えられます。ただし {{ic|base-devel}} は必要とする他のパッケージがあるので削除できません。詳しくは https://bbs.archlinux.org/viewtopic.php?id=102828 を見て下さい。
}}

{{hc|# pacman -S gcc-multilib|2=
resolving dependencies...
warning: dependency cycle detected:
warning: lib32-gcc-libs will be installed before its gcc-libs-multilib dependency
looking for inter-conflicts...
:: gcc-libs-multilib and gcc-libs are in conflict. Remove gcc-libs? [y/N] y
:: binutils-multilib and binutils are in conflict. Remove binutils? [y/N] y
:: gcc-multilib and gcc are in conflict. Remove gcc? [y/N] y
:: libtool-multilib and libtool are in conflict. Remove libtool? [y/N] y

Remove (4): gcc-libs-4.6.1-1 binutils-2.21.1-1 gcc-4.6.1-1 libtool-2.4-4

Total Removed Size: 87.65 MB

Targets (7): lib32-glibc-2.14-4 lib32-gcc-libs-4.6.1-1 gcc-libs-multilib-4.6.1-1 binutils-multilib-2.21.1-1
gcc-multilib-4.6.1-1 lib32-libtool-2.4-2 libtool-multilib-2.4-2

Total Download Size: 25.04 MB
Total Installed Size: 108.27 MB

Proceed with installation? [Y/n]
}}

x86_64 上で i686 パッケージをコンパイルするには以下のような記述を別の設定ファイル (例えば {{ic|~/.makepkg.i686.conf}}) に追加するだけです:
CARCH="i686"
CHOST="i686-pc-linux-gnu"
CFLAGS="-m32 -march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-m32 -Wl,-O1,--sort-common,--as-needed,-z,relro"

そして以下のコマンドを実行します:
$ linux32 makepkg -src --config ~/.makepkg.i686.conf

=== chroot ===
[[64ビット環境に32ビット環境をインストール]]を見て下さい。

== 再インストールせずに i686 環境から x86_64 環境にアップグレード出来ますか? ==
できません。厳格に言えば、環境の移行とは、全てのパッケージを新しいアーキテクチャ向けに再インストールするということを意味します。ただし、新規インストールをすることなく、現在インストールされているシステムから、環境を移行することは可能です。[https://bbs.archlinux.org/viewtopic.php?id=64485 この]フォーラムスレッドの手順に従えば、設定やデータを失うことなく、32ビットから64ビットに移行できます。移行には外付けのハードドライブを使用するので注意してください。

もしくは、Arch64 インストール CD でシステムを起動し、ディスクをマウントして、32ビットバイナリ以外の、残しておきたいデータ (例えば {{ic|/home}} や {{ic|/etc}} など) をバックアップして、インストールします。

詳しくは[[再インストールせずにアーキテクチャを移行]]を読んでください。

2017年11月29日 (水) 21:44時点における最新版

転送先: