月別アーカイブ: 2024年9月

FVWM3のインストール

FVWM3の最新をGitHubよりインストールする。
https://github.com/fvwmorg/fvwm3

#!/bin/bash

# ユーザーのキー入力を待つ関数
pause() {
  read -n1 -r -p "$1" key
  echo
}

echo "FVWM3のインストールを開始します。"

# 必要なパッケージをインストール
echo "必要なパッケージをインストールしています..."
sudo apt update
sudo apt install -y libevent-dev libx11-dev libxrandr-dev libxrender-dev libxt-dev libxft-dev asciidoctor \
libfontconfig-dev libfreetype6-dev libfribidi-dev libncurses5-dev libpng-dev libreadline-dev \
librsvg2-dev libsm-dev libxcursor-dev libxext-dev libxi-dev libxpm-dev sharutils

pause "パッケージのインストールが完了しました。続行するにはキーを押してください..."

# 'fvwm3'ディレクトリが存在するか確認
if [ -d "fvwm3" ]; then
  echo "'fvwm3'ディレクトリが既に存在します。"

  # ディレクトリがGitリポジトリか確認
  if [ -d "fvwm3/.git" ]; then
    echo "既存のディレクトリはGitリポジトリです。"
    while true; do
      read -p "最新の変更を取得するために'git pull'を実行しますか? (y/n): " yn
      case $yn in
          [Yy]* ) cd fvwm3; git pull; break;;
          [Nn]* ) echo "既存の状態で続行します。"; cd fvwm3; break;;
          * ) echo "はい(y)かいいえ(n)でお答えください。";;
      esac
    done
  else
    echo "既存のディレクトリはGitリポジトリではありません。"
    while true; do
      read -p "ディレクトリを削除して再クローンしますか? (y/n): " yn
      case $yn in
          [Yy]* ) rm -rf fvwm3; echo "ディレクトリを削除しました。"; break;;
          [Nn]* ) echo "処理を中止します。スクリプトを終了します。"; exit 1;;
          * ) echo "はい(y)かいいえ(n)でお答えください。";;
      esac
    done

    # GitからFVWM3をクローン
    echo "FVWM3のリポジトリをクローンしています..."
    git clone https://github.com/fvwmorg/fvwm3.git
    pause "リポジトリのクローンが完了しました。続行するにはキーを押してください..."
    cd fvwm3
  fi
else
  # GitからFVWM3をクローン
  echo "FVWM3のリポジトリをクローンしています..."
  git clone https://github.com/fvwmorg/fvwm3.git
  pause "リポジトリのクローンが完了しました。続行するにはキーを押してください..."
  cd fvwm3
fi

# autogen.shを実行
echo "autogen.shを実行しています..."
./autogen.sh

pause "autogen.shの実行が完了しました。続行するにはキーを押してください..."

# コンパイルオプションを環境変数で設定
echo "コンパイルオプションを設定しています..."
export CPPFLAGS="-march=native -O2"
export CFLAGS="-march=native -O2"

# configureを実行
echo "configureを実行しています..."
./configure --enable-mandoc --enable-golang --enable-htmldoc

pause "configureが完了しました。続行するにはキーを押してください..."

# ビルドを実行
echo "FVWM3をビルドしています..."
make clean
make -j$(nproc)

pause "ビルドが完了しました。続行するにはキーを押してください..."

# インストールを実行
echo "FVWM3をインストールしています..."
sudo make install

echo "FVWM3のインストールが完了しました。"
    1. 使用方法
      新しいファイルを作成し、例えばinstall_fvwm3.shという名前を付けます。
    2. 上記のスクリプトをそのファイルにコピーします。
    3. スクリプトに実行権限を与えます。
      chmod +x install_fvwm3.sh
    4. スクリプトを実行します。
      ./install_fvwm3.sh

    各ステップで進捗が表示され、続行する前にキー入力を求められます。これにより、各段階でプロセスを確認できます。

    注意事項:

    • スクリプト内でsudoを使用しているため、実行時にパスワードの入力が求められる場合があります。
    • スクリプトは現在のディレクトリにfvwm3というディレクトリを作成します。
    • 必要に応じて、スクリプトの内容を変更して環境に合わせてください。