你的位置:首页 > 网海拾贝

使用tar命令打包发布文件

2011-07-04 浏览:(1512) 网海拾贝 评论(0)

发布你的程序

有时候发布的文件是一些 lib 或者 firmware 等非源码文件,甚至一次需要更新很多个文件,这个时候基本会利用安装脚本辅助用户安装这些发布和更新,一般的做法是将所有文件整理打包,然后告诉用户如何执行某个命令,就可以顺利安装所需的更新。这样我们就需要准备压缩包,安装脚本和安装文档。

其实我们可以将整个发布集成在一个脚本里面,这样用户拿到就是可执行的脚本,就知道执行这个脚本能够正确安装,当然也可以在脚本里面添加安装文档。

利用 tar 简化发布步骤

这里使用的是 tar 命令的 –apend 功能

-r, --append

append files to the end of an archive

这里以更新 lib 为例: 我们有个文件夹包含所有的 lib 更新,命名为 update

1.首先将所有的更新放在 update 文件夹并打包

2.然后将打包的文件添加在我们的 install.sh 脚本后面

3.可以发布 install.sh 脚本代替所有的发布文件了

代码示例:

tar czvf update.tar.gz update

tar -rf install.sh update.tar.gz

install 脚本要解压这个压缩包,并安装参考 qcom 的发布脚本:

#!/bin/bash
#
# (C) Qualcomm Technologies, Inc.
#
# Usage is subject to the enclosed license agreement

echo
echo The license for this software will now be displayed.
echo You must agree to this license before using this software.
echo
echo -n Press Enter to view the license
read dummy
echo

