﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-roguishangel-随笔分类-Shell</title><link>http://www.cnitblog.com/roguishangel/category/1408.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 06 Oct 2011 12:08:44 GMT</lastBuildDate><pubDate>Thu, 06 Oct 2011 12:08:44 GMT</pubDate><ttl>60</ttl><item><title>Gentoo里一个rpm2targz的脚本</title><link>http://www.cnitblog.com/roguishangel/archive/2005/11/20/4743.html</link><dc:creator>牙刷</dc:creator><author>牙刷</author><pubDate>Sun, 20 Nov 2005 09:36:00 GMT</pubDate><guid>http://www.cnitblog.com/roguishangel/archive/2005/11/20/4743.html</guid><wfw:comment>http://www.cnitblog.com/roguishangel/comments/4743.html</wfw:comment><comments>http://www.cnitblog.com/roguishangel/archive/2005/11/20/4743.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/roguishangel/comments/commentRss/4743.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/roguishangel/services/trackbacks/4743.html</trackback:ping><description><![CDATA[#!/bin/sh<br>
# Copyright 1997, 1998 Patrick Volkerding, Moorhead, Minnesota USA<br>
# All rights reserved.<br>
#<br>
# Redistribution and use of this script, with or without modification, is<br>
# permitted provided that the following conditions are met:<br>
#<br>
# 1. Redistributions of this script must retain the above copyright<br>
#&nbsp;&nbsp;&nbsp; notice, this list of conditions and the following disclaimer.<br>
#<br>
#&nbsp; THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED<br>
#&nbsp; WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br>
#&nbsp; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.&nbsp; IN NO<br>
#&nbsp; EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,<br>
#&nbsp; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,<br>
#&nbsp; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;<br>
#&nbsp; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,<br>
#&nbsp; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR<br>
#&nbsp; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF<br>
#&nbsp; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br>
#<br>
<br>
if [ "$TMPDIR" = "" ]; then<br>
&nbsp; TMPDIR=/tmp<br>
fi<br>
if [ "$1" = "" ]; then<br>
&nbsp; echo "$0:&nbsp; Converts RPM format to standard GNU tar + GNU zip format."<br>
&nbsp; echo
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(view converted packages with \"less\", install and remove"<br>
&nbsp; echo
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
with \"installpkg\", \"removepkg\", \"pkgtool\", or manually"<br>
&nbsp; echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; with \"tar\")"<br>
&nbsp; echo<br>
&nbsp; echo "Usage:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $0 &lt;file.rpm&gt;"<br>
&nbsp; if [ "`basename $0`" = "rpm2tgz" ]; then<br>
&nbsp;&nbsp;&nbsp; echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Outputs \"file.tgz\")"<br>
&nbsp; else<br>
&nbsp;&nbsp;&nbsp; echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Outputs \"file.tar.gz\")"<br>
&nbsp; fi<br>
&nbsp; exit 1;<br>
fi<br>
for i in $* ; do<br>
&nbsp; if [ ! "$1" = "$*" ]; then<br>
&nbsp;&nbsp;&nbsp; echo "Processing file: $i"<br>
&nbsp; fi<br>
&nbsp; rm -rf $TMPDIR/rpm2targz$$ # clear the way, just in case of mischief<br>
&nbsp; mkdir $TMPDIR/rpm2targz$$<br>
&nbsp; ofn=`basename $i .rpm`.cpio<br>
&nbsp; dd ibs=`rpmoffset &lt; $i` skip=1 if=$i 2&gt; /dev/null | gzip -dc &gt; $TMPDIR/rpm2targz$$/$ofn<br>
&nbsp; ( cd $TMPDIR/rpm2targz$$<br>
&nbsp;&nbsp;&nbsp; cpio --extract --preserve-modification-time --make-directories &lt; $ofn 1&gt; /dev/null 2&gt; /dev/null<br>
&nbsp;&nbsp;&nbsp; rm -f $ofn<br>
&nbsp;&nbsp;&nbsp; find . -type d -perm 700 -exec chmod 755 {} \;<br>
&nbsp;&nbsp;&nbsp; tar cf - . ) &gt; `basename $i .rpm`.tar<br>
&nbsp;&nbsp;&nbsp; gzip -9 `basename $i .rpm`.tar<br>
&nbsp;&nbsp;&nbsp; if [ "`basename $0`" = "rpm2tgz" ]; then<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mv `basename $i .rpm`.tar.gz `basename $i .rpm`.tgz<br>
&nbsp;&nbsp;&nbsp; fi<br>
&nbsp; ( cd $TMPDIR ; rm -rf rpm2targz$$ )<br>
done<img src ="http://www.cnitblog.com/roguishangel/aggbug/4743.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/roguishangel/" target="_blank">牙刷</a> 2005-11-20 17:36 <a href="http://www.cnitblog.com/roguishangel/archive/2005/11/20/4743.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>