From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Sergey Shilov Organization: DSTSZI To: sisyphus@altlinux.ru Subject: Re: [sisyphus] =?koi8-r?b?9c3OzyDQz97J09TJ1Nggy9zb?= apt-a Date: Fri, 7 May 2004 13:38:46 +0300 User-Agent: KMail/1.6.2 References: <409B4BB5.2080309@mail.ru> In-Reply-To: <409B4BB5.2080309@mail.ru> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit Message-Id: <200405071338.48857.hsv@dstszi.gov.ua> X-Scanner: SBMFilter v.3.1.10-dstszi. Copyright (C) 2000, 2001, 2002, 2003 Dmitry Nezhinsky X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.1.4 Precedence: list Reply-To: hsv@dstszi.gov.ua, ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 May 2004 10:37:23 -0000 Archived-At: List-Archive: В сообщении от 7 Май 2004 11:41 Игорь написал(a): > В апреле обсуждалась тема чистки Вопрос был мой. > предлагаю скрипт, но извиняюсь за стиль - не спец Аналогично. > > !!!! Файлы предварительно переименовываются к именам пакетов > (в обсуждении предлагался скрипт по переименованию) Предлагаемый скрипт делает это сам используя RPM > > Только после этого можно использовать этот, а то вычистит все > что не соответствует правилу формирования имени RPM файла. Этот просто ничего не сделает > > Опробовано на Compact 2.3. + Sisyphus (на 20040505) Тоже опробовано > ___________________________________________________ > Кому страшно - может предварительно отсадить куда нибудь > пакеты _______________________________________________ Очень правильная мысль! Предлагаемый скрипт "натравливался" именно на отсаженный контент. #!/bin/bash # # fformat="%{NAME}-%{VERSION}-%{RELEASE}.%{RHNPLATFORM}.rpm" # pkg_dir="MY cache dir" # pkg_installed=`rpm -qa --queryformat "%{NAME}\\n"` cd $pkg_dir for ipkg in $pkg_installed ; do ipkgfullname=`rpm -q $ipkg` pkg_cached=`find . -iname $ipkg\*` if [ -z "$pkg_cached" ] ; then echo "$ipkg" continue fi echo "" echo "$ipkg ( $ipkgfullname )" echo "---------------------" echo "$pkg_cached" for cpkg in $pkg_cached ; do cpkgex=`rpm -qp $cpkg --queryformat "%{NAME}-%{VERSION}-%{RELEASE}"` nfname=`rpm -qp $cpkg --queryformat $fformat` echo "compare $cpkgex == $ipkgfullname" if [ "$cpkgex" == "$ipkgfullname" ] ; then echo "---> $cpkg aka $nfname " # Чго собственно с пакетом делать # cp $cpkg ./installed/$nfname # mv $cpkg ./installed/$nfname break fi done echo "" done Для поиска пакетов скачаных но не установленных пакетов пользовал другой скрипт #!/bin/bash # # fformat="%{NAME}-%{VERSION}-%{RELEASE}.%{RHNPLATFORM}.rpm" # pkg_dir="MY cache dir" # pkg_dir="/home/hsv/APT/archives" cd $pkg_dir pkg_cached=`ls *.rpm` for pkgfile in $pkg_cached ; do pkgname=`rpm -qp $pkgfile --queryformat "%{NAME}"` nfname=`rpm -qp $pkgfile --queryformat $fformat` if [ -n "`rpm -q $pkgname 2> /dev/null`" ] ; then echo "skip $pkgfile" else mv $pkgfile ./downloaded/$nfname echo "move $pkgfile to ./downloaded as $nfname" fi done С уважением Сергей Шилов