Skip to content

Instantly share code, notes, and snippets.

@zaininnari
Last active October 9, 2015 23:27
Show Gist options
  • Save zaininnari/3595220 to your computer and use it in GitHub Desktop.
Save zaininnari/3595220 to your computer and use it in GitHub Desktop.
rpm を利用したレポジトリの自動追加スクリプト
#!/bin/bash
LANG=C
cd /tmp/
### {{{ 使い方 ###
# *概要
# rpm を利用したレポジトリの自動追加スクリプトです。
# OS のバージョンを自動的に判別し、
# 最新の rpm にてインストールを行い、
# デフォルトで有効になっているものを無効化(enabled=0)します
# *前提
# 作成環境 CentOS 6.3(x86_64)
# アーキテクチャ
# install_repository ".repo prefix" "rpmのURLパス" "rpmファイル抽出正規表現"
# オリジナル
# [CentOS] rpmリポジトリ管理ツール群 リリースしました
# http://nullpopopo.blogcube.info/2012/08/centos-reposmainte.html
### }}} 使い方 ###
########### {{{ define ###########
# .repo ファイルパス
REPOD=/etc/yum.repos.d/
# OSのメジャーバージョンを取得
VERSION=$(cat /etc/redhat-release | sed -e 's/[a-zA-Z\(\)\ ]//g;s/\.[0-9]//g')
# 1 : .repo prefix, 2 : rpmのURLパス, 3 : rpmファイル抜きだし正規表現
install_repository() {
if test $# -ne 3
then
echo "引数の数が正しくありません。1 : .repo prefix, 2 : rpmのURLパス, 3 : rpmファイル抽出正規表現"
else
echo ----- start install -----
echo PREFIX : $1
echo URL_PATH : $2
echo REGEX : $3
RPM=$(wget -q $2 -O - | sed -n -e $3 | sed '$!d')
echo RPM : $RPM
rpm -Uvh $2$RPM
echo ----- start disable .repo -----
find $REPOD -name "$1*\.repo" | xargs sed -i -e 's/enabled *= *1/enabled=0/g'
echo ----- end disable .repo -----
echo ----- end install -----
fi
}
########### }}} define ###########
# epel
install_repository epel http://dl.fedoraproject.org/pub/epel/$VERSION/x86_64/ "s/^.*=\"\(epel-release-.*\)\">.*$/\1/p;"
# remi
install_repository remi http://rpms.famillecollet.com/enterprise/ "s/^.*=\"\(remi-release-$VERSION\.rpm\)\">.*$/\1/p;"
# rpmforge
install_repository rpmforge http://pkgs.repoforge.org/rpmforge-release/ "s/^.*=\"\(rpmforge-release-.*\.el$VERSION\.rf\.x86_64\.rpm\)\">.*$/\1/p;"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment