Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Новые утилиты для чистки distfil'ов !!!
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
bobr[x3]
Tux's lil' helper
Tux's lil' helper


Joined: 28 Nov 2003
Posts: 141
Location: Vladivostok, Russia

PostPosted: Sun May 15, 2005 9:34 am    Post subject: Новые утилиты для чистки distfil'ов ! Reply with quote

Вот, от нефиг делать набросал утилитки для чистки дистфайлов от ненужного мусора.

Писаны они на питоне, соответственно он требуется. Больше не надо ничего.

Пока что код выложить некуда, поэтому просто прикрепляю. Помогите потестить это дело. Предложения и пожелания приветствуются.

Пакет состоит из друх скриптов:

distfiles-gendigest.py:
Генерит дайджест для всех пакетов из дерева портежей.
Code:
usage: distfiles-gendigest.py [options]

options:
  -h, --help            show this help message and exit
  -dOUT, --digest=OUT   Generated digest file name
  -pDIRS, --portdirs=DIRS
                        Colon separated list of portage directories
  -s, --silent          Produce no output
  -v, --verbose         Produce more output

- OUT по умолчанию равен /var/db/distfiles/digest .
- DIRS по умолчанию равер /usr/portage:/usr/local/portage .

distfiles-clean.py:
Ищет (и удалает) ненужные или неправильные дистфайлы.
Code:
usage: distfiles-clean.py [options]
options:
  -h, --help            show this help message and exit
  -dIN, --digest=IN     Digest file name
  -pDIR, --distdir=DIR  Distfiles directory
  --delete              Remove files
  -s, --silent          Produce no output
  --size                Perform size checking
  --sum                 Perform ckecksum checking (slow)
  -v, --verbose         Produce more output

- IN по умолчанию равен /var/db/distfiles/digest .
- DIR по умолчанию равер /usr/portage/distfiles .

distfiles-gendigest.py:
Code:

#!/usr/bin/python

from glob import glob
from string import split
from sys import *
from optparse import OptionParser

parser = OptionParser()
parser.add_option("-d", "--digest",
                  action = "store", dest = "out_file_name",
                  default = "/var/db/distfiles/digest",
                  metavar = "OUT", help = "Generated digest file name")
parser.add_option("-p", "--portdirs",
                  action = "store", dest = "portage_dirs",
                  default = "/usr/portage:/usr/local/portage",
                  metavar = "DIRS", help = "Colon separated list of portage directories")
parser.add_option("-s", "--silent",
                  action = "store_true", dest = "silent",
                  default=False,
                  help = "Produce no output")
parser.add_option("-v", "--verbose",
                  action = "store_true", dest = "verbose",
                  default = False,
                  help = "Produce more output")
ops, args = parser.parse_args(argv[1:])

def get_columns():
    from commands import getoutput
    size = getoutput("stty size").split()
    columns = size[1]
    return int(columns)

red_bullet    = "\033[01;31m * \033[00m"
yellow_bullet = "\033[01;33m * \033[00m"
green_bullet  = "\033[01;32m * \033[00m"
good          = "\033[A\033[" + str(get_columns()-7) + "G\033[01;34m[\033[01;32m  ok  \033[01;34m]\033[00m\n"
warning       = "\033[A\033[" + str(get_columns()-7) + "G\033[01;34m[\033[01;33m  !!  \033[01;34m]\033[00m\n"
error         = "\033[A\033[" + str(get_columns()-7) + "G\033[01;34m[\033[01;31m  !!  \033[01;34m]\033[00m\n"

fine = True
distfile_names = []
distfile_sizes = []
distfile_sums = []
distfile_sum_algs = []
out_file = open(ops.out_file_name, "w")
if not ops.silent and not ops.verbose:
    stdout.write(green_bullet + "Generating distfiles digest (this may take few minutes)\n")
    stdout.flush()
for portage_dir in split(ops.portage_dirs, ':'):
    for package_dir in glob(portage_dir + "/*-*/*"):
        if ops.verbose and not ops.silent:
            fine = True
            stdout.write(green_bullet + "Processing package \033[01;01m")
            stdout.write(split(package_dir, "/")[-2] + '/')
            stdout.write(split(package_dir, "/")[-1] + "\033[00m\n")
        for digest_file_name in glob(package_dir + "/files/digest-*"):
            in_file = open(digest_file_name, 'r')
            for digest in in_file.readlines():
                distfile = digest.split()
                if len(distfile) != 4:
                    continue
                distfile_name = distfile[2]
                distfile_size = int(distfile[3])
                distfile_sum = distfile[1]
                distfile_sum_alg = distfile[0]
                for i in range(len(distfile_names)):
                    if distfile_name == distfile_names[i]:
                        if (distfile_size != distfile_sizes[i]) or (distfile_size != distfile_sizes[i]):
                            if not ops.silent:
                                fine = False
                                stdout.write(yellow_bullet + "File \033[01;01m" + distfile_name + "\033[00m ")
                                stdout.write("has \033[00;33mconflicting digests\033[00m\n")
                                stdout.write(warning)
                            continue
                        else:
                            break
                else:
                    distfile_names.append(distfile_name)
                    distfile_sizes.append(distfile_size)
                    distfile_sums.append(distfile_sum)
                    distfile_sum_algs.append(distfile_sum_alg)
                    out_file.write(distfile_sum_alg + " ")
                    out_file.write(distfile_sum + " ")
                    out_file.write(distfile_name + " ")
                    out_file.write(str(distfile_size) + "\n")
            in_file.close()
        if ops.verbose and not ops.silent and fine:
            stdout.write(good)
if not ops.silent and not ops.verbose and fine:
    stdout.write(good)

out_file.close()

distfiles-clean.py
Code:

#!/usr/bin/python

from glob import glob
from optparse import OptionParser
from os import listdir
from os import remove
from os import stat
from string import split
from sys import *
from time import sleep

parser = OptionParser()
parser.add_option("-d", "--digest",
                  action = "store", dest = "in_file_name",
                  default = "/var/db/distfiles/digest",
                  metavar = "IN", help = "Digest file name")
parser.add_option("-p", "--distdir",
                  action = "store", dest = "distfiles_dir",
                  default = "/usr/portage/distfiles",
                  metavar = "DIR", help = "Distfiles directory")
parser.add_option("", "--delete",
                  action = "store_true", dest = "delete",
                  default = False,
                  help = "Remove files")
parser.add_option("-s", "--silent",
                  action = "store_true", dest = "silent",
                  default=False,
                  help = "Produce no output")
parser.add_option("", "--size",
                  action = "store_true", dest = "checksize",
                  default=False,
                  help = "Perform size checking")
parser.add_option("", "--sum",
                  action = "store_true", dest = "checksum",
                  default=False,
                  help = "Perform ckecksum checking (slow)")
parser.add_option("-v", "--verbose",
                  action = "store_true", dest = "verbose",
                  default = False,
                  help = "Produce more output")
ops, args = parser.parse_args(argv[1:])

def get_columns():
    from commands import getoutput
    size = getoutput("stty size").split()
    columns = size[1]
    return int(columns)

red_bullet    = "\033[01;31m * \033[00m"
yellow_bullet = "\033[01;33m * \033[00m"
green_bullet  = "\033[01;32m * \033[00m"
good          = "\033[" + str(get_columns()-7) + "G\033[01;34m[\033[01;32m  ok  \033[01;34m]\033[00m\n"
error         = "\033[" + str(get_columns()-7) + "G\033[01;34m[\033[01;31m  !!  \033[01;34m]\033[00m\n"
warning       = "\033[" + str(get_columns()-7) + "G\033[01;34m[\033[01;33m  !!  \033[01;34m]\033[00m\n"


distfile_names = []
distfile_sizes = []
distfile_sums = []
distfile_sum_algs = []
distfile_delete_names = []
distfiles_delete_size = 0
if not ops.silent:
    stdout.write(green_bullet + "Reading distfiles digest")
in_file = open(ops.in_file_name, 'r')
for line in in_file.readlines():
    line = line.split()
    if len(line) == 0:
        break
    distfile_names.append(line[2])
    if ops.checksize:
        distfile_sizes.append(int(line[3]))
    if ops.checksum:
        distfile_sums.append(line[1])
        distfile_sum_algs.append(line[0])
in_file.close()
if not ops.silent:
    stdout.write(good)
    stdout.write(green_bullet + "Looking for extra files\n")
for distfile_name in listdir(ops.distfiles_dir):
    if distfile_name in (".locks", "cvs-src"):
        continue
    distfile_size = stat(ops.distfiles_dir + "/" + distfile_name).st_size
    distfile_unknown = True
    distfile_wrong_size = ops.checksize
    distfile_wrong_sum = ops.checksum
    if ops.verbose and not ops.silent:
        stdout.write(yellow_bullet + "File\033[01;01m " + distfile_name + "\033[00m ")
    for i in range(len(distfile_names)):
        if distfile_name == distfile_names[i]:
            distfile_unknown = False
            if distfile_wrong_size:
                distfile_size = stat(ops.distfiles_dir + "/" + distfile_name).st_size
                if distfile_size == distfile_sizes[i]:
                    distfile_wrong_size = False
                else:
                    continue
            if distfile_wrong_sum:
                if distfile_sum_algs[i] == "MD5":
                    import md5
                    distfile_sum = md5.new()
                    distfile = open(ops.distfiles_dir + "/" + distfile_name, 'r')
                    for line in distfile.readlines():
                        distfile_sum.update(line)
                    distfile.close()
                    if distfile_sum.hexdigest() == distfile_sums[i]:
                        distfile_wrong_sum = False
                    else:
                        continue
                else:
                    exit(1)
            break
        else:
            continue
    distfile_delete = distfile_unknown or distfile_wrong_size or distfile_wrong_sum
    if distfile_delete:
        distfile_delete_names.append(distfile_name)
        distfiles_delete_size += distfile_size
        if not ops.silent:
            if not ops.verbose:
                stdout.write(yellow_bullet + "File\033[01;01m " + distfile_name + "\033[00m ")
            if distfile_unknown:
                stdout.write("is \033[00;33munknown\033[00m ")
            if distfile_wrong_size:
                stdout.write("has \033[00;31mwrong size\033[00m ")
            if distfile_wrong_sum:
                stdout.write("has \033[00;31mwrong ckecksum\033[00m ")
            stdout.write(warning)
    else:
        if ops.verbose:
            stdout.write("\033[00;32mmatches\033[00m ")
            stdout.write(good)
if not ops.silent:
    if len(distfile_delete_names)  == 0:
        stdout.write(yellow_bullet + "No files to be deleted\n")
    else:
        stdout.write(yellow_bullet + "Total size of files to be deleted: \033[01;34m")
        stdout.write(str(distfiles_delete_size / 1024**2) + " Mb\033[00m in \033[01;34m")
        stdout.write(str(len(distfile_delete_names)) + "\033[00m files\n")

if ops.delete:
    if not ops.silent:
        stdout.write(green_bullet + "preparing to remove distfiles")
        stdout.write("\n")
        stdout.write("\033[01;31m*** WARNING ***\033[00m : ")
        stdout.write("IMPOTRANT FILES CAN BE REMOVED DURING DISTFILES CLEANUP\n")
        stdout.write("\033[01;31m*** WARNING ***\033[00m : ")
        stdout.write("DUE TO WRONG DIGESTS IN PORTAGE TREE\n")
        stdout.write("\n")
        stdout.write(">>> Waiting 10 seconds before starting...\n")
        stdout.write(">>> (Control-C) to abort...\n")
        stdout.write(">>> Removing distfiles in ")
        stdout.flush()
        for i in range(10, 0, -1):
            stdout.write("\033[01;31m" + str(i) + "\033[00m ")
            stdout.flush()
            sleep(1)
        stdout.write("\n\n")
    for distfile_delete_name in distfile_delete_names:
        try:
            if ops.verbose and not ops.silent:
                stdout.write(green_bullet + "Removing file\033[01;01m " + distfile_delete_name)
            remove(ops.distfiles_dir + "/" + distfile_delete_name)
            if ops.verbose and not ops.silent:
                stdout.write(good)
        except:
            if not ops.silent:
                if not ops.verbose:
                    stdout.write(green_bullet + "Removing file \033[01;01m " + distfile_delete_name)
                stdout.write(error)   
Back to top
View user's profile Send private message
dish
Apprentice
Apprentice


Joined: 19 Dec 2004
Posts: 266
Location: Moscow, Russia

PostPosted: Tue May 24, 2005 2:02 pm    Post subject: Reply with quote

