Difference between revisions of "Arch64 FAQ (日本語)"

From ArchWiki
Jump to: navigation, search
(synchronized interlanguage links with the other wikis)
Line 10: Line 10:
 
[[uk:Arch64 FAQ]]
 
[[uk:Arch64 FAQ]]
 
[[zh-CN:Arch64 FAQ]]
 
[[zh-CN:Arch64 FAQ]]
以下のリストはArch Linux 64-bit版(Arch64)でよく寄せられる質問のリストです。
+
以下は Arch Linux の 64ビット版 (Arch64) に関してよく寄せられる質問のリストです。
  
== 私のプロセッサーがx86_64と互換性があるかどうかをどのようにして知ることができますか? ==
+
== 私のプロセッサが x86_64 に対応しているかどうかを知る方法は? ==
 
=== Linux ユーザー ===
 
=== Linux ユーザー ===
 
以下のコマンドを実行してください:
 
以下のコマンドを実行してください:
 
  $ less /proc/cpuinfo
 
  $ less /proc/cpuinfo
  
{{ic|flags}} エントリーを探してください。 {{ic|lm}} フラッグが見つかったならば、あなたのプロセッサーはx86_64と互換性があります。
+
{{ic|flags}} エントリーを探してください。 {{ic|lm}} フラグがあったら、あなたのプロセッサーは x86_64 対応です。
  
もしくは以下のコマンドを実行してみることが出来ます:
+
もしくは以下のコマンドを実行してみることも出来ます:
 
  $ grep -q "^flags.*\blm\b" /proc/cpuinfo && echo "x86_64" || echo "not x86_64"
 
  $ grep -q "^flags.*\blm\b" /proc/cpuinfo && echo "x86_64" || echo "not x86_64"
  
 
=== Windows ユーザー ===
 
