#!/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. Java NIO 必知必会(Example)

    管道流: Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. package base.nio.t ...

  2. Codeforces Round #566 (Div. 2) C. Beautiful Lyrics

    链接: https://codeforces.com/contest/1182/problem/C 题意: You are given n words, each of which consists ...

  3. echart option属性

    option 图表选项,包含图表实例任何可配置选项: 公共选项 , 组件选项 , 数据选项 名称 描述 {color}backgroundColor 全图默认背景,(详见backgroundColor ...

  4. Angular2.0的学习(一)

    第一节课 1.Angular程序架构 2.搭建Angular开发环境 3.开发在线竞拍程序Auction的第一个版本

  5. jetty jndi数据源

    applicationContext.xml <?xml version="1.0" encoding="utf-8"?> <beans de ...

  6. C - AtCoDeerくんと選挙速報 / AtCoDeer and Election Report

    ceil有毒啊..用ceil一直错. 思路就是模拟吧,设当前的答案是ansx和ansy. 如果比例是小于ansx的,那么就要乘以一个倍数k1,使得a * k1 >= ansx的. 所以就用cei ...

  7. 关于一次性的数据输入,excel字符串连接保存到服务器还是CRUD?

    一 开发中遇到个问题,线下一个紧急的活动,给一个excel的文件,要把里面的一次性的数据放进活动里面,说真的几百几千个数据啊,手写进数据库不是更麻烦了吗? 于是,备份方法就是写一个crud,让线下的人 ...

  8. MYSQL查询~ 存在一个表而不在另一个表中的数据

    A.B两表,找出ID字段中,存在A表,但是不存在B表的数据.A表总共13w数据,去重后大约3W条数据,B表有2W条数据,且B表的ID字段有索引. 方法一 使用 not in ,容易理解,效率低  ~执 ...

  9. PHP开发环境及搭建

    自学PHP中,很多东西都不熟悉,在此做个记录,方便以后再次搭建PHP环境.这篇文章基本按照原文  ThinkPHP5开发环境安装和配置 ,在此感谢该作者 一.实验目的 1.掌握ThinkPHP5(简称 ...

  10. https的网站使用百度地图的问题

    https的网站使用百度地图,如果你引用的地址没写对的话,加载不出来百度地图,被认为是不安全的JS内容. 引用的地址:http://api.map.baidu.com/api?v=2.0&ak ...