more << __EOF__
THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY
BINDING AGREEMENT BETWEEN Qualcomm Technologies, Inc. ("LICENSOR") AND
YOU OR THE LEGAL ENTITY YOU REPRESENT ("You" or its possessive, "Your"). BY
TYPING "I ACCEPT" WHERE INDICATED YOU ACKNOWLEDGE THAT YOU HAVE READ THIS
AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.
IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE THE INSTALLATION
PROCESS AND YOU SHALL NOT USE THE SOFTWARE OR RETAIN ANY COPIES OF THE
SOFTWARE OR DOCUMENTATION. ANY USE OR POSSESSION OF THE SOFTWARE BY YOU IS
SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT. IF THE
SOFTWARE IS INSTALLED ON A COMPUTER OWNED BY A CORPORATION OR OTHER LEGAL
ENTITY, THEN YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND
SUCH ENTITY TO THE TERMS AND CONDITIONS OF THIS AGREEMENT.
   1.  Special Definitions
      a.  The term "Android" means the open source mobile platform, software
          stack, operating system, middleware, application programming
          interfaces and mobile applications under the trade-name "Android"
          distributed at Android.com.
      b.  The term "Android Applications" means a software application or
          open-source contribution developed by You, designed to operate with
          Android that does not contain or incorporate any of the Software.
      c.  The term "Authorized Android Enabled Device" means only the device
          identified on the site from which You downloaded the Software.
          The term "Software" means the Licensor's proprietary software and
          libraries in object code form, designed for use on the Authorized
          Android Enabled Device.
      d.  The term "Authorized Android Enabled Device Software" means a
          packaged build for Authorized Android Enabled Devices, consisting
          of files suitable for installation on an Authorized Android Enabled
          Device using a mechanism such as fastboot mode or recovery mode.
   2.  License Grant
      a.  Subject to the terms of this Agreement, Licensor hereby grants to
          You, free of charge, a non-exclusive, non-sublicensable,
          non-transferable, limited copyright license, during the term of
          this Agreement, to download, install and use the Software
          internally in machine-readable (i.e., object code) form and the
          Documentation for non-commercial use on an Authorized Android
          Enabled Device and non-commercial redistribution for academic
          purposes only of a reasonable number of copies of the Authorized
          Android Enabled Device Software (the "Limited Purpose"). You may
          grant your end users the right to use the Software for
          non-commercial purposes on an Authorized Android Enabled Device.
          The license to the Software granted to You hereunder is solely for
          the Limited Purpose set forth in this section, and the Software
          shall not be used for any other purpose.
   3.  Restrictions
      a.  Retention of Rights. The entire right, title and interest in the
          Software shall remain with Licensor and, unless specified in
          writing hereunder, no rights are granted to any of the Software.
          Except for the right to use the Software for the Limited Purpose,
          the delivery of the Software to You does not convey to You any
          intellectual property rights in the Software, including, but not
          limited to any rights under any patent, trademark, copyright, or
          trade secret. Neither the delivery of the Software to You nor any
          terms set forth herein shall be construed to grant to You, either
          expressly, by implication or by way of estoppel, any license under
          any patents or other intellectual property rights covering or
          relating to any other product or invention or any combination of
          the Software with any other product. Any rights not expressly
          granted to You herein are reserved by Licensor.
      b.  No Commercialization or Distribution of the Software and
          Documentation. Except as expressly provided in Section 2 of this
          Agreement, You shall have no right to (i) copy, disclose,
          distribute, publically perform, publically display, transfer,
          alter, modify, translate, disassemble, decompile, reverse engineer,
          or adapt the Software and Documentation, or any portion thereof, or
          create any derivative works based thereon; (ii) rent, lease,
          assign, sublicense, resell, disclose or otherwise transfer the
          Software and Documentation in whole or in part to any third party
          (iii) use the Software and Documentation except for the Limited
          Purpose, (iv) remove or alter any of the copyright or proprietary
          notices contained in any of the Software and Documentation. For the
          purposes of clarity, nothing in this Agreement prohibits You from
          making and distributing Android Applications under commercial or
          non-commercial terms, provided that You shall not contain,
          incorporate, and/or compile the Software or any of its derivative
          works, in whole or in part, into Your Android Applications and/or
          any software/devices created by You or by third parties acting on
          Your behalf. You and any such third party shall comply with all of
          the terms and conditions of this Agreement.
      c.  No Reverse Engineering. Except for any portions of the Software
          provided to You in source code format and except for any third
          party code distributed with the Software that is licensed under
          contrary terms, You will not reverse engineer, disassemble,
          decompile, or translate the Software, or otherwise attempt to
          derive the source code version of the Software, except if and to
          the extent expressly permitted under any applicable law.
      d.  Third Party Software. You agree that Android may contain third
          party software. You agree that you may not distribute such third
          party software for any purpose without appropriate licenses from
          the applicable third party or parties.
      e.  No Transfer or Assignment. You shall not assign any of its rights
          or obligations under this Agreement. Any attempted assignment in
          contravention of this Section shall be void.
      f.  Licensor shall retain all title, ownership and Intellectual
          Property Rights in and to the Software and any derivative thereof.
          "Intellectual Property Rights" shall mean all patent, copyright,
          trade secret, trademark and other proprietary and intellectual
          property rights, including moral rights.
      g.  Neither this Agreement, nor any act by Licensor or its Affiliates
          persuant to this Agreement or relating to the Software (including,
          without limitation, the provision by Licensor or its Affiliates of
          the Software) shall provide to You any license or any other rights
          whatsoever under any patents, trademarks, trade secrets, copyrights
          or any other intellectual property rights of Licensor or its
          Affiliates, except for the copyrights expressly set forth in this
          Agreement. You understand and agree that:
      h.  Neither this Agreement, nor delivery of the Software alone or in
          combination with any Licensor ASIC grants you any right to
          practice, or any other right at all with respect to, any patent of
          Licensor or its Affiliates, and
      i.  A separating license agreement from Qualcomm Incorporated is needed
          to use or practice any patent of Licensor or its Affiliates.
      j.  You agree not to contend in any context that, as a result of the
          provision or use of this software, either Licensor or Affiliate has
          any obligation to extend, or Licensor or any other party has
          obtained any right to, any license, whether express or implied,
          with respect to any patent of Licensor or its Affiliates for any
          purpose. For the purposes of this agreement, "Affiliate" means
          (i) any corporation or any other legal entity that owns, directly
          or indirectly, more than fifty percent (50%) of the shares, equity
          interest or other securities of any entity entitled to vote for
          election of directors (or other managing authority), or (ii) any
          corporation or any other legal entity fifty percent (50%) or more
          of whose shares, equity interest, or other securities entitled to
          vote for election of directors (or other managing authority) is
          owned or controlled by an entity, either directly or indirectly.
   4.  Indemnity
      a.  You agree to indemnify and hold harmless Licensor, Google, and
          their officers, directors, customers, employees and successors and
          assigns (each an "Indemnified Party") against any and all claims,
          demands, causes of action, losses, liabilities, damages, costs and
          expenses, incurred by the Indemnified Party (including but not
          limited to costs of defense, investigation and reasonable
          attorney's fees) arising out of, resulting from or related to
          (i) any software, products, documentation, content, materials or
          derivative works created or developed by You using the Software
          which causes an infringement of any patent, copyright, trademark,
          trade secret, or other property, publicity or privacy rights of any
          third parties arising in any jurisdiction anywhere in the world,
          (ii) the download, distribution, installation, storage, execution,
          use or transfer of such software, products, documentation, content,
          materials or derivative works by any person or entity, and/or
          (iii) any breach of this Agreement by You. If requested by an
          Indemnified Party, You agree to defend such Indemnified Party in
          connection with any third party claims, demands, or causes of
          action resulting from, arising out of or in connection with any of
          the foregoing.
   5.  Limitation of Liability
      a.  TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAWS, UNDER NO
          CIRCUMSTANCES, INCLUDING WITHOUT LIMITATION NEGLIGENCE, SHALL
          LICENSOR, GOOGLE, THEIR AFFILIATES AND/OR ITS DIRECTORS, OFFICERS,
          EMPLOYEES OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
          SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT
          LIMITED TO DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
          INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING
          OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ANY DOWNLOAD,
          INSTALLATION OR USE OF, OR INABILITY TO USE, THE SOFTWARE, EVEN IF
          LICENSOR OR GOOGLE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH
          DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
          EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
          THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
          IN NO EVENT SHALL LICENSOR'S OR GOOGLE'S TOTAL AGGREGATE LIABILITY
          TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
          ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
          INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
          (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
          DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
          THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
          AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
          PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
          PARTIES.
   6.  No Warranty
      a.  LICENSOR AND GOOGLE MAKE NO WARRANTIES, EXPRESS OR IMPLIED, WITH
          RESPECT TO THE SOFTWARE AND DOCUMENTATION PROVIDED UNDER THIS
          AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
          MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST
          INFRINGEMENT, OR ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF
          TRADE USAGE OR OUT OF A COURSE OF DEALING OR COURSE OF PERFORMANCE.
          NOTHING CONTAINED IN THIS AGREEMENT SHALL BE CONSTRUED AS A
          WARRANTY OR REPRESENTATION BY LICENSOR (I) AS TO THE VALIDITY OR
          SCOPE OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT
          AND (II) THAT ANY MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT
          OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF
          OTHERS, AND IT SHALL BE THE SOLE RESPONSIBILITY OF YOU TO MAKE SUCH
          DETERMINATION AS IS NECESSARY WITH RESPECT TO THE ACQUISITION OF
          LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF THIRD
          PARTIES. LICENSOR AND GOOGLE SHALL NOT HAVE ANY OBLIGATION TO
          PROVIDE ANY TECHNICAL SUPPORT OF THE SOFTWARE UNDER THIS AGREEMENT.
   7.  Term and Termination
      a.  This Agreement shall be effective on the date You accept this
          Agreement and shall remain in effect until terminated as provided
          herein. You may terminate the Agreement at any time by deleting and
          destroying all copies of the Software and all related information
          in Your possession or control. This Agreement terminates
          immediately and automatically, with or without notice, if You fail
          to comply with any provision hereof. Additionally, Licensor may at
          any time terminate this Agreement, without cause, upon notice to
          You. Upon termination You must delete or destroy all copies of the
          Software in Your possession, and the license granted to You in this
          Agreement shall terminate. Sections 3, 4, 5, 6 and 8 shall survive
          the termination of this Agreement.
   8.  Miscellaneous
      a.  Governing Law. This Agreement is governed and interpreted in
          accordance with the laws of the State of California without giving
          effect to its conflict of laws provisions. The United Nations
          Convention on Contracts for the International Sale of Goods is
          expressly disclaimed and shall not apply. Any claim arising out of
          or related to this Agreement must be brought exclusively in a
          federal or state court located in Santa Clara County, California
          and You consent to the jurisdiction and venue of such courts.
      b.  Waiver and Severability. The failure of either party to require
          performance by the other party of any provision of this Agreement
          shall not affect the full right to require such performance at any
          time thereafter; nor shall the waiver by either party of a breach
          of any provision of this Agreement be taken or held to be a waiver
          of the provision itself. Severability. If any provision of this
          Agreement is unenforceable or invalid under any applicable law or
          is so held by applicable court decision, such unenforceability or
          invalidity shall not render this Agreement unenforceable or invalid
          as a whole, and such provision shall be changed and interpreted so
          as to best accomplish the objectives of such unenforceable or
          invalid provision within the limits of applicable law or
          applicable court decisions.
      c.  Amendment and Modification. This Agreement and any of its terms and
          provisions may only be amended, modified, supplemented or waived in
          a writing signed by both parties hereto.
      d.  Compliance with Laws. You shall comply with all applicable laws,
          rules, and regulations in connection with its activities under this
          Agreement.
      e.  Entire Agreement. This Agreement completely and exclusively states
          the agreement between You and Licensor regarding this subject
          matter.
__EOF__

if test $? != 0
then
  echo ERROR: Couldn\'t display license file 1>&2
  exit 1
fi

echo

echo -n Type \"I ACCEPT\" if you agree to the terms of the license:\ 
read typed

if test "$typed" != I\ ACCEPT
then
  echo
  echo You didn\'t accept the license. Extraction aborted.
  exit 2
fi

echo

tail -n +315 $0 | tar zxv

if test $? != 0
then
  echo
  echo ERROR: Couldn\'t extract files. 1>&2
  exit 3
else
  echo
  echo Files extracted successfully.
fi
exit 0


  • 发表评论
  • 查看评论
【暂无评论!】

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。