![]() |
#1 |
Пользователь
|
![]()
Вот написал скриптик:
Спойлер
#/bin/bash # Script for cleaning old Debian packaged # Author: Igor Pellinen (Russia) aka Igron aka tmp0000 # First, create file with Packages dpkg-scanpackages . /dev/null > Packages 2>/dev/null # Make temporary directory mkdir temp_dir_with_new_packages # Move actual files to temporary directory for i in `awk '/^Filename:/ {print $2}' Packages`; do test -f $i && mv $i ./temp_dir_with_new_packages/; done # Delete old Debian packages, they are in current directory rm -f ./*.deb # Now, after deleting old packages, we must back actual packages back to the current directory: cd ./temp_dir_with_new_packages/ for i in *.deb; do mv $i ../; done cd ../ # Remove temporary directory and packages files rmdir temp_dir_with_new_packages rm Packages Он занимается тем, что удаляет старые deb-пакеты, если существуют пакеты более новых версий. Сам знаю, что все довольно топорно и неэффективно в плане скорости (создается временная директория, туда перемещаются нужные (актуальные) пакеты, удаляются старые, затем все перемещается назад. Как можно улучшить скорость работы скрипта?
__________________
Думай головой, %username%. |
![]() |
![]() ![]() |
![]() |
#3 |
Местный
|
![]() Код:
#!/bin/bash dpkg-scanpackages . /dev/null > Packages 2>/dev/null ls -1 ./*.deb | sort > old.list awk '/^Filename: / {print $2}' Packages | sort > new.list diff {old,new}.list | grep '^< ' | sed 's/^< //' | xargs rm -f rm -f {old,new}.list ![]() Последний раз редактировалось rmn; 30.05.2007 в 16:03. |
![]() |
![]() ![]() |
Благодарности: 2 |
![]() |
#4 | ||||||||||||
Новичок
|
![]() ![]()
|
||||||||||||
![]() |
![]() ![]() |
![]() |
#5 |
Местный
|
![]()
greiv, если бы он мог это сделать, то не заморачивался бы с написанием скриптов.
![]() Последний раз редактировалось rmn; 29.05.2007 в 17:43. |
![]() |
![]() ![]() |
![]() |
#7 |
Местный
|
![]()
greiv, я внимательно читал, более того - этой фигней занимался уже.
Есть каталог, в него навалена куча deb-пакетов различных версий, например, foo 0.40, foo 0.41, foo 0.41 backported. Пакетов для простоты - 1000 штук по 3-4 версии каждого. Из них в каталоге нужно оставить только "актуальные" пакеты (вроде foo 0.41). dpkg-scanpackages, грубо говоря, выдаёт список "актуальных" пакетов. Задача сводится к тому, чтобы из начального списка вычленить неактуальные, используя шелл. Последний раз редактировалось rmn; 29.05.2007 в 18:56. |
![]() |
![]() ![]() |
![]() |
#8 |
Новичок
|
![]()
rmn, ну цель-то понятна=), раз dpkg-scanpackages такой хороший, что выплевывает список "актуальных" пакетов, то зачем нужна свистопляска с отдельными директориями и перемещениями по тысячу раз... как будто неактуальные нельзя замочиь в том же каталоге
Последний раз редактировалось greiv; 29.05.2007 в 20:08. Причина: неграмотный |
![]() |
![]() ![]() |
![]() |
#11 | ||||||||||||
Местный
|
![]() ![]()
![]() ![]() |
||||||||||||
![]() ![]() |
![]() ![]() |
![]() |
#14 |
Местный
|
![]()
Дануна, я закинул скриптв папку с архивами, запустил, он нахреначил мне новый Packages.gz, о чем и написал в консоли с подробным выводом списка пакетов, которые он включил, а файл gstreamer0.10-plugins-ugly_0.10.4-0ubuntu2_i386, лежащий рядом с gstreamer0.10-plugins-ugly_0.10.5-0ubuntu2_i386 не похерил...
|
![]() ![]() |
![]() ![]() |
![]() |
#15 |
Местный
|
![]()
Frosty, дык .gz надо развернуть предварительно. Либо прямо в скрипте изменить строку так:
Код:
zcat Packages.gz | awk '/^Filename: / {print $2}' | sort > new.list Добавлено через 14 часов 31 минуту Frosty, все-таки решил проверить на себе код ![]() Код:
ls -1 ./*.deb | sort > old.list Последний раз редактировалось rmn; 30.05.2007 в 13:04. Причина: Добавлено сообщение |
![]() |
![]() ![]() |
![]() |
#19 | ||||||||||||||||||||||||||||||||||||
Местный
|
![]() ![]()
![]() Код:
frosty@frosty-desktop:~/Desktop/неозаглавленная папка$ sudo sh "/home/frosty/Desktop/неозаглавленная папка/clean" diff: пропущен операнд после `{old,new}.list' diff: Попробуйте `diff --help' для получения более подробного описания. ![]()
![]()
|
||||||||||||||||||||||||||||||||||||
![]() ![]() |
![]() ![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ищу фильм | Vadim | Поиск | 2372 | 04.01.2018 17:08 |
Загадка | ZyDeHb | На завалинке | 1277 | 22.02.2013 17:37 |
Ударная сила | Exciter | Документальные | 5 | 06.05.2012 20:39 |
Star Wars: The Force Unleashed | Inki | Игровые приставки | 28 | 13.12.2008 13:47 |
Волшебная сила искусства (1970) | kellan | Хорошее, забытое, старое... | 0 | 06.03.2008 23:54 |