[devel] проблема с distribute

Ivan Zakharyaschev =?iso-8859-1?q?imz_=CE=C1_altlinux=2Eru?=
Пн Окт 7 00:57:14 MSD 2002


	Hello!

On Sun, 6 Oct 2002, Vitaly Lipatov wrote:

> При записи с помощью distribute репозитория Сизифа (бинарных
> пакетов) выдаётся следующая ошибка при формировании второго
> диска:
> /bin/ln: argument list too long
> Я так понимаю, что из-за наличия большого количества мелких
> пакетов для ln формируется строка аргументов, превышающая предел
> (в 32К ?). При уменьшении в distribute размера файлов на диск до
> 600000000 всё записалось. Что будем делать? Я так понимаю,

Да, я знал об этом несовершенстве скрипта с самого начала, но надеялся,
что это не будет проявляться до тех пор, пока я или кто-то ещё не
перепишет его на другом языке. Простой выход был бы вызвать для каждой
ссылки ln, но это вызовет большие расходы на запуск процесса и замедлит
работу примерно в два раза. (Отчасти поэтому я и хотел переписать на
другом языке, где бы создание процесса было не единственным способом
что-то вызвать.)

> размер командной строки поменять не можем, остаётся менять
> скрипт? Или количество мелких пакетов :)

Я сейчас немного помучался, подумал, как бы покрасивее это быстро
поправить. И вроде придумал, обнаружив поедзное свойство xargs:

список с разделителем \0 | xargs -0 ln -s --target-dir=...

xargs разбивает список на меньшие списки и вызывает команду несколько
раз. Скоро (завтра) исправлю.

-- 
С наилучшими пожеланиями,
Иван Захарьящев, Москва




Подробная информация о списке рассылки Devel