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

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動
編集の要約なし
7行目: 7行目:
GNU Cライブラリは、下位互換性や移植性があり、高性能なISO Cライブラリになるように設計されている。<br>
GNU Cライブラリは、下位互換性や移植性があり、高性能なISO Cライブラリになるように設計されている。<br>
ISO C11、POSIX.1-2008、IEEE 754-2008を含むすべての関連規格に従うことを目指している。<br>
ISO C11、POSIX.1-2008、IEEE 754-2008を含むすべての関連規格に従うことを目指している。<br>
<br><br>
== 依存関係のライブラリのインストール ==
==== Coreutilsのインストール ====
# [http://ftp.gnu.org/gnu/coreutils Coreutilsの公式Webサイト]にアクセスして、最新のCoreutilsをダウンロードする。
# ダウンロードしたCoreutilsを解凍して、Coreutilsディレクトリに移動する。
#: tar xf coreutils-x.xx.tar.xz
# ビルド用ディレクトリを作成して移動する。
#: mkdir build && cd build
# Coreutilsをビルドおよびインストールするために、以下のコマンドを実行する。
#: export CFLAGS="-static -O2 -g"
#: <br>
#: ./configure --prefix=/home/<ユーザ名>/InstallSoftware/Coreutils
#: または
#: ./configure --prefix=/home/<ユーザ名>/InstallSoftware/Coreutils \
#: CC="/<GCCのインストールディレクトリ>/bin/gcc-<バージョン名> -arch i386 -arch x86_64" \
#: CXX="/<GCCのインストールディレクトリ>/bin/g++-<バージョン名> -arch i386 -arch x86_64" \
#: CPP="/<GCCのインストールディレクトリ>/bin/gcc-<バージョン名> -E" CXXCPP="/<GCCのインストールディレクトリ>/bin/g++-<バージョン名> -E"
#: <br>
#: make -j 8
#: <br>
#: make install
<br>
==== Binutilsのインストール ====
# [https://ftp.gnu.org/gnu/binutils Binutilsの公式Webサイト]にアクセスして、最新のBinutilsをダウンロードする。
# ダウンロードしたBinutilsを解凍して、Binutilsディレクトリに移動する。
#: tar xf Binutils-x.xx.tar.xz
# ビルド用ディレクトリを作成して移動する。
#: mkdir build && cd build
# Binutilsをビルドおよびインストールするために、以下のコマンドを実行する。
#: export CFLAGS="-static -O2 -g"
#: <br>
#: ./configure --prefix=/home/<ユーザ名>/InstallSoftware/Binutils
#: または
#: ./configure --prefix=/home/<ユーザ名>/InstallSoftware/Binutils \
#: CC="/<GCCのインストールディレクトリ>/bin/gcc-<バージョン名> -arch i386 -arch x86_64" \
#: CXX="/<GCCのインストールディレクトリ>/bin/g++-<バージョン名> -arch i386 -arch x86_64" \
#: CPP="/<GCCのインストールディレクトリ>/bin/gcc-<バージョン名> -E" CXXCPP="/<GCCのインストールディレクトリ>/bin/g++-<バージョン名> -E"
#: <br>
#: make -j 8
#: <br>
#: make install
<br><br>
<br><br>


31行目: 73行目:
  cd build
  cd build
   
   
  ../glibc/configure CC=/home/<ユーザ名>/InstallSoftware/GCC/gcc-10_2_0/bin/gcc-10.2 --prefix=/home/<ユーザ名>/Installsoftware/GLIBC \
  ../glibc-x.xx/configure --prefix=/home/<ユーザ名>/Installsoftware/GLIBC \
  --host=x86_64-linux-gnu --enable-add-ons=libidn, --without-selinux --enable-stack-protector=strong --enable-multi-arch \
CC=/home/<ユーザ名>/InstallSoftware/GCC/gcc-<バージョン名>/bin/gcc-<バージョン名> \
--with-binutils=/home/<ユーザ名>/InstallSoftware/Binutils
CXX=/home/<ユーザ名>/InstallSoftware/GCC/g++-<バージョン名>/bin/gcc-<バージョン名> \
  --host=x86_64-linux-gnu --enable-add-ons=libidn, --without-selinux \
