「インストール - GLIBC」の版間の差分

ナビゲーションに移動 検索に移動
111行目: 111行目:
                         --enable-multi-arch                  \  # 32ビットを有効にする場合
                         --enable-multi-arch                  \  # 32ビットを有効にする場合
                         --enable-stack-protector=strong      \
                         --enable-stack-protector=strong      \
                        --enable-obsolete-rpc                \
                        --enable-obsolete-nsl                \
                         --enable-add-ons=libidn              \
                         --enable-add-ons=libidn              \
                         --without-selinux                    \        # SELinuxが不要な場合
                         --without-selinux                    \        # SELinuxが不要な場合
121行目: 123行目:
  make localedata/install-others
  make localedata/install-others
<br>
<br>
configureスクリプトで使用可能なオプションを、以下に示す。<br>
* --enable-multi-archオプション
*: マルチアーキテクチャサポートを有効にする。
*: 異なるCPUアーキテクチャ (例:x86_64, i386, Aarch64等) 向けのライブラリを同一システム上で共存させることができる。
*: <br>
*: 動的リンカが実行時に最適なライブラリバージョンを選択できるようになる。
*: クロスコンパイルや異なるアーキテクチャのバイナリの実行をサポートする。
*: ロケールや文字セットのサポートを含む、アーキテクチャ固有の最適化を可能にする。
*: <br>
* --enable-stack-protector=strongオプション
*: 強力なスタック保護機能を有効にする。
*: <br>
*: バッファオーバーフロー攻撃からの保護を強化する。
*: 関数の開始時にカナリア値 (ランダムな値) をスタックに配置して、関数終了時にこの値を確認する。
*: カナリア値が変更されていた場合、スタックの破壊が検出され、プログラムは即座に終了する。
*: strong値は、より多くの関数に対してこの保護を適用する。(サイズの小さな配列を持つ関数も含む)
*: <br>
* --enable-obsolete-rpcオプション
*: 廃止予定のRPC(Remote Procedure Call)関連の機能を有効にする。
*: <br>
*: 古いRPC関連の関数やライブラリ (例: rpc/rpc.hのヘッダファイル等) を含める。
*: 後方互換性のために必要な場合がある。
*: 新しいプログラムではこれらの機能の使用は推奨されないが、レガシーシステムとの互換性維持のために重要である。
*: <br>
* --enable-obsolete-nslオプション
*: 廃止予定のNSL (Network Services Library) 関連の機能を有効にする。
*: <br>
*: 古いネットワークサービスライブラリ関連の関数 (例: gethostbyname関数等) を含める。
*: これらの関数は主にDNS解決に使用されていたが、現在では、getaddrinfo関数等の新しいAPIに置き換えられている。
*: レガシーソフトウェアとの互換性のために必要な場合がある。
<br>
マルチアーキテクチャサポートと強力なスタック保護は、現代のシステムにおいて重要な機能である。<br>
一方で、廃止予定のRPCとNSL機能の有効化は、主に古いソフトウェアとの互換性のために行われる。<br>
<br>
最後に、GCCのヘルパーライブラリが必要になるので、/lib64ディレクトリからコピーする。<br>
これにより、/home/ユーザ名/InstallSoftware/GLIBCディレクトリにおいて、システムファイルを使用する準備が整う。<br>
# パッケージ管理システムによりインストールしたGCCを使用する場合
cp -r /lib64/libgcc* /<GLIBCのインストールディレクトリ>/lib64
# ホームディレクトリにインストールしたGCCを使用する場合
cp -r /<GCCのインストールディレクトリ>/lib64/libgcc* /<GLIBCのインストールディレクトリ>/lib64
<br>
Linux x86やUbuntuの場合、lib64ディレクトリではなく、libディレクトリを使用する必要がある。<br>
<br><br>
== Linuxカーネルヘッダのインストール (不要) ==
次に、[https://www.kernel.org Linuxの公式Webサイト]にアクセスして、Linuxカーネルをダウンロードする。<br>
次に、[https://www.kernel.org Linuxの公式Webサイト]にアクセスして、Linuxカーネルをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
ダウンロードしたファイルを解凍する。<br>
132行目: 180行目:
Linuxのヘッダファイルをインストールする。<br>
Linuxのヘッダファイルをインストールする。<br>
  make -j $(nproc) headers_install INSTALL_HDR_PATH=<GLIBCのインストールディレクトリ>
  make -j $(nproc) headers_install INSTALL_HDR_PATH=<GLIBCのインストールディレクトリ>
<br>
最後に、GCCのヘルパーライブラリが必要になるので、/lib64ディレクトリからコピーする。<br>
これにより、/home/ユーザ名/InstallSoftware/GLIBCディレクトリにおいて、システムファイルを使用する準備が整う。<br>
# パッケージ管理システムによりインストールしたGCCを使用する場合
cp -r /lib64/libgcc* /<GLIBCのインストールディレクトリ>/lib64
# ホームディレクトリにインストールしたGCCを使用する場合
cp -r /<GCCのインストールディレクトリ>/lib64/libgcc* /<GLIBCのインストールディレクトリ>/lib64
<br>
Linux x86やUbuntuの場合、lib64ディレクトリではなく、libディレクトリを使用する必要がある。<br>
<br><br>
<br><br>


案内メニュー