Skip to content

Instantly share code, notes, and snippets.

@JrCs
Created August 5, 2012 07:43
Show Gist options
  • Save JrCs/3262666 to your computer and use it in GitHub Desktop.
Save JrCs/3262666 to your computer and use it in GitHub Desktop.
Script pour installer les repos RPMForge sur CentOS
#!/bin/bash
set -u
rpmforge_rpmfile=$(mktemp -u --suffix=.rpm)
_clean_exit()
{
[ -f "$rpmforge_rpmfile" ] && rm -f "$rpmforge_rpmfile"
}
trap _clean_exit EXIT
exit_with_message() {
echo "$1" >&2
exit 1
}
RPMFORGE_RELEASE_URL="http://pkgs.repoforge.org/rpmforge-release"
echo -e "FractalizeR's RPM Forge Repository Installation Script for CentOS v1.0\n"
arch=$(arch)
echo "Detected architecture is $arch"
RELEASE=`awk '{ print $3 }' < /etc/redhat-release`
MAJOR=`echo $RELEASE | awk -F. '{ print $1 }'`
MINOR=`echo $RELEASE | awk -F. '{ print $2 }'`
echo "Detected CentOS Release: $RELEASE, Major=$MAJOR, Minor=$MINOR"
echo
[[ $(id -u) != 0 ]] && exit_with_message "You need to be root!"
rpmforge_package=$(wget "${RPMFORGE_RELEASE_URL}/" --quiet -O - | sed 's/^.*a href="//;s/">.*$//' | grep -i "el${MAJOR}\..*${arch}.rpm" | tail -1)
[[ -z "$rpmforge_package" ]] && exit_with_message "Can't find RPMForge package at $RPMFORGE_RELEASE_URL"
repoFileName="/etc/yum.repos.d/CentOS-Base.repo"
if [ ! -r $repoFileName -o ! -w $repoFileName ]; then
echo "Repository file $repoFileName is not readable or writable!"
exit 1
fi
echo
echo "Loading RPMForge RPM..."
wget "${RPMFORGE_RELEASE_URL}/$rpmforge_package" --quiet -O "$rpmforge_rpmfile" || exit_with_message "RPMForge RPM download failed!"
echo "Importing RPM Forge GPG key..."
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt || exit_with_message "RPMForge GPG key download failed!"
echo "Verifying RPMForge RPM..."
rpm -K "$rpmforge_rpmfile" || exit_with_message "RPMForge GPG key verification failed!"
echo "Installing RPMForge RPM..."
output=$(LC_ALL=C rpm --quiet -i "$rpmforge_rpmfile" 2>&1)
[[ $? -ne 0 && ! "$output" =~ "is already installed" ]] && exit_with_message "${output}RPMForge RPM installation failed!"
echo "Editing RPMForge repo file..."
repoFileName="/etc/yum.repos.d/rpmforge.repo"
if [ ! -r $repoFileName -o ! -w $repoFileName ]; then
"Repository file $repoFileName is not readable or writable!"
exit 1
fi
echo "Activating RPMForge Extras..."
sed -i '/rpmforge-extras/,/^enabled\|^\[/s/^enabled.*/enabled = 1/' $repoFileName
echo "Done!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment