|
|
#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, если бы он мог это сделать, то не заморачивался бы с написанием скриптов.
Вообще, чтобы "вкурить" что он хочет автоматизировать, надо примерно знать как устроены и создаются репозитории debian/ubuntu и как там нумеруются версии пакетов.
Последний раз редактировалось 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 | ||||||||||||
|
Местный
|
закоим то создает новый Packzges.gz а пакетов старых не потирает
|
||||||||||||
|
|
|
||||||||||||
|
|
#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, все-таки решил проверить на себе код чтобы 100% работало без собственноручных доводок, нужно подправить строкуКод:
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 |