#!/bin/bash
# Name: Atomic Archive configuration script
# Copyright Atomicorp, 2002-2018
# License: AGPL
# Credits
# Scott R. Shinn (atomicorp)
# Andy Gredler (rackspace)
# export LANG=C
ATOMIC_VER="4.0.1"
VERSION="1.0-21"
SERVER=updates.atomicorp.com
ARCH=`uname -i` # Input validation function
# check_input <msg> <valid responses regex> <default>
# if <default> is passed on as null, then there is no default
# Example: check_input "Some question (yes/no) " "yes|no" "yes"
check_input () {
message=$1
validate=$2
default=$3 while [ $? -ne 1 ]; do
echo -n "$message "
read INPUTTEXT < /dev/tty
if [ "$INPUTTEXT" == "" -a "$default" != "" ]; then
INPUTTEXT=$default
return 1
fi
echo $INPUTTEXT | egrep -q "$validate" && return 1
echo "Invalid input"
done } echo
echo "Atomic Free Unsupported Archive installer, version $ATOMIC_VER"
echo
echo "BY INSTALLING THIS SOFTWARE AND BY USING ANY AND ALL SOFTWARE"
echo "PROVIDED BY ATOMICORP LIMITED YOU ACKNOWLEDGE AND AGREE:"
echo
echo "THIS SOFTWARE AND ALL SOFTWARE PROVIDED IN THIS REPOSITORY IS "
echo "PROVIDED BY ATOMICORP LIMITED AS IS, IS UNSUPPORTED AND ANY"
echo "EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE"
echo "IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR"
echo "PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ATOMICORP LIMITED, THE"
echo "COPYRIGHT OWNER OR ANY CONTRIBUTOR TO ANY AND ALL SOFTWARE PROVIDED"
echo "BY OR PUBLISHED IN THIS REPOSITORY BE LIABLE FOR ANY DIRECT,"
echo "INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES"
echo "(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS"
echo "OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)"
echo "HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,"
echo "STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)"
echo "ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED"
echo "OF THE POSSIBILITY OF SUCH DAMAGE."
echo
echo "For supported software packages please contact us at: "
echo
echo " sales@atomicorp.com"
echo if [ ! $NON_INT ]; then
check_input "Do you agree to these terms? (yes/no) [Default: yes]" "yes|no" "yes"
query=$INPUTTEXT
fi if [ "$query" == "no" ]; then
echo "Exiting"
echo
exit 1
fi echo
echo "Configuring the [atomic] repo archive for this system "
echo # Detect release type
if [ -f /etc/redhat-release ]; then
RELEASE=/etc/redhat-release
elif [ -f /etc/os-release ]; then
RELEASE=/etc/os-release
elif [ -f /etc/openvz-release ]; then
RELEASE=/etc/openvz-release
elif [ -f /etc/SuSE-release ]; then
RELEASE=/etc/SuSE-release
elif [ -f /etc/os-release ]; then
RELEASE=/etc/os-release
elif [ -f /etc/lsb-release ]; then
RELEASE=/etc/lsb-release
elif [ -f /etc/debian_version ]; then
RELEASE=/etc/debian_version
elif [ -f /etc/openvz-release ]; then
RELEASE=/etc/openvz-release
elif [ -f /etc/virtuozzo-release ]; then
RELEASE=/etc/virtuozzo-release
else
echo "Error: unable to identify operating system"
exit 1
fi PKG=rpm if grep -q "Red Hat Linux release 9 " $RELEASE ; then
DIST="rh9"
DIR=redhat/9
echo
echo "$RELEASE is no longer supported."
echo
exit 1
elif grep -q "Fedora Core release 2 " $RELEASE ; then
DIST="fc2"
DIR=fedora/2
echo
echo "$RELEASE is no longer supported."
echo
exit 1
elif grep -q "Fedora Core release 3 " $RELEASE ; then
DIST="fc3"
DIR=fedora/3
echo
echo "$RELEASE is no longer supported."
echo
exit 1
#YUMDEPS="fedora-release python-elementtree python-sqlite python-urlgrabber yum"
elif grep -q "Fedora Core release 4 " $RELEASE ; then
DIST="fc4"
DIR=fedora/4
echo "$RELEASE is no longer supported."
echo
exit 1
elif grep -q "Fedora Core release 5 " $RELEASE ; then
DIST="fc5"
DIR=fedora/5
echo "$RELEASE is no longer supported."
echo
exit 1
elif grep -q "Fedora Core release 6 " $RELEASE ; then
DIST="fc6"
DIR=fedora/6
elif grep -q "Fedora release 7 " $RELEASE ; then
DIST="fc7"
DIR=fedora/7
elif grep -q "Fedora release 8 " $RELEASE ; then
DIST="fc8"
DIR=fedora/8
elif grep -q "Fedora release 9 " $RELEASE ; then
DIST="fc9"
DIR=fedora/9
elif grep -q "Fedora release 10 " $RELEASE ; then
DIST="fc10"
DIR=fedora/10
elif grep -q "Fedora release 11 " $RELEASE ; then
DIST="fc11"
DIR=fedora/11
elif grep -q "Fedora release 12 " $RELEASE ; then
DIST="fc12"
DIR=fedora/12
elif grep -q "Fedora release 13 " $RELEASE ; then
DIST="fc13"
DIR=fedora/13
elif grep -q "Fedora release 14 " $RELEASE ; then
DIST="fc14"
DIR=fedora/14
elif grep -q "Fedora release 15 " $RELEASE ; then
DIST="fc15"
DIR=fedora/15
elif grep -q "Fedora release 16 " $RELEASE ; then
DIST="fc16"
DIR=fedora/16
elif grep -q "Fedora release 17 " $RELEASE ; then
DIST="fc17"
DIR=fedora/17
elif grep -q "Fedora release 18 " $RELEASE ; then
DIST="fc18"
DIR=fedora/18
elif grep -q "Fedora release 19 " $RELEASE ; then
DIST="fc19"
DIR=fedora/19
elif grep -q "Fedora release 20 " $RELEASE ; then
DIST="fc20"
DIR=fedora/20
elif grep -q "Fedora release 21 " $RELEASE ; then
DIST="fc21"
DIR=fedora/21
elif grep -q "Fedora release 22 " $RELEASE ; then
DIST="fc22"
DIR=fedora/22
elif grep -q "Fedora release 23 " $RELEASE ; then
DIST="fc23"
DIR=fedora/23
elif grep -q "Fedora release 24 " $RELEASE ; then
DIST="fc24"
DIR=fedora/24
elif grep -q "Fedora release 25 " $RELEASE ; then
DIST="fc25"
DIR=fedora/25
elif grep -q "Fedora release 26 " $RELEASE ; then
DIST="fc26"
DIR=fedora/26
elif grep -q "Fedora release 27 " $RELEASE ; then
DIST="fc27"
DIR=fedora/27
elif grep -q "Fedora release 28 " $RELEASE ; then
DIST="fc28"
DIR=fedora/28
elif grep -q "Fedora release 29 " $RELEASE ; then
DIST="fc29"
DIR=fedora/29 elif egrep -q "Red Hat Enterprise Linux (A|E)S release 3 " $RELEASE ; then
DIST="el3"
DIR=redhat/3
echo
echo "$RELEASE is not supported at this time, you will need to configure yum manually:"
echo "see http://$SERVER/channels for instructions"
echo
exit 1
elif grep -q "CentOS release 3" $RELEASE ; then
DIST="el3"
DIR=centos/3
echo
echo "$RELEASE is not supported at this time, you will need to configure yum manually:"
echo "see http://$SERVER/channels for instructions"
echo
exit 1
elif egrep -q "Red Hat Enterprise Linux (A|E|W)S release 4" $RELEASE ; then
DIST="el4"
DIR=redhat/4
echo "$RELEASE is not supported at this time, you will need to configure yum manually:"
echo "see http://$SERVER/channels for instructions"
echo
exit 1
elif egrep -q "Red Hat Enterprise Linux.*release 5" $RELEASE ; then
DIST="el5"
DIR=redhat/5
elif egrep -q "Red Hat Enterprise Linux.*release 6" $RELEASE ; then
DIST="el6"
DIR=redhat/6
elif egrep -q "Red Hat Enterprise Linux.* 7" $RELEASE ; then
DIST="el7"
DIR=redhat/7
elif grep -q "CentOS release 3" $RELEASE ; then
DIST="el3"
DIR=centos/3
echo "$RELEASE is not supported at this time, you will need to configure yum manually:"
echo "see http://$SERVER/channels for instructions"
echo
elif grep -q "CentOS release 4" $RELEASE ; then
DIST="el4"
DIR=centos/4
echo "$RELEASE is not supported at this time, you will need to configure yum manually:"
echo "see http://$SERVER/channels for instructions"
echo
elif egrep -q "(release 5|release 2011)" $RELEASE ; then
DIST="el5"
DIR=centos/5
elif egrep -q "(release 6|release 2012)" $RELEASE ; then
DIST="el6"
DIR=centos/6
elif egrep -q "(release 7|release 2014)" $RELEASE ; then
DIST="el7"
DIR=centos/7
elif egrep -q "(Amazon Linux AMI|Amazon).*LTS" $RELEASE ; then
DIST="amazon-2"
DIR=amazon/2
PKG="amazon"
elif egrep -q "(Amazon Linux AMI|Amazon)" $RELEASE ; then
DIST="amazon-1"
DIR=amazon/1
PKG="amazon"
elif egrep -q "openSUSE 12" $RELEASE ; then
DIST="suse12"
DIR=opensuse/12
elif egrep -q "openSUSE 13" $RELEASE ; then
DIST="suse13"
DIR=opensuse/13
elif egrep -q "^6.0" $RELEASE ; then
DIST="debian"
DIR="squeeze"
PKG=deb
elif egrep -q "wheezy" $RELEASE ; then
DIST="debian"
DIR="wheezy"
PKG=deb
elif egrep -q "jessie" $RELEASE ; then
DIST="debian"
DIR="jessie"
PKG=deb
elif egrep -q "stretch" $RELEASE ; then
DIST="debian"
DIR="stretch"
PKG=deb
elif egrep -q "lucid" $RELEASE ; then
DIST="ubuntu"
DIR="lucid"
PKG=deb
elif egrep -q "precise" $RELEASE ; then
DIST="ubuntu"
DIR="precise"
PKG=deb
elif egrep -q "Raring Ringtail" $RELEASE ; then
DIST="ubuntu"
DIR="raring"
PKG=deb
elif egrep -q "Trusty Tahr" $RELEASE ; then
DIST="ubuntu"
DIR="trusty"
PKG=deb
elif egrep -q "Xenial|Mint" $RELEASE ; then
DIST="ubuntu"
DIR="xenial"
PKG=deb
elif egrep -qi "artful" $RELEASE ; then
DIST="ubuntu"
DIR="artful"
PKG=deb
elif egrep -qi "bionic" $RELEASE ; then
DIST="ubuntu"
DIR="bionic"
PKG=deb
elif egrep -qi "kali" $RELEASE ; then
DIST="kali"
DIR="kali"
PKG=deb
else
echo "Error: Unable to determine distribution type. Please send the contents of $RELEASE to support@atomicrocketturtle.com"
exit 1
fi # Manual for amazon
amazon_install () { rpm -import RPM-GPG-KEY.atomicorp.txt >/dev/null 2>&1
rpm -import RPM-GPG-KEY.art.txt >/dev/null 2>&1 if [ ! -f /etc/pki/rpm-gpg/RPM-GPG-KEY.atomicorp.txt ]; then
mv /root/RPM-GPG-KEY.atomicorp.txt /etc/pki/rpm-gpg/RPM-GPG-KEY.atomicorp.txt
fi if [ -f /etc/yum.repos.d/atomic.repo ]; then
rm -f /etc/yum.repos.d/atomic.repo
fi cat << EOF > /etc/yum.repos.d/atomic.repo
[atomic]
name=Atomicorp Amazon Linux - atomic
mirrorlist=https://updates.atomicorp.com/channels/mirrorlist/atomic/$DIST-x86_64
priority=1
enabled=1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY.atomicorp.txt
gpgcheck=1 [atomic-testing]
name=Atomicorp Amazon Linux - atomic-testing
mirrorlist=https://updates.atomicorp.com/channels/mirrorlist/atomic-testing/$DIST-x86_64
priority=1
enabled=0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY.atomicorp.txt
gpgcheck=1 EOF } # RPM Distros
yum_install () { ATOMIC=atomic-release-$VERSION.$DIST.art.noarch.rpm if [ ! -f /usr/bin/yum ]; then
echo
echo "Error: Yum was not detected. Contact your provider for support." | tee -a $LOG
echo
exit 1
fi if rpm -q atomic-release > /dev/null ; then
if [ ! -f /etc/yum.repos.d/atomic.repo ]; then
rpm -e atomic-release
fi fi rpm -import RPM-GPG-KEY.art.txt >/dev/null 2>&1
rpm -import RPM-GPG-KEY.atomicorp.txt >/dev/null 2>&1 echo -n "Downloading $ATOMIC: "
wget -q http://$SERVER/channels/atomic/$DIR/$ARCH/RPMS/$ATOMIC >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo "Error: File $ATOMIC not found."
echo
exit
fi if [ -f $ATOMIC ]; then
rpm -Uvh $ATOMIC || exit 1
rm -f $ATOMIC
else
echo "ERROR: $ATOMIC was not downloaded."
exit 1
fi echo "OK" if [ ! -f /etc/yum.repos.d/atomic.repo ]; then
echo "Error: /etc/yum.repos.d/atomic.repo was not detected."
exit 1
fi if [ ! $NON_INT ]; then
echo
check_input "Enable repo by default? (yes/no) [Default: yes]:" "yes|no" "yes"
query=$INPUTTEXT
if [ "$query" == "no" ]; then
sed -i 's/enabled = 1/enabled = 0/' /etc/yum.repos.d/atomic.repo
fi fi } # DEB Distros
apt_install () { cat RPM-GPG-KEY.atomicorp.txt | apt-key add - >/dev/null 2>&1 if [ -d /etc/apt/sources.list.d/ ]; then
APT_SOURCES="/etc/apt/sources.list.d/atomic.list" echo -n "Adding [atomic] to $APT_SOURCES: "
if [ ! -f $APT_SOURCES ]; then
echo "deb https://updates.atomicorp.com/channels/atomic/$DIST $DIR main" > $APT_SOURCES
echo "OK"
else
echo "Already installed"
fi else
APT_SOURCES="/etc/apt/sources.list"
echo -n "Adding [atomic] to $APT_SOURCES: "
if ! grep -q "atomic/$DIST $DIR" $APT_SOURCES ; then
echo "deb https://updates.atomicorp.com/channels/atomic/$DIST $DIR main" >> /etc/apt/sources.list
echo "OK"
else
echo "Already installed"
fi
fi } # Installation # GPG Keys
echo -n "Installing the Atomic GPG keys: "
if [ ! -f RPM-GPG-KEY.art.txt ]; then
wget -q https://www.atomicorp.com/RPM-GPG-KEY.art.txt 1>/dev/null 2>&1
fi if [ ! -f RPM-GPG-KEY.atomicorp.txt ]; then
wget -q https://www.atomicorp.com/RPM-GPG-KEY.atomicorp.txt 1>/dev/null 2>&1
fi
echo "OK"
echo if [ "$PKG" == "rpm" ]; then
yum_install
elif [ "$PKG" == "deb" ]; then
apt_install
elif [ "$PKG" == "amazon" ]; then
amazon_install fi echo
echo
echo "The Atomic repo has now been installed and configured for your system"
echo "The following channels are available:"
echo " atomic - [ACTIVATED] - contains the stable tree of ART packages"
echo " atomic-testing - [DISABLED] - contains the testing tree of ART packages"
echo " atomic-bleeding - [DISABLED] - contains the development tree of ART packages"
echo
echo