--enable-stack-protector=strong --enable-multi-arch --with-binutils=/home/<ユーザ名>/InstallSoftware/Binutils
 
  make -j 8
  make -j 8
   
   
46行目: 90行目:
最後に、GCCのヘルパーライブラリが必要になるので、/lib64ディレクトリからコピーする。<br>
最後に、GCCのヘルパーライブラリが必要になるので、/lib64ディレクトリからコピーする。<br>
これにより、/home/ユーザ名/InstallSoftware/GLIBCディレクトリにおいて、システムファイルを使用する準備が整う。<br>
これにより、/home/ユーザ名/InstallSoftware/GLIBCディレクトリにおいて、システムファイルを使用する準備が整う。<br>
  sudo cp -r /lib64/libgcc* /home/<ユーザ名>/InstallSoftware/GLIBC/lib64
  # パッケージ管理システムによりインストールしたGCCを使用する場合
cp -r /lib64/libgcc* /home/<ユーザ名>/InstallSoftware/GLIBC/lib64
# ローカルディレクトリにインストールしたGCCを使用する場合
cp -r /<GCCのインストールディレクトリ>/libgcc* /home/<ユーザ名>/InstallSoftware/GLIBC/lib64
<br>
<br>
Linux x86やUbuntuにおいて、lib64ディレクトリではなく、libディレクトリを使用する必要がある。<br>
Linux x86やUbuntuにおいて、lib64ディレクトリではなく、libディレクトリを使用する必要がある。<br>
54行目: 102行目:
新しくインストールしたglibcを使用してソフトウェアを実行する。<br>
新しくインストールしたglibcを使用してソフトウェアを実行する。<br>
インストールディレクトリにあるtestrun.shを使用して、以下のようにコマンドを実行する。<br>
インストールディレクトリにあるtestrun.shを使用して、以下のようにコマンドを実行する。<br>
  /home/ユーザ名/InstallSoftware/GLIBC/build/testrun.sh <実行するソフトウェアのパス>
  /home/<ユーザ名>/InstallSoftware/GLIBC/build/testrun.sh <実行するソフトウェアのパス>
<br><br>
<br><br>


== 環境パスの設定 ==
== 環境パスの設定 ==
インストールしたglibc-x.xxを使用するために、環境パスを設定する。<br>
インストールしたglibcを使用するために、環境パスを設定する。<br>
  sudo vi /etc/ld.so.conf
  sudo vi /etc/ld.so.conf
<br>
<br>

2021年4月2日 (金) 23:11時点における版

概要

GNU Cライブラリは、GNUシステムとGNU/Linuxシステム、そしてLinuxをカーネルとして使うシステムのためのコアライブラリである。

これらのライブラリは、ISO C11、POSIX.1-2008、BSD、OS固有のAPIなどを含む重要なAPIを提供しており、
APIには、open、read、write、malloc、printf、getaddrinfo、dlopen、pthread_create、crypt、login、exit等の基本的な機能が含まれている。

GNU Cライブラリは、下位互換性や移植性があり、高性能なISO Cライブラリになるように設計されている。
ISO C11、POSIX.1-2008、IEEE 754-2008を含むすべての関連規格に従うことを目指している。


依存関係のライブラリのインストール

Coreutilsのインストール

  1. Coreutilsの公式Webサイトにアクセスして、最新のCoreutilsをダウンロードする。
  2. ダウンロードしたCoreutilsを解凍して、Coreutilsディレクトリに移動する。
    tar xf coreutils-x.xx.tar.xz
  3. ビルド用ディレクトリを作成して移動する。
    mkdir build && cd build
  4. Coreutilsをビルドおよびインストールするために、以下のコマンドを実行する。
    export CFLAGS="-static -O2 -g"

    ./configure --prefix=/home/<ユーザ名>/InstallSoftware/Coreutils
    または
    ./configure --prefix=/home/<ユーザ名>/InstallSoftware/Coreutils \
    CC="/<GCCのインストールディレクトリ>/bin/gcc-<バージョン名> -arch i386 -arch x86_64" \
    CXX="/<GCCのインストールディレクトリ>/bin/g++-<バージョン名> -arch i386 -arch x86_64" \
    CPP="/<GCCのインストールディレクトリ>/bin/gcc-<バージョン名> -E" CXXCPP="/<GCCのインストールディレクトリ>/bin/g++-<バージョン名> -E"

    make -j 8

    make install


Binutilsのインストール

  1. Binutilsの公式Webサイトにアクセスして、最新のBinutilsをダウンロードする。
  2. ダウンロードしたBinutilsを解凍して、Binutilsディレクトリに移動する。
    tar xf Binutils-x.xx.tar.xz
  3. ビルド用ディレクトリを作成して移動する。
    mkdir build && cd build
  4. Binutilsをビルドおよびインストールするために、以下のコマンドを実行する。
    export CFLAGS="-static -O2 -g"

    ./configure --prefix=/home/<ユーザ名>/InstallSoftware/Binutils
    または
    ./configure --prefix=/home/<ユーザ名>/InstallSoftware/Binutils \
    CC="/<GCCのインストールディレクトリ>/bin/gcc-<バージョン名> -arch i386 -arch x86_64" \
    CXX="/<GCCのインストールディレクトリ>/bin/g++-<バージョン名> -arch i386 -arch x86_64" \
    CPP="/<GCCのインストールディレクトリ>/bin/gcc-<バージョン名> -E" CXXCPP="/<GCCのインストールディレクトリ>/bin/g++-<バージョン名> -E"

    make -j 8

    make install



glibc(GNU C Library)のインストール

現在使用しているglibcのバージョンを確認する。

ls -l /lib/libc-*


まず、glibcをコンパイルするディレクトリを作成する。

mkdir -p ~/InstallSoftware/GLIBC/build
cd ~/InstallSoftware/GLIBC


glibcをダウンロードして解凍する。(glibc-x.xxディレクトリが作成される)

wget http://ftp.gnu.org/gnu/glibc/glibc-x.xx.tar.xz
または
git clone git://sourceware.org/git/glibc.git

tar xf glibc-x.xx.tar.gz


LD_LIBRARY_PATHの環境変数を空にする。

LD_LIBRARY_PATH=""


ビルド用ディレクトリに移動して、ビルドおよびインストールを行う。
これで、インストールしたGLIBCにより、実行するアプリケーションをビルドすることができる。

cd build

../glibc-x.xx/configure --prefix=/home/<ユーザ名>/Installsoftware/GLIBC \
CC=/home/<ユーザ名>/InstallSoftware/GCC/gcc-<バージョン名>/bin/gcc-<バージョン名> \
CXX=/home/<ユーザ名>/InstallSoftware/GCC/g++-<バージョン名>/bin/gcc-<バージョン名> \
--host=x86_64-linux-gnu --enable-add-ons=libidn, --without-selinux \
--enable-stack-protector=strong --enable-multi-arch --with-binutils=/home/<ユーザ名>/InstallSoftware/Binutils
make -j 8

make install


次に、Linuxカーネルのヘッダファイル群が必要になるので、ダウンロードしてインストールする。

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux
make headers_install INSTALL_HDR_PATH=/home/ユーザ名/InstallSoftware/GLIBC


最後に、GCCのヘルパーライブラリが必要になるので、/lib64ディレクトリからコピーする。
これにより、/home/ユーザ名/InstallSoftware/GLIBCディレクトリにおいて、システムファイルを使用する準備が整う。

# パッケージ管理システムによりインストールしたGCCを使用する場合
cp -r /lib64/libgcc* /home/<ユーザ名>/InstallSoftware/GLIBC/lib64

# ローカルディレクトリにインストールしたGCCを使用する場合
cp -r /<GCCのインストールディレクトリ>/libgcc* /home/<ユーザ名>/InstallSoftware/GLIBC/lib64


Linux x86やUbuntuにおいて、lib64ディレクトリではなく、libディレクトリを使用する必要がある。


glibcの確認

新しくインストールしたglibcを使用してソフトウェアを実行する。
インストールディレクトリにあるtestrun.shを使用して、以下のようにコマンドを実行する。

/home/<ユーザ名>/InstallSoftware/GLIBC/build/testrun.sh <実行するソフトウェアのパス>



環境パスの設定

インストールしたglibcを使用するために、環境パスを設定する。

sudo vi /etc/ld.so.conf


# /etc/ld.so.confファイル
/<glibcのインストールディレクトリ>/lib64
/<glibcのインストールディレクトリ>/lib


設定を反映させるため、再起動する。