release判断系统
#!/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判断系统的更多相关文章
- mono 判断系统的网络是否可用
/** * 判断系统的网络是否可用 * @return */ private bool isNetworkConnected() { bool ...
- C# Debug和release判断用法
C# Debug和release判断用法 #if (!DEBUG) Response.Write("DEBUG下运行");#else Response.Write("re ...
- .NET压缩图片保存 .NET CORE WebApi Post跨域提交 C# Debug和release判断用法 tofixed方法 四舍五入 (function($){})(jQuery); 使用VUE+iView+.Net Core上传图片
.NET压缩图片保存 需求: 需要将用户后买的图片批量下载打包压缩,并且分不同的文件夹(因:购买了多个用户的图片情况) 文章中用到了一个第三方的类库,Nuget下载 SharpZipLib 目前用 ...
- C#中判断系统的架构(32位,还是64位)
一种很简单的方法就是根据IntPtr类型的Size属性来判断, //IntPtr.Size在64位为8,在32位为4 public static Boolean Is64Bit() { ) retur ...
- C#判断系统是64位还是32位 支持.net4.0以前的版本
C#判断系统是64位还是32位的时候引用了一串代码,这个代码是从园子里面其他博文中转载过来的,引入自己的项目中发现无法使用,在引用了相应的命名空间之后还是提示: "未能找到类型或命名空间名称 ...
- 判断系统64位(使用GetNativeSystemInfo函数,XP时代就有这个函数了)
判断系统64位 static bool IsWin64 (void) { SYSTEM_INFO si = {0}; typedef void (WINAPI *LPFN_PGNSI)(LPSYSTE ...
- bat 获取管理员权限,判断系统位数,获取当前文件所在目录,regsvr32注册DLL、OCX
1.获取管理员权限 @echo off if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%Syste ...
- 如何判断系统是32位还是64位的linux系统
如何判断系统是32位还是64位的linux系统 某日,需要下载个安装包,忽然忘记了自己的系统是32位还是64位的系统了,一时想不起来怎么查看时32位还是64位,呵呵,随便百度下,就发现有好多方法,这里 ...
- C# 判断系统版本
本文告诉大家如何判断系统是 win7 还是 xp 系统 使用下面代码可以判断 private static readonly Version _osVersion = Environment.OSVe ...
随机推荐
- virtualenv模块安装
依赖包管理模块(virtualenv) virtualenv是Python的虚拟环境,可以在同一台PC隔离不同的python开发环境.virtualenv可以创建一个隔离的python环境(沙盒).使 ...
- 题解 [HNOI2002]DNA分子的最佳比对 (洛谷P2268)
题目传送门 (这道题告诉我:初始化要小心) 有没有一点最长公共子序列的赶脚(口胡) 但我觉得挺像 设 表示匹配到s1的第i位,s2的第j位,则有 的初始化要注意:根据的含义,表示s1[i]一直在匹配空 ...
- kali linux 通过跑包的方式破解wifi密码
1. wlan0开启monitor mode : airmon-ng start wlan0 2. 查看附近的无线网络 : airodump-ng wlan0mon 3. 抓取无线 ...
- 动态时间规整DTW
动态时间规整DTW 1 概述 动态时间规整是一个计算时间序列之间距离的算法,是为了解决语音识别领域中语速不同的情况下如何计算距离相似度的问题. 相对于用经典的欧式距离来计算相似度而言,DTW在数据点个 ...
- 获取jqGrid中选择的行的数据
下面可以获取选择一行的id,如果你选择多行,那下面的id是最后选择的行的id: var id=$(‘#gridTable’).jqGrid(‘getGridParam’,'selrow’); 如果想要 ...
- 常用API(Object、String、StringBuffer、用户登陆注册)
常用API 今日内容介绍 u Object u String u StringBuilder 第1章 Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象 ...
- vue-cli 该如何正确打包iconfont?
其实这种问题应该问google的: got wrong bootstrap font path after building · Issue #166 · vuejs-templates/webpac ...
- sublime text 3 入门技巧与常见问题解决
1. 常见问题 - 解决sublime 窗口栏(UNREGISTERED)(未购买)导致的经常性弹窗 解决方法: 点击Help -> About Sublime Text,查看sublimete ...
- Android 贝塞尔曲线的浅析
博客也开了挺长时间了,一直都没有来写博客,主要原因是自己懒---此篇博客算是给2017年一个好的开始,同时也给2016年画上一个句点,不留遗憾. 那就让我们正式进入今天的主题:贝塞尔曲线. 首先,让我 ...
- JavaScript_5_对象
1. JavaScrip中所有事物都是对象:字符串.数字.日期.等等 2. 在javaScripe中,对象是拥有属性和方法的数据 <!DOCTYPE html> <html> ...