release判断系统的更多相关文章

  1. mono 判断系统的网络是否可用

    /**  * 判断系统的网络是否可用  * @return  */        private bool isNetworkConnected()        {            bool ...

  2. C# Debug和release判断用法

    C# Debug和release判断用法 #if (!DEBUG) Response.Write("DEBUG下运行");#else Response.Write("re ...

  3. .NET压缩图片保存 .NET CORE WebApi Post跨域提交 C# Debug和release判断用法 tofixed方法 四舍五入 (function($){})(jQuery); 使用VUE+iView+.Net Core上传图片

    .NET压缩图片保存   需求: 需要将用户后买的图片批量下载打包压缩,并且分不同的文件夹(因:购买了多个用户的图片情况) 文章中用到了一个第三方的类库,Nuget下载 SharpZipLib 目前用 ...

  4. C#中判断系统的架构(32位,还是64位)

    一种很简单的方法就是根据IntPtr类型的Size属性来判断, //IntPtr.Size在64位为8,在32位为4 public static Boolean Is64Bit() { ) retur ...

  5. C#判断系统是64位还是32位 支持.net4.0以前的版本

    C#判断系统是64位还是32位的时候引用了一串代码,这个代码是从园子里面其他博文中转载过来的,引入自己的项目中发现无法使用,在引用了相应的命名空间之后还是提示: "未能找到类型或命名空间名称 ...

  6. 判断系统64位(使用GetNativeSystemInfo函数,XP时代就有这个函数了)

    判断系统64位 static bool IsWin64 (void) { SYSTEM_INFO si = {0}; typedef void (WINAPI *LPFN_PGNSI)(LPSYSTE ...

  7. bat 获取管理员权限,判断系统位数,获取当前文件所在目录,regsvr32注册DLL、OCX

    1.获取管理员权限 @echo off if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%Syste ...

  8. 如何判断系统是32位还是64位的linux系统

    如何判断系统是32位还是64位的linux系统 某日,需要下载个安装包,忽然忘记了自己的系统是32位还是64位的系统了,一时想不起来怎么查看时32位还是64位,呵呵,随便百度下,就发现有好多方法,这里 ...

  9. C# 判断系统版本

    本文告诉大家如何判断系统是 win7 还是 xp 系统 使用下面代码可以判断 private static readonly Version _osVersion = Environment.OSVe ...

随机推荐

  1. Linux上传下载工具FileZilla(GNU软件) 文件传输和配置文件修改

  2. CC37:穿点最多的直线

    题目 在二维平面上,有一些点,请找出经过点数最多的那条线. 给定一个点集vectorp和点集的大小n,没有两个点的横坐标相等的情况,请返回一个vector,代表经过点数最多的那条直线的斜率和截距. 解 ...

  3. [TCP/IP]OSI七层模型和TCP/IP四层模型

    OSI參考模型 在過去的電腦網路上,由於資料通訊系統涉及複雜的軟硬體,可是又沒有統一的標準,導致通訊軟體不僅龐大複雜,而且不易測式.修改或分享.為此,ISO(國際標準組織)發展出一套OSI參考模型(O ...

  4. BZOJ 1047: [HAOI2007]理想的正方形 单调队列瞎搞

    题意很简明吧? 枚举的矩形下边界和右端点即右下角,来确定矩形位置: 每一个纵列开一个单调队列,记录从 i-n+1 行到 i 行每列的最大值和最小值,矩形下边界向下推移的时候维护一下: 然后在记录的每一 ...

  5. 2019湘潭校赛 E(答案区间维护)

    题目传送 思路是始终维护西瓜数量的区间,即L代表目前可以达到的最少的,R是最多的,然后判断一下. #include <bits/stdc++.h> using namespace std; ...

  6. CSS——制作天天生鲜主页

    终于做好了! index.html: <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  7. 转 AIX filesystemcache引发的Oracle事故

    http://blog.itpub.net/26015009/viewspace-1806629/

  8. 072 Edit Distance 编辑距离

    给出两个单词 word1 和 word2,找出将 word1 转换成 word2 所使用的最少的步骤数 (每个操作记为一步).你可以对一个单词进行以下三种操作:a) 插入一个字符b) 删除一个字符c) ...

  9. (转)nginx域名访问的白名单配置梳理

    nginx域名访问的白名单配置梳理 原文:http://www.cnblogs.com/kevingrace/p/6086652.html 在日常运维工作中,会碰到这样的需求:设置网站访问只对某些ip ...

  10. Spark Mllib里如何将如温度、湿度和风速等数值特征字段用除以***进行标准化(图文详解)

    不多说,直接上干货! 具体,见 Hadoop+Spark大数据巨量分析与机器学习整合开发实战的第18章 决策树回归分类Bike Sharing数据集