=== Windows ユーザー ===
フリーウェアである [http://www.cpuid.com/cpuz.php CPU-Z] を使って、64-bit互換があるかどうか確認してください。AMDの命令セットであるAMD64またはintelのEM64Tは、x86_64バイナリに互換性があります。
+
フリーウェアである [http://www.cpuid.com/cpuz.php CPU-Z] を使って、64ビット互換があるかどうか確認できます。AMD の命令セットである AMD64 または Intel の命令セット EM64T は x86_64 のバイナリと互換性があります。
  
== Archの32bitか64bit、どちらを使うべきでしょうか? ==
+
== 32ビットと64ビット、どちらの Arch を使うべきでしょうか? ==
もしあなたのプロセッサーが[[wikipedia:X86-64|x86_64]]に対して互換性を持っているならば、Arch64を使うべきです。
+
あなたのプロセッサーが [[wikipedia:ja:x64|x86_64]] に対応しているなら、Arch64 を使うべきです。
  
== どこでArch64をインストールできますか? ==
+
== Arch64 をインストールする方法は? ==
[https://www.archlinux.org/download/ official installation ISO CD] を利用してください。
+
[https://www.archlinux.org/download/ 公式のインストール ISO] でインストールできます。
  
== How complete is the port? ==
+
== 移植の完成度は? ==
The port is ready for daily use in a desktop or server environment.
+
デスクトップやサーバー環境として日常的に使用するのに十分な移植がされています。
  
== 32-bit Archを使っているのですが、今まで私が使っていたプログラムは動くでしょうか? ==
+
== 32ビット版の Arch を使っているのですが、今まで私が使っていたプログラムは動くでしょうか? ==
移植されたレポジトリのプログラム群は殆ど動く事が予想されます。
+
リポジトリが移植されており、ほとんど全て問題なく動作するでしょう。
  
まれに [[Arch User Repository (日本語)|AUR]] の古いパッケージは {{ic|'i686'}} のみリストされていることがありますが、ほとんどの場合 {{ic|'x86_64'}} を追加することで同様に動かすことが可能です。
+
稀に、[[Arch User Repository (日本語)|AUR]] の古いパッケージで {{ic|'i686'}} しか対応していないことがありますが、普通は64ビットでも動作します。{{ic|'x86_64'}} を追加して試して下さい。
  
== なぜ64bitなのですか? ==
+
== 64ビットにする理由は? ==
多くの環境下で(32bitに比べて)早いということ それから [[wikipedia:Address space layout randomization|Address space layout randomization (ASLR)]] [[wikipedia:Position-independent code|Position-independent code (PIC)]] の組み合わせや [[wikipedia:NX Bit|NX Bit]] を組み合わせる事による本質的なセキュリティ恩恵を受けることが出来ます。i686 kernelではPAEが有効なためこれらは利用することが出来ません。もしあなたのコンピューターが4GB以上のRAMを載せて走っているなら、32-bit環境でRAMを割り当てることの出来ないOSより、より多くのメリットがあるはずです。
+
多くの状況下で (32ビットに比べて) 高速であり、通常の i686 カーネルでは PAE が無効化されているために利用できない[[wikipedia:ja:アドレス空間配置のランダム化|アドレス空間配置のランダム化 (ASLR)]] [[wikipedia:ja:位置独立コード|位置独立コード (PIC)]][[wikipedia:ja:NXビット|NX ビット]]を使用することによりセキュリティが向上することが挙げられます。もしコンピューターに 4GB 以上のメモリが載っている場合、32ビット OS では利用できない分のメモリも使用することができるので、ぜひ64ビットを使用するべきでしょう。
  
更にプログラマーたちは、64-bit拡張機能をサポートしたx86よりも32-bit("legacy")を好まない傾向にあります。
+
更に、64ビットの拡張をサポートしている新しい x86 CPU に対して、レガシーな32ビットの CPU をプログラマーがサポートしなくなってきているというのもあります。
  
これらの理由が32-bit環境を避けるべきという我々のアドバイスですが、カーネルやユーザースペース、ここのプログラムなど、それらをリストにしてすべて書き出す事は出来ません。
+
以上の理由が32ビット環境を避けるべきという我々のアドバイスですが、カーネルやユーザースペース、個々のプログラムなど、64ビットの方が優れているものは他にもたくさんあり、全てをここに書き出す事は出来ません。
  
さらなる詳細は [https://www.archlinux.org/packages/differences/ differences reports] を見てください。 32-/64-bitパッケージバージョンの比較を行うことが出来るでしょう。
+
[https://www.archlinux.org/packages/differences/ 差異のレポート]も見てください。32/64ビットのパッケージバージョンの比較を行うことが出来ます。
  
== バグレポートはどこで行うことが出来ますか? ==
+
== バグレポートはどこに送ればいいですか? ==
Archの [https://bugs.archlinux.org/ Flyspray] をお使いください。しかしアーキーテクチャーフィールドのx86_64を選んで良いのは、あなたがパッケージの移植に問題があると判断した場合のみです!
+
Arch の [https://bugs.archlinux.org/ Flyspray] を使って下さい。Architecture フィールドで x86_64 を選ぶのは、移植関連に問題があると判断した場合だけにしてください。
  
== Arch64を使うためにpacmanをどのようにセットアップしたら良いですか? ==
+
== pacman で設定するべきリポジトリはどれですか? ==
 
全てのレポジトリは移植をサポートしています。
 
全てのレポジトリは移植をサポートしています。
  
== How can I patch existing PKGBUILDs for use with Arch64? ==
+
== 既存の PKGBUILD を Arch64 で使用するためにパッチをあてる方法は? ==
Add the following variable to all ported packages:
+
以下の変数を移植されたパッケージに追加してください:
  arch=('i686' 'x86_64')  
+
  arch=('i686' 'x86_64')
Add small patches directly to the sources and md5sums area but use for complete different sources:
+
小さなパッチは直接 sources md5sums に追加します:
 
  [ "$CARCH" = "x86_64" ] && source=(${source[@]} 'other source')
 
  [ "$CARCH" = "x86_64" ] && source=(${source[@]} 'other source')
 
  [ "$CARCH" = "x86_64" ] && md5sums=(${md5sums[@]} 'other md5sum')
 
  [ "$CARCH" = "x86_64" ] && md5sums=(${md5sums[@]} 'other md5sum')
For any small fix use this in the build area:
+
小さな修正を施したいときは build に以下を追加:
 
  [ "$CARCH" = "x86_64" ] && (patch -Np0 -i ../foo_x86_64.patch)
 
  [ "$CARCH" = "x86_64" ] && (patch -Np0 -i ../foo_x86_64.patch)
Or when you need more changes:
+
もしくは多くの変更が必要な場合:
 
  if [ "$CARCH" = "x86_64" ]; then
 
  if [ "$CARCH" = "x86_64" ]; then
 
     configure/patch/sed      # for x86_64
 
     configure/patch/sed      # for x86_64
Line 68: Line 68:
 
  fi
 
  fi
  
== 私はArch64を使うべきではないのでしょうか? ==
+
== Arch64 で使えなくなるものはありますか? ==
いいえ。ほぼすべてのアプリケーションは64-bit環境をサポートしているか、あるいは移行中であります。
+
いいえ。現在では、ほとんど全てのアプリケーションが64ビットをサポートしているか、または64ビット対応への作業中です。
  
最大の問題は'''closed source'''を用いたプログラム、あるいは特定のx86固有のアセンブリが含まれている面倒なプログラム(エミュレータなど)です。
+
最大の問題は'''クローズドソース'''または x86 固有のアセンブリを含んだパッケージであり、64ビットに移植するのに厄介な問題を抱えています (特にエミュレータ)
  
以下のアプリケーションは以前は問題がありましたが、現在は  [[Arch User Repository (日本語)|AUR]] で利用可能な上、うまく動かすことができるでしょう。
+
以前はこれらのアプリケーションが問題となっていましたが、今では [[Arch User Repository (日本語)|AUR]] から利用できるようになり、問題なく動作します:
* Acrobat Readerは64-bit環境下では利用することが出来ませんが、32-bitバージョンを互換モードで動かすことができます。または他のオープンソースプログラムを使って、読み慣れたPDFファイルを開くことが出来ます。
+
* Acrobat Reader は64ビット版が存在しませんが、互換モードで32ビット版を実行できます。また、PDF ファイルを読むことができるオープンソースのアプリケーションは他にも多数存在します。
  
Everything else should work perfectly fine. If you miss any Arch32 package in our port and you know that it will compile on x86_64 (perhaps you have found it as native packages in another 64-bit distribution), just contact the developers or request a new package in the forums.
+
あらゆるものが完全に動作します。x86_64 でコンパイルできるのに Arch32 に移植パッケージが存在しないときは (他の64ビットのディストリビューションでネイティブのパッケージを見つけるということも考えられます)、開発者に連絡するかフォーラムで新しいパッケージをリクエストしてください。
  
== Arch64環境下で32-bitアプリケーションは動かすことは出来ますか? ==
+
== Arch64 環境下で32ビットのアプリケーションは動かすことは出来ますか? ==
 
はい。動かすことが出来ます。
 
はい。動かすことが出来ます。
  
* {{ic|1=lib32-*}} を [multilib] レポジトリからインストールしてください。 レポジトリを使用するために {{ic|/etc/pacman.conf}} に以下の設定を追加してください:
+
* {{ic|1=lib32-*}} を [multilib] リポジトリからインストールしてください。リポジトリを使用するために {{ic|/etc/pacman.conf}} に以下の設定を追加してください:
 
   
 
   
 
  [multilib]
 
  [multilib]
Line 87: Line 87:
 
  Include = /etc/pacman.d/mirrorlist
 
  Include = /etc/pacman.d/mirrorlist
  
2011年12月から、[multilib] はwineとSkypeを含んでいます。その上multilib compilerも利用可能です。
+
現時点で (2011年11月)、[multilib] には [[Wine (日本語)|Wine]] と [[Skype (日本語)|Skype]] が含まれています。さらに、multilib コンパイラも使えます。
  
* もしくは32-bitなchroot環境を作ることも出来ます([[Arch64 Install bundled 32bit system]] を参照):
+
32ビットの chroot を作成する別の方法は [[Install bundled 32-bit system in Arch64]] を参照してください。
  
 +
== Arch64 環境下で i686 用の32ビットアプリケーションを作成することはできますか? ==
 +
はい、できます。以下の2つの方法があります:
 +
* 関連するパッケージの [[Multilib (日本語)|Multilib]] 版をインストールする
 +
* [[Install bundled 32-bit system in Arch64|i686 chroot]]
  
Arch64起動後、xを起動し、terminalを開いてください:
+
=== [[Multilib (日本語)|Multilib]] リポジトリ ===
$ xhost +local:
 
$ su
 
# mount /dev/sda1 /mnt/arch32
 
# mount --bind /proc /mnt/arch32/proc
 
# chroot /mnt/arch32
 
# su your32bitusername
 
$ /usr/bin/command-you want # or eg: /opt/mozilla/bin/firefox
 
  
いくつかの32-bitアプリケーション(OpenOfficeなど)は32-bitアプリケーション特有の"訛り"を必要とするかもしれません。 {{ic|/etc/rc.local}}に配置情報を付与してください:
+
[multilib] を使用するには、{{ic|/etc/pacman.conf}} を編集し、以下のコメントアウトを無効化してください:
mount --bind /dev /mnt/arch32/dev
 
mount --bind /dev/pts /mnt/arch32/dev/pts
 
mount --bind /dev/shm /mnt/arch32/dev/shm
 
mount --bind /proc /mnt/arch32/proc
 
mount --bind /proc/bus/usb /mnt/arch32/proc/bus/usb
 
mount --bind /sys /mnt/arch32/sys
 
mount --bind /tmp /mnt/arch32/tmp
 
#comment the following line if you do not use the same home folder
 
mount --bind /home /mnt/arch32/home
 
さらにterminalでこのように入力してください:
 
$ xhost +localhost
 
$ sudo chroot /mnt/arch32 su your32bitusername /opt/openoffice/program/soffice
 
 
 
== Arch64環境下でi686用の32-bitアプリケーションを作成することはできますか? ==
 
はい、できます。以下のどちらかを選んでください。
 
* multilib版の関連するパッケージを [multilib] レポジトリからインストールする
 
* i686をchrootする
 
 
 
=== [[Multilib]] レポジトリの場合 ===
 
 
 
[multilib] を使用するために、 {{ic|/etc/pacman.conf}} を編集し、以下のコメントアウトを無効化してください。
 
  
 
  [multilib]
 
  [multilib]
Line 128: Line 104:
 
  Include = /etc/pacman.d/mirrorlist
 
  Include = /etc/pacman.d/mirrorlist
  
{{ic|pacman -Syu}} をしてあなたのシステムをアップグレードします。その後 {{Pkg|gcc-multilib}} パッケージをインストールしてください。
+
{{ic|pacman -Syu}} であなたのシステムをアップグレードします。その後 {{Pkg|gcc-multilib}} パッケージをインストールしてください。
  
{{Note|
+
{{Note|1=もしシステムに {{ic|base-devel}} グループがインストールされている場合、下にあるように [extra] バージョンを [mutlilib] バージョンに置換してください。{{Pkg|gcc-multilib}} は32/64ビットのコードをビルドすることが出来ます。{{ic|multilib-devel}} をインストールすることで安全にパッケージを置き換えられます。ただし {{ic|base-devel}} は必要とする他のパッケージがあるので削除できません。詳しくは https://bbs.archlinux.org/viewtopic.php?id=102828 を見て下さい。
*もしシステムに {{ic|base-devel}} がグループインストールされている場合、使用者は以下のように [extra] [mutlilib] に置換してください。
 
* {{Pkg|gcc-multilib}} は32-/64-bitコードをビルドすることが出来ます。慎重に以下のように置換してください。 必要なパッケージが develに依存している場合など、詳しくは  <nowiki>https://bbs.archlinux.org/viewtopic.php?id=102828</nowiki> を見てください。
 
 
}}
 
}}
  
Line 158: Line 132:
 
}}
 
}}
  
x86_64上でi686パッケージを作成します。以下のような簡単な記述を別のファイル(例えば {{ic|~/.makepkg.i686.conf}})などにしてください:
+
x86_64 上で i686 パッケージをコンパイルするには以下のような記述を別の設定ファイル (例えば {{ic|~/.makepkg.i686.conf}}) に追加するだけです:
 
  CARCH="i686"
 
  CARCH="i686"
 
  CHOST="i686-pc-linux-gnu"
 
  CHOST="i686-pc-linux-gnu"
  CFLAGS="-m32 -march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
+
  CFLAGS="-m32 -march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
 
  CXXFLAGS="${CFLAGS}"
 
  CXXFLAGS="${CFLAGS}"
  
Line 167: Line 141:
 
  $ linux32 makepkg -src --config ~/.makepkg.i686.conf
 
  $ linux32 makepkg -src --config ~/.makepkg.i686.conf
  
=== chrootの場合 ===
+
=== chroot ===
{{out of date|This sections mentions the "linux32" package which does not exist.}}
+
[[Install bundled 32-bit system in Arch64]] を見て下さい。
To use an i686 chroot (installation with i686 ISO "quickinstall" is recommended for the quick way to install it inside Arch64 or see [[Arch64 Install bundled 32bit system]]), install "linux32" wrapper pkg from current to make the chroot behave like a real i686 system. Then use this script to login into the chroot environment as root:
 
 
 
#!/bin/bash
 
mount --bind /dev /path-to-your-chroot/dev
 
mount --bind /dev/pts /path-to-your-chroot/dev/pts
 
mount --bind /dev/shm /path-to-your-chroot/dev/shm
 
mount -t proc none /path-to-your-chroot/proc
 
mount -t sysfs none /path-to-your-chroot/sys
 
linux32 chroot /path-to-your-chroot
 
  
If you keep the sources on the x86_64 host system, you can add
+
== 再インストールせずに i686 環境から x86_64 環境にアップグレード出来ますか? ==
"mount --bind /path-to-your-stored-sources /path-to-your-chroot/path-to-your-stored-sources"
+
できません。厳格に言えば、環境の移行とは、全てのパッケージを新しいアーキテクチャ向けに再インストールするということを意味します。ただし、新規インストールをすることなく、現在インストールされているシステムから、環境を移行することは可能です。[https://bbs.archlinux.org/viewtopic.php?id=64485 この]フォーラムスレッドの手順に従えば、設定やデータを失うことなく、32ビットから64ビットに移行できます。移行には外付けのハードドライブを使用するので注意してください。
to share sources from host to chroot system for pkg building used in {{ic|/etc/makepkg.conf}}.
 
  
== 再インストールせずにi686環境からx86_64環境にアップグレード/スイッチ出来ますか? ==
+
もしくは、Arch64 インストール CD でシステムを起動し、ディスクをマウントして、32ビットバイナリ以外の、残しておきたいデータ (例えば {{ic|/home}} や {{ic|/etc}} など) をバックアップして、インストールします。
できません。ですがこれは、厳格に言えば多少または全てのパッケージを新しいアーキーテクチャー向けに再インストールするということを意味します。現在インストールされたあたなのシステム内で、新規インストールをせずにこれを行うことが可能です。フォーラムで作成されている [https://bbs.archlinux.org/viewtopic.php?id=64485 スレッド] の概要に従えば、どの設定ファイルや個人データを失わずに移行することができます。ノート:大容量外部ハードドライブが転送用に必要です。
 
  
もしくは、Arch64がインストールされたCDで起動し、ディスクをマウントして、あなたが残しておきたいデータ(例えば{{ic|/home}} や {{ic|/etc}} など)をバックアップして、インストールします。
+
詳しくは [[Migrating Between Architectures Without Reinstalling]] を読んでください。
詳しくは [[Migrating Between Architectures Without Reinstalling]]を読んでください。
 

Revision as of 15:37, 25 November 2014

zh-CN:Arch64 FAQ 以下は Arch Linux の 64ビット版 (Arch64) に関してよく寄せられる質問のリストです。

私のプロセッサが x86_64 に対応しているかどうかを知る方法は?

Linux ユーザー

以下のコマンドを実行してください:

$ less /proc/cpuinfo

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

もしくは以下のコマンドを実行してみることも出来ます:

$ grep -q "^flags.*\blm\b" /proc/cpuinfo && echo "x86_64" || echo "not x86_64"

Windows ユーザー

フリーウェアである CPU-Z を使って、64ビット互換があるかどうか確認できます。AMD の命令セットである AMD64 または Intel の命令セット EM64T は x86_64 のバイナリと互換性があります。

32ビットと64ビット、どちらの Arch を使うべきでしょうか?

あなたのプロセッサーが x86_64 に対応しているなら、Arch64 を使うべきです。

Arch64 をインストールする方法は?

公式のインストール ISO でインストールできます。

移植の完成度は?

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

32ビット版の Arch を使っているのですが、今まで私が使っていたプログラムは動くでしょうか?

リポジトリが移植されており、ほとんど全て問題なく動作するでしょう。

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

64ビットにする理由は?

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

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

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

差異のレポートも見てください。32/64ビットのパッケージバージョンの比較を行うことが出来ます。

バグレポートはどこに送ればいいですか?

Arch の 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ビットに移植するのに厄介な問題を抱えています (特にエミュレータ)。

以前はこれらのアプリケーションが問題となっていましたが、今では AUR から利用できるようになり、問題なく動作します:

  • Acrobat Reader は64ビット版が存在しませんが、互換モードで32ビット版を実行できます。また、PDF ファイルを読むことができるオープンソースのアプリケーションは他にも多数存在します。

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

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

はい。動かすことが出来ます。

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

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

32ビットの chroot を作成する別の方法は Install bundled 32-bit system in Arch64 を参照してください。

Arch64 環境下で i686 用の32ビットアプリケーションを作成することはできますか?

はい、できます。以下の2つの方法があります:

Multilib リポジトリ

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

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

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

Note: もしシステムに base-devel グループがインストールされている場合、下にあるように [extra] バージョンを [mutlilib] バージョンに置換してください。gcc-multilib は32/64ビットのコードをビルドすることが出来ます。multilib-devel をインストールすることで安全にパッケージを置き換えられます。ただし base-devel は必要とする他のパッケージがあるので削除できません。詳しくは https://bbs.archlinux.org/viewtopic.php?id=102828 を見て下さい。
# pacman -S gcc-multilib
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 パッケージをコンパイルするには以下のような記述を別の設定ファイル (例えば ~/.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}"

そして以下のコマンドを実行します:

$ linux32 makepkg -src --config ~/.makepkg.i686.conf

chroot

Install bundled 32-bit system in Arch64 を見て下さい。

再インストールせずに i686 環境から x86_64 環境にアップグレード出来ますか?

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

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

詳しくは Migrating Between Architectures Without Reinstalling を読んでください。