DAGリポジトリを一時的に有効にする

CentOSでは標準のyumリポジトリに入ってるソフトがあまり多くありません。「あれ、yumでサクっと入らねーのかな」という時にはDAG(rpmforge)のお世話になるわけですが、普段は無効にしておいて、いざという時だけ使いたい人向けの小物ツールです。

まず、前提となるDAGリポジトリを使うための設定は、以下の内容を/etc/yum.repos.d/dag.repoで保存。

[dag]
name=Dag RPM Repository for RHEL5/CentOS5
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el5/en/$basearch/dag/
enabled=1
gpgcheck=1

んで、GPG鍵のrpmをインポート。

rpm --import http://ftp.riken.jp/Linux/dag/packages/RPM-GPG-KEY.dag.txt

riken.jpのミラーを使ってるけど、別にどこでもいいです。

リポジトリの有効/無効を切り替えるには、repoファイルのenabledを0にしてもいいけど、ファイル名を変えてしまうのが手っ取り早いです。拡張子.repoになっていないと読み込まないようなので、

DAG使う ファイル名をdag.repoに
DAG使わない ファイル名をdagに

というポリシーで運用することにします。

んで、/usr/local/bin/dagreposとか好きなところに以下を保存。

#!/bin/sh

ONFILE="/etc/yum.repos.d/dag.repo"
OFFFILE="/etc/yum.repos.d/dag"

usage() {
    echo "Usage: dagrepos {on|off}"
    echo -n "  DAG repository:"
    if [ -e $ONFILE ]; then
        echo "ON"
    elif [ -e $OFFFILE ]; then
        echo "OFF"
    else
        echo "ERROR: no repository file"
    fi
    exit 1
}

if [ $1 ]
then
    case "$1" in
        on)
        if [ -e $ONFILE ]; then
            echo "DAG repository already ON"
        elif [ -e $OFFFILE ]; then
            sudo mv $OFFFILE $ONFILE
            echo "DAG repository switched ON"
        else
            echo "ERROR: no repository file"
        fi
        ;;
        off)
        if [ -e $OFFFILE ]; then
            echo "DAG repository already OFF"
        elif [ -e $ONFILE ]; then
            sudo mv $ONFILE $OFFFILE
            echo "DAG repository switched OFF"
        else
            echo "ERROR: no repository file"
        fi
        ;;
        *)
        usage
    esac
    exit 0
else
    usage
fi

これで、コマンドラインから

$ dagrepos on
$ dagrepos off

とかすればDAGリポジトリを使うか否かを簡単に制御出来ます。単にdagreposとだけ打てばDAGが有効なのかどうかも確認可能。

小物だけど、書いたら意外と便利だったのでお披露目です。