# Arch64 FAQ (日本語)

以下のリストはArch Linux 64-bit版(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-bit互換があるかどうか確認してください。AMDの命令セットであるAMD64またはintelのEM64Tは、x86_64バイナリに互換性があります。

## Archの32bitか64bit、どちらを使うべきでしょうか?

もしあなたのプロセッサーがx86_64に対して互換性を持っているならば、Arch64を使うべきです。

## どこでArch64をインストールできますか?

official installation ISO CD を利用してください。

## How complete is the port?

The port is ready for daily use in a desktop or server environment.

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

移植されたレポジトリのプログラム群は殆ど動く事が予想されます。

まれに AUR の古いパッケージは `'i686'` のみリストされていることがありますが、ほとんどの場合 `'x86_64'` を追加することで同様に動かすことが可能です。

## なぜ64bitなのですか?

多くの環境下で(32bitに比べて)早いということ それから Address space layout randomization (ASLR) と Position-independent code (PIC) の組み合わせや NX Bit を組み合わせる事による本質的なセキュリティ恩恵を受けることが出来ます。i686 kernelではPAEが有効なためこれらは利用することが出来ません。もしあなたのコンピューターが4GB以上のRAMを載せて走っているなら、32-bit環境でRAMを割り当てることの出来ないOSより、より多くのメリットがあるはずです。

更にプログラマーたちは、64-bit拡張機能をサポートしたx86よりも32-bit("legacy")を好まない傾向にあります。

これらの理由が32-bit環境を避けるべきという我々のアドバイスですが、カーネルやユーザースペース、ここのプログラムなど、それらをリストにしてすべて書き出す事は出来ません。

さらなる詳細は differences reports を見てください。 32-/64-bitパッケージバージョンの比較を行うことが出来るでしょう。

## バグレポートはどこで行うことが出来ますか?

Archの Flyspray をお使いください。しかしアーキーテクチャーフィールドのx86_64を選んで良いのは、あなたがパッケージの移植に問題があると判断した場合のみです!

## Arch64を使うためにpacmanをどのようにセットアップしたら良いですか?

全てのレポジトリは移植をサポートしています。

## How can I patch existing PKGBUILDs for use with Arch64?

Add the following variable to all ported packages:

    arch=('i686' 'x86_64')

Add small patches directly to the sources and md5sums area but use for complete different sources:

    [ "$CARCH" = "x86_64" ] && source=(${source[@]} 'other source')
    [ "$CARCH" = "x86_64" ] && md5sums=(${md5sums[@]} 'other md5sum')

For any small fix use this in the build area:

    [ "$CARCH" = "x86_64" ] && (patch -Np0 -i ../foo_x86_64.patch)

Or when you need more changes:

    if [ "$CARCH" = "x86_64" ]; then
        configure/patch/sed      # for x86_64
      else configure/patch/sed   # for i686
    fi

## 私はArch64を使うべきではないのでしょうか?

いいえ。ほぼすべてのアプリケーションは64-bit環境をサポートしているか、あるいは移行中であります。

最大の問題はclosed sourceを用いたプログラム、あるいは特定のx86固有のアセンブリが含まれている面倒なプログラム(エミュレータなど)です。

以下のアプリケーションは以前は問題がありましたが、現在は AUR で利用可能な上、うまく動かすことができるでしょう。

- Acrobat Readerは64-bit環境下では利用することが出来ませんが、32-bitバージョンを互換モードで動かすことができます。または他のオープンソースプログラムを使って、読み慣れた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.

## Arch64環境下で32-bitアプリケーションは動かすことは出来ますか?

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

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

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

2011年12月から、[multilib] はwineとSkypeを含んでいます。その上multilib compilerも利用可能です。

- もしくは32-bitなchroot環境を作ることも出来ます(Arch64 Install bundled 32bit system を参照):

Arch64起動後、xを起動し、terminalを開いてください:

    $ 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アプリケーション特有の"訛り"を必要とするかもしれません。 `/etc/rc.local`に配置情報を付与してください:

    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] を使用するために、 `/etc/pacman.conf` を編集し、以下のコメントアウトを無効化してください。

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

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

Note:

- もしシステムに `base-devel` がグループインストールされている場合、使用者は以下のように [extra] を [mutlilib] に置換してください。
- gcc-multilib は32-/64-bitコードをビルドすることが出来ます。慎重に以下のように置換してください。 必要なパッケージが 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 --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
    CXXFLAGS="${CFLAGS}"

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

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

### chrootの場合

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

    "mount --bind /path-to-your-stored-sources /path-to-your-chroot/path-to-your-stored-sources"

to share sources from host to chroot system for pkg building used in `/etc/makepkg.conf`.

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

できません。ですがこれは、厳格に言えば多少または全てのパッケージを新しいアーキーテクチャー向けに再インストールするということを意味します。現在インストールされたあたなのシステム内で、新規インストールをせずにこれを行うことが可能です。フォーラムで作成されている スレッド の概要に従えば、どの設定ファイルや個人データを失わずに移行することができます。ノート:大容量外部ハードドライブが転送用に必要です。

もしくは、Arch64がインストールされたCDで起動し、ディスクをマウントして、あなたが残しておきたいデータ(例えば`/home` や `/etc` など)をバックアップして、インストールします。 詳しくは Migrating Between Architectures Without Reinstallingを読んでください。

Category:

- Arch64 (日本語)