Тестил на домашнем роутере. (2.6.11-gentoo-r3)
distfiles-gendigest.py ругается на
Code:
* Generating distfiles digest (this may take few minutes)
 * File lmgrd.Z has conflicting digests                                 [  !!  ]
 * File lmutil.Z has conflicting digests                                [  !!  ]
 * File enduser.pdf has conflicting digests                             [  !!  ]
 * File sunbird-i686-linux-gtk2+xft.tar.gz has conflicting digests      [  !!  ]
 * File docbkx412.zip has conflicting digests                           [  !!  ]
 * File mssqlserver.tar has conflicting digests                         [  !!  ]
 * File p4d has conflicting digests                                     [  !!  ]
 * File p4web has conflicting digests                                   [  !!  ]
 * File p4ftpd has conflicting digests                                  [  !!  ]
 * File p4d.1 has conflicting digests                                   [  !!  ]
 * File p4d has conflicting digests                                     [  !!  ]
 * File p4web has conflicting digests                                   [  !!  ]
 * File p4ftpd has conflicting digests                                  [  !!  ]
 * File p4d.1 has conflicting digests                                   [  !!  ]
 * File p4 has conflicting digests                                      [  !!  ]
 * File p4 has conflicting digests                                      [  !!  ]
 * File p4 has conflicting digests                                      [  !!  ]
 * File p4p has conflicting digests                                     [  !!  ]
 * File p4p has conflicting digests                                     [  !!  ]
 * File p4p has conflicting digests                                     [  !!  ]
 * File p4d has conflicting digests                                     [  !!  ]
 * File p4web has conflicting digests                                   [  !!  ]
 * File p4ftpd has conflicting digests                                  [  !!  ]
 * File p4d.1 has conflicting digests                                   [  !!  ]
 * File qmail-maildir++.patch has conflicting digests                   [  !!  ]
 * File nxserver-1.3.0-25.i386.rpm has conflicting digests              [  !!  ]
 * File nxserver-1.3.2-25.i386.rpm has conflicting digests              [  !!  ]
 * File nxserver-1.3.2-25.i386.rpm has conflicting digests              [  !!  ]
 * File nxserver-1.3.0-25.i386.rpm has conflicting digests              [  !!  ]
 * File nxserver-1.3.0-25.i386.rpm has conflicting digests              [  !!  ]
 * File nxserver-1.3.2-25.i386.rpm has conflicting digests              [  !!  ]
 * File nxserver-1.3.2-25.i386.rpm has conflicting digests              [  !!  ]
 * File nxserver-1.3.2-25.i386.rpm has conflicting digests              [  !!  ]
 * File nxserver-1.3.2-25.i386.rpm has conflicting digests              [  !!  ]
 * File GMT_share.tar.bz2 has conflicting digests                       [  !!  ]
 * File GMT_full.tar.bz2 has conflicting digests                        [  !!  ]
 * File GMT_high.tar.bz2 has conflicting digests                        [  !!  ]
 * File triangle.tar.bz2 has conflicting digests                        [  !!  ]
 * File PurpleGalaxy.tar.gz has conflicting digests                     [  !!  ]
 * File visor.tar.gz has conflicting digests                            [  !!  ]
 * File PurpleGalaxy.tar.gz has conflicting digests                     [  !!  ]
 * File visor.tar.gz has conflicting digests                            [  !!  ]
 * File PurpleGalaxy.tar.gz has conflicting digests                     [  !!  ]
 * File visor.tar.gz has conflicting digests                            [  !!  ]
 * File PurpleGalaxy.tar.gz has conflicting digests                     [  !!  ]
 * File visor.tar.gz has conflicting digests   


Практически все из этого нормально стоит и работает.
Части этого хозяйства конечно нет портежах (pdf-файл и mssqlserver, например), но у меня для них есть ebuild (лежит в PORTDIR_OVERLAY). И чем провинилась тема PurpleGalaxy?
Роутер также выполняет функцию gentoo-mirror, поэтому запускать второй файл я боюсь... Неохота заново дисты выкачивать, т.к. скорость не более 200 кбит/сек... Насколько я понял, второй файл сотрет все эти конфликтные дисты?
_________________
Contrary to popular belief, UNIX is user-friendly. It just happens to be very selective about who it decides to make friends with. A. Haiut.


Last edited by dish on Tue May 24, 2005 2:32 pm; edited 1 time in total
Back to top
View user's profile Send private message
dish
Apprentice
Apprentice


Joined: 19 Dec 2004
Posts: 266
Location: Moscow, Russia

PostPosted: Tue May 24, 2005 2:04 pm    Post subject: Reply with quote

Пожелания:
добавь в первый скрипт "mkdir /var/db/distfiles"
Ну и можно проверку на то, есть он (каталог) или нет.
При первом запуске удобнее сразу скриптом создавать.
_________________
Contrary to popular belief, UNIX is user-friendly. It just happens to be very selective about who it decides to make friends with. A. Haiut.
Back to top
View user's profile Send private message
bobr[x3]
Tux's lil' helper
Tux's lil' helper


Joined: 28 Nov 2003
Posts: 141
Location: Vladivostok, Russia

PostPosted: Tue May 24, 2005 11:00 pm    Post subject: Reply with quote

С пожеланиями согласен, реализую.

Ругается (а точнее warning'и делает) он на то, что один и тот же дистфайл (имя файла) указан в двух и более дайджестах но с разной контрольной суммой и/или размером файла. Это происходит, если версия файла не отражена в имени (как в p4d) или отражена неправильно. На самом деле он сохраняет все дайджесты, так что файл, контрольная сумма или размер которого софпадут хотя бы с одним дайджестом удален не будет.

Вопрос на засыпку: Где бы разместить эту чудные утилиты? А то ведь распространять программы copy-past'ом большой глюк. Своего сайта у меня щас нету, а с sourceforg'ем связываться ломает.
Back to top
View user's profile Send private message
dish
Apprentice
Apprentice


Joined: 19 Dec 2004
Posts: 266
Location: Moscow, Russia

PostPosted: Tue May 24, 2005 11:11 pm    Post subject: Reply with quote

Насчет разместить... Попробую договориться с gentoo.ru.
Если напишешь ebuild для тулзы -- вообще молоток.

А из личных пожеланий -- классная идея! Продолжай в том же духе!
_________________
Contrary to popular belief, UNIX is user-friendly. It just happens to be very selective about who it decides to make friends with. A. Haiut.
Back to top
View user's profile Send private message
dish
Apprentice
Apprentice


Joined: 19 Dec 2004
Posts: 266
Location: Moscow, Russia

PostPosted: Tue May 24, 2005 11:14 pm    Post subject: Reply with quote

Судя по твоему ответу, можно считать, что у меня на роутере тулза работает правильно.
Попробую завтра на нескольких рабочих станциях запустить.
_________________
Contrary to popular belief, UNIX is user-friendly. It just happens to be very selective about who it decides to make friends with. A. Haiut.
Back to top
View user's profile Send private message
bobr[x3]
Tux's lil' helper
Tux's lil' helper


Joined: 28 Nov 2003
Posts: 141
Location: Vladivostok, Russia

PostPosted: Tue May 24, 2005 11:28 pm    Post subject: Reply with quote

Вообще-то эти тулзы только первыя часть работы над пакетом distfiles-utils. Пакет этот будет предназначен для распространения сборников distfil'ов (а может и скомпиленых пакетов) на сменных носителях (CD, DVD, HDD). Будут в нем утилиты не только для чистки дистфайлов, но и для составления этих самых сборников, а также для получения дистфайлов с этих носителей (типа "вставте Gentoo Distfiles 2005.0.1 диск 1") во время emerge'а. Это здорово должно помочь тем, у кого нет жирного канала, но есть друзья друзей с таким жирным каналом.
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Wed May 25, 2005 4:25 am    Post subject: Reply with quote

bobr[x3] wrote:
Вообще-то эти тулзы только первыя часть работы над пакетом distfiles-utils. Пакет этот будет предназначен для распространения сборников distfil'ов (а может и скомпиленых пакетов) на сменных носителях (CD, DVD, HDD). Будут в нем утилиты не только для чистки дистфайлов, но и для составления этих самых сборников, а также для получения дистфайлов с этих носителей (типа "вставте Gentoo Distfiles 2005.0.1 диск 1") во время emerge'а. Это здорово должно помочь тем, у кого нет жирного канала, но есть друзья друзей с таким жирным каналом.


Респект, только трабла одна есть, репозиторий-то меняется каждый божий день, а то и несколько раз неа дню :(
Это-ж надо следить неустанно и исошки делать, а там вроде просьба была, что не чаще раза в день :?
Плюс, есть случаи глюков при обновлении, когда приходится ждать их исправлений и синкаться вновь.
Похоже, что проект не легкий, но Удачи, ибо будет ОЧЕНЬ полезен многим.
Back to top
View user's profile Send private message
kon
Apprentice
Apprentice


Joined: 05 Mar 2004
Posts: 156
Location: Russia. Saint-Petersburg

PostPosted: Wed May 25, 2005 7:25 am    Post subject: Reply with quote

2 bobr[x3]
Кинь мне на почту assi at assi dot ru и я выложу с адресом типа www.assi.ru/bobr
Back to top
View user's profile Send private message
bobr[x3]
Tux's lil' helper
Tux's lil' helper


Joined: 28 Nov 2003
Posts: 141
Location: Vladivostok, Russia

PostPosted: Wed May 25, 2005 11:29 pm    Post subject: Reply with quote

2 kon: Ага, вечерком закину.

2 ManJak: Не каждый день, а каждый месяц-два.
Back to top
View user's profile Send private message
bobr[x3]
Tux's lil' helper
Tux's lil' helper


Joined: 28 Nov 2003
Posts: 141
Location: Vladivostok, Russia

PostPosted: Thu May 26, 2005 11:16 pm    Post subject: Reply with quote

Товарищи господа, если вы считаете проект distfiles-utils действительно полезным для многих, то я заведу его на sourceforg'e и прошу всех заинтересованных лиц принять в нем посильное участие.
Back to top
View user's profile Send private message
mobILL
Tux's lil' helper
Tux's lil' helper


Joined: 02 Feb 2005
Posts: 129
Location: Одинцово

PostPosted: Fri May 27, 2005 7:47 pm    Post subject: Reply with quote

bobr[x3] wrote:
Товарищи господа, если вы считаете проект distfiles-utils действительно полезным для многих, то я заведу его на sourceforg'e и прошу всех заинтересованных лиц принять в нем посильное участие.


Полезен однозначно, особенно для тех у кого нету инета и он берёт дистр у друзей. У меня уж накопилось около 30 гигов и больше половины нафиг не нужно.
Back to top
View user's profile Send private message
dish
Apprentice
Apprentice


Joined: 19 Dec 2004
Posts: 266
Location: Moscow, Russia

PostPosted: Fri May 27, 2005 9:52 pm    Post subject: Reply with quote

Однозначно полезен!
Как заведешь -- кидай ссылку :)
_________________
Contrary to popular belief, UNIX is user-friendly. It just happens to be very selective about who it decides to make friends with. A. Haiut.
Back to top
View user's profile Send private message
dish
Apprentice
Apprentice


Joined: 19 Dec 2004
Posts: 266
Location: Moscow, Russia

PostPosted: Fri May 27, 2005 10:28 pm    Post subject: Reply with quote

Дальнейшее тестирование:

Запустил все на том же сервере distfiles-clean.py

Code:
 * Reading distfiles digest                                             [  ok  ]
 * Looking for extra files
 * File capi4linux-2004.4.5-0.i586.rpm is unknown                       [  !!  ]
 * File genpatches-2.6-11.03-base.tar.bz2 is unknown                    [  !!  ]
 * File genpatches-2.6-11.03-extras.tar.bz2 is unknown                  [  !!  ]
 * File linux-2.6.11.2.tar.bz2 is unknown                               [  !!  ]
 * File usb.ids-20030906.gz is unknown                                  [  !!  ]
 * File gnuconfig-20050223.tar.bz2 is unknown                           [  !!  ]
 * File genpatches-2.6-11.09-extras.tar.bz2 is unknown                  [  !!  ]
 * File genpatches-2.6-11.09-base.tar.bz2 is unknown                    [  !!  ]
 * File DB_File-1.807.tar.gz is unknown                                 [  !!  ]
 * File MPlayer-1.0pre5try2.tar.bz2 is unknown                          [  !!  ]
 * File X11R6.8.0-src1.tar.gz is unknown                                [  !!  ]
 * File X11R6.8.0-src2.tar.gz is unknown                                [  !!  ]
 * File X11R6.8.0-src3.tar.gz is unknown                                [  !!  ]
 * File X11R6.8.0-src4.tar.gz is unknown                                [  !!  ]
 * File X11R6.8.0-src5.tar.gz is unknown                                [  !!  ]
 * File acpi4asus-0.27.tar.bz2 is unknown                               [  !!  ]
 * File all-20050115.tar.bz2 is unknown                                 [  !!  ]
 * File alsa-driver-1.0.6a.tar.bz2 is unknown                           [  !!  ]
 * File alsa-driver-1.0.8rc1.tar.bz2 is unknown                         [  !!  ]
 * File alsa-lib-1.0.6.tar.bz2 is unknown                               [  !!  ]
 * File arson-0.9.8beta2.tar.bz2 is unknown                             [  !!  ]
 * File arts-1.3.1.tar.bz2 is unknown                                   [  !!  ]
 * File bin86-0.16.13.tar.gz is unknown                                 [  !!  ]
 * File binutils-2.15-uclibc-patches-1.0.tar.bz2 is unknown             [  !!  ]
 * File binutils-2.15.90.0.1-patches-1.3.tar.bz2 is unknown             [  !!  ]
 * File binutils-2.15.92.0.2-patches-1.2.tar.bz2 is unknown             [  !!  ]
 * File clamav-0.82.tar.gz is unknown                                   [  !!  ]
 * File coreutils-5.2.1-patches-0.9.tar.bz2 is unknown                  [  !!  ]
 * File enigmail-0.89.6.tar.gz is unknown                               [  !!  ]
 * File ffmpeg-0.4.7.tar.gz is unknown                                  [  !!  ]
 * File file-4.10.tar.gz is unknown                                     [  !!  ]
 * File gail-1.8.0.tar.bz2 is unknown                                   [  !!  ]
 * File gdb-6.0.tar.bz2 is unknown                                      [  !!  ]
 * File genpatches-2.6-11.04-base.tar.bz2 is unknown                    [  !!  ]
 * File genpatches-2.6-11.04-extras.tar.bz2 is unknown                  [  !!  ]
 * File genpatches-2.6-11.05-base.tar.bz2 is unknown                    [  !!  ]
 * File genpatches-2.6-11.05-extras.tar.bz2 is unknown                  [  !!  ]
 * File genpatches-2.6-7.46-base.tar.bz2 is unknown                     [  !!  ]
 * File glext.h-20040830.bz2 is unknown                                 [  !!  ]
 * File glib-2.4.7.tar.bz2 is unknown                                   [  !!  ]
 * File gnome-panel-2.8.0.1.tar.bz2 is unknown                          [  !!  ]
 * File gtkhtml-3.2.3.tar.bz2 is unknown                                [  !!  ]
 * File gzip_1.3.5.orig.tar.gz is unknown                               [  !!  ]
 * File hardened-patches-2.6-10.3.tar.bz2 is unknown                    [  !!  ]
 * File ipw2200-0.18.tgz is unknown                                     [  !!  ]
 * File ipw2200-1.0.1.tgz is unknown                                    [  !!  ]
 * File ipw2200-1.0.2.tgz is unknown                                    [  !!  ]
 * File ipw2200-fw-2.1.tgz is unknown                                   [  !!  ]
 * File k3b-0.11.18.tar.bz2 is unknown                                  [  !!  ]
 * File klamav-0.09.4.tar.bz2 is unknown                                [  !!  ]
 * File libgnomecups-0.1.8.tar.bz2 is unknown                           [  !!  ]
 * File libpng-1.2.7.tar.bz2 is unknown                                 [  !!  ]
 * File libtool-1.5.10.tar.gz is unknown                                [  !!  ]
 * File libtool-1.5.2.tar.gz is unknown                                 [  !!  ]
 * File libwnck-2.8.0.1.tar.bz2 is unknown                              [  !!  ]
 * File libxml2-2.6.15.tar.bz2 is unknown                               [  !!  ]
 * File man-pages-1.70.tar.bz2 is unknown                               [  !!  ]
 * File mozilla-launcher-1.22.bz2 is unknown                            [  !!  ]
 * File mozilla-launcher-1.23.bz2 is unknown                            [  !!  ]
 * File mozilla-source-1.7.6.tar.bz2 is unknown                         [  !!  ]
 * File mplayer-1.0_pre5-alsa-gui.patch.tar.bz2 is unknown              [  !!  ]
 * File nasm-0.98.38.tar.bz2 is unknown                                 [  !!  ]
 * File portage-2.0.51-r15.tar.bz2 is unknown                           [  !!  ]
 * File portage-2.0.51-r3.tar.bz2 is unknown                            [  !!  ]
 * File putty-0.56.tar.gz is unknown                                    [  !!  ]
 * File slocate-2.7-uclibc-sl_fts.patch is unknown                      [  !!  ]
 * File squid-2.5.STABLE9-patches-20050326.tar.gz is unknown            [  !!  ]
 * File taglib-1.2.tar.gz is unknown                                    [  !!  ]
 * File tiff-3.7.0.tar.gz is unknown                                    [  !!  ]
 * File urw-fonts-1.0.7pre40-src.tar.bz2 is unknown                     [  !!  ]
 * File vmware-any-any-update89.tar.gz is unknown                       [  !!  ]
 * File wine-20040716-fake_windows.tar.bz2 is unknown                   [  !!  ]
 * File wine-20040716-misc.tar.bz2 is unknown                           [  !!  ]
 * File xmms-1.2.10-gentoo-patches-1.0.tar.bz2 is unknown               [  !!  ]
 * File xmms-mad-0.7.tar.gz is unknown                                  [  !!  ]
 * File xorg-x11-6.8.0-files-0.4.tar.bz2 is unknown                     [  !!  ]
 * File xorg-x11-6.8.0-files-0.7.tar.bz2 is unknown                     [  !!  ]
 * File xorg-x11-6.8.0-patches-0.2.11.3.tar.bz2 is unknown              [  !!  ]
 * File xorg-x11-6.8.0-patches-0.2.2.1.tar.bz2 is unknown               [  !!  ]
 * File xterm-196.tgz is unknown                                        [  !!  ]
 * File xterm-201.tgz is unknown                                        [  !!  ]
 * File XWine-0.3.2_en.tar.gz is unknown                                [  !!  ]
 * File avidemux-2.0.38_rc2-r1-patches.tar.bz2 is unknown               [  !!  ]
 * File avidemux-2.0.38rc2b.tar.gz is unknown                           [  !!  ]
 * File matplotlib-0.64.tar.gz is unknown                               [  !!  ]
 * File patch-2.6.12-rc1.bz2 is unknown                                 [  !!  ]
 * File patch-2.6.12-rc2-nitro1.bz2 is unknown                          [  !!  ]
 * File software-suspend-2.1.8.7-for-2.6.12-rc1.tar.bz2 is unknown      [  !!  ]
 * File fbsplash-0.9.2-2.6.12-rc1.patch is unknown                      [  !!  ]
 * File civ2rus.zip is unknown
 * Total size of files to be deleted: 233 Mb in 90 files


Из "левых" файлов закинул в дисты civ2rus.zip. Предварительно запускал distfiles-gendigest.py.

Судя по размеру, скрипт удалит только "левый" файл, т.е. все пройдет, как задумано. Вопрос: почему ругается на остальные?
_________________
Contrary to popular belief, UNIX is user-friendly. It just happens to be very selective about who it decides to make friends with. A. Haiut.
Back to top
View user's profile Send private message
dish
Apprentice
Apprentice


Joined: 19 Dec 2004
Posts: 266
Location: Moscow, Russia

PostPosted: Fri May 27, 2005 11:03 pm    Post subject: Reply with quote

Запустил тулзы на своем буке. distfiles-gendigest.py ругалась очень много, т.к. на харде гига 3-4 дистов.

distfiles-clean.py выдал:

Code:
 * Reading distfiles digest                                             [  ok  ]
 * Looking for extra files
 * File matplotlib-0.64.tar.gz is unknown                               [  !!  ]
 * Total size of files to be deleted: 1 Mb in 1 files


distfiles-gendigest.py | grep matplotlib
не выдает ничего.
_________________
Contrary to popular belief, UNIX is user-friendly. It just happens to be very selective about who it decides to make friends with. A. Haiut.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum