#!/bin/sh## ti processor sdk linux am335x evm /bin/setup-package-install.sh hacking# 说明:# 本文主要对TI的sdk中的setup-package-install.sh脚本进行解读,是为了了解# 其工作机制。## 2016-4-16 深圳 南山平山村 曾剑锋# This distribution contains contributions or derivatives under copyright# as follows:## Copyright (c) 2010, Texas Instruments Incorporated# All rights reserved.## Redistribution and use in source and binary forms, with or without# modification, are permitted provided that the following conditions# are met:# - Redistributions of source code must retain the above copyright notice,# this list of conditions and the following disclaimer.# - Redistributions in binary form must reproduce the above copyright# notice, this list of conditions and the following disclaimer in the# documentation and/or other materials provided with the distribution.# - Neither the name of Texas Instruments nor the names of its# contributors may be used to endorse or promote products derived# from this software without specific prior written permission.## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.cwd=`dirname $0`. $cwd/common.shentry_header() {cat << EOF-------------------------------------------------------------------------------setup package scriptThis script will make sure you have the proper host support packages installedThis script requires administrator priviliges (sudo access) if packages are to be installed.-------------------------------------------------------------------------------EOF}exit_footer() {cat << EOF--------------------------------------------------------------------------------Package verification and installation successfully completed--------------------------------------------------------------------------------EOF}cwd=`dirname $0`. $cwd/common.shentry_headerpackages_to_install="xinetd tftpd nfs-kernel-server minicom build-essential libncurses5-dev autoconf automake"get_host_type host# Starting with Ubuntu 14.04 the package name for uboot-mkimage has changed# to u-boot-toolsif [ "$host" = "trusty" ]; then packages_to_install="$packages_to_install u-boot-tools"else packages_to_install="$packages_to_install uboot-mkimage"ficmd="sudo apt-get install "# 合成需要安装的工具包# Check and only install the missing packagesfor i in $packages_to_install; do is_it_installed=`dpkg-query -l $i 2>/dev/null` if [ "$?" -ne "0" ]; then needs_installation=`echo $needs_installation`" "$i new_cmd=`echo $cmd`" "$i # 每次将需要安装的包加载当前的cmd字符串后面 cmd=$new_cmd fidoneif [ "$needs_installation" = "" ]; then echo "System has required packages!"else echo "System requires packages $needs_installation to be installed" echo "Installation requires you to have administrator priviliges (sudo access) " echo "on your host. Do you have administrator privilieges?" # Force the user to answer. Maybe the user does not want to continue while true; do read -p "Type 'y' to continue or 'n' to exit the installation: " REPLY if [ "$REPLY" = 'y' -o "$REPLY" = 'n' ]; then break; fi done if [ "$REPLY" = 'n' ]; then echo "Installation is aborted by user" exit 1 fi # 执行并安装程序 echo "Performing $cmd" $cmd check_statusfi# Print the exit statement to the consoleexit_footer