Кто знает как написать скрипт для переименования deb пакетов по имени с

Tags:

Кто сможет помочь, а то у меня много пакетов, которых нужно мне переименовать…

Аноним на lafox.net

Аноним на lafox.net меня ShprotX понял с полу слова и результат просто моменто море --- http://lafox.net/support/index.php?act=Attach&type=post&id=5248

только

только просмотрев код, понял, что имелось в виду.
вот код:

#!/usr/bin/python
import os
import sys

pkg_name_valname = 'Package: '
pkg_version_valname = 'Version: '
pkg_arch_valname = 'Architecture: '

def get_value(line, valname):
  i = line.find(valname)
  if i != -1:
    return line[i+len(valname):-1]
  else:
    return None

def main(args):
  for pkg_filename in args:
    pkg_name = None
    pkg_version = None
    pkg_arch = None
    dpkg_pipe = os.popen("dpkg-deb -I %s" % pkg_filename)
    lines = dpkg_pipe.readlines()
    for line in lines:
      if not pkg_name:
        pkg_name = get_value(line, pkg_name_valname)
      if not pkg_version:
        pkg_version = get_value(line, pkg_version_valname)
      if not pkg_arch:
        pkg_arch = get_value(line, pkg_arch_valname)
      if pkg_name and pkg_version and pkg_arch:
        break
      
    if not pkg_name or not pkg_version or not pkg_arch:
      sys.stderr.write("Cannot get info: %s" % pkg_filename)
    else:
      new_name = "%s_%s_%s.deb" % (pkg_name, pkg_version, pkg_arch)
      os.rename(pkg_filename, new_name)
             
if __name__ == "__main__":
  main(sys.argv[1:])

спасибо, самое понятное объяснение. для чего такое может пригодиться - все равно неясно, ибо большинство .deb пакетов все равно живут в репозитариях и уже имеют правильные имена. или это для левых дебов?

А я думаю, что

А я думаю, что он рыбак как я и думаю он исчет то что и я скрыптик переименования .deb пакетов с улова…Аноним если достану 100 пудов поделюсь… Просто понимаю что экономный Ты человек…

длина

длина заголовка ограничена, поэтому лучше писать необходимое в теле сообщения Ж:-)
в чем проблема?
--
Signature invent in progress 24% ##........

На счет

На счет заголовка учту. А проблемка в том, что когда скачиваешь, пишет типа xmms_1.2.10+20070601-1+b1_i386.deb, а хочется чтоб писало по внутреннем содержании

не совсем

не совсем понятно.
1. "когда скачиваешь"? как скачиваешь?
apt-get install xmms
так? или как то по другому?
2. что значит "по внутреннему содержанию"?
может это?
2.1 dpkg -l покажет все пакеты которые установлены в системе
2.2 apt-cache search xmms - поиск пакетов в описании которых есть xmms
?
--
Signature invent in progress 24% ##........

он наверно имел

он наверно имел ввиду dpkg инфу, ну когда нажимаеш ентерок а там инфа уся, типа таво или я не прав аноним!?

Ты прав на все

Ты прав на все 100%

все равно

все равно непонятно. хочется, чтобы вместо dpkg -i xmms_1.2.10+20070601-1+b1_i386.deb
нужно было писать dpkg -i xmms.deb ?

или отобразить содержимое пакета в плане зависимостей (apt-cache showpkg name)? зачем в пакетах дебиановских что-то переименовывать? очень хочется, чтобы skydebian и/или аноним пояснили мысль.

/me задумчиво чешет репу.

Да наверно,

Да наверно, линуха нету под руками, негде испытать строчку. Дома испробую отпишусь…

простите,

простите, переименовать что? пакеты в debian? а зачем? вы их автор?

Да пакеты в Debian

Да пакеты в Debian по внутреннем содержанию чтоб упростить себе работу...