Способ описанный в статье «Установка perl модулей» прекрасно работает. Но пользоваться им, значит идти в обход пакетной системы дистрибутива, что влечет следующие недостатки:
- Невозможность удалить perl модуль. CPAN.pm только обещает эти возможности в будущем.
- Некорректное обновление модулей. При установке новой версии модуля поверх старой, если должны быть удалены некоторые файлы из старой версии, этого сделано не будет. В лучшем случае это означает мусор в файловой системе, в худшем различные неприятные побочные эффекты.
- Невозможность получить список уже установленных модулей.
- Замусоривание файловой системы, невозможность определить какой файл к какой программе относится.
Предварительная сборка tgz пакетов Slackware позволяет устранить все вышеперечисленные недостатки. Кроме того, сборку пакетов можно производить не на рабочем сервере, а на отдельной машине, например виртуальной. Что в свою очередь даёт преимущества:
- Отсутствует необходимость в средствах сборки на рабочем сервере: make, компилятор, линковщик и т.д. Это экономит место на диске сервера и делает его более безопасным.
- Экономия времени, если рабочих серверов больше одного. Однажды собранные пакеты можно установить на много серверов. Установка готового пакета занимает секунды, сборка модуля длится гораздо дольше.
Переходим к практической части. Вначале необходимо сконфигурировать утилиту cpan, как написано в уже упомянутой статье «Установка perl модулей». Далее, для автоматизации процесса сборки Slackware пакетов из perl модулей нам поможет замечательная утилита cpan2tgz. С её помощью можно по имени модуля собрать Slackware пакет, а также пакеты всех отсутствующих зависимых модулей. На сайте автора утилиты cpan2tgz выбираем пакет под вашу версию Slackware, скачиваем и устанавливаем его:
root@slack12:~# wget http://software.jaos.org/slackpacks/12.0/cpan2tgz-0.6.2-norch-1.tgz ... root@slack12:~# installpkg cpan2tgz-0.6.2-noarch-1.tgz Installing package cpan2tgz-0.6.2-noarch-1... PACKAGE DESCRIPTION: cpan2tgz: cpan2tgz - create Slackware packages from CPAN Perl modules cpan2tgz: cpan2tgz: Packaged by cpan2tgz cpan2tgz: cpan2tgz: cpan2tgz by Jason Woodwardcpan2tgz: cpan2tgz: http://software.jaos.org/ cpan2tgz: Executing install script for cpan2tgz-0.6.2-noarch-1...
Чтобы получить пакеты, например, runtime части web фремворка Catalyst можем воспользоватся командой:
root@slack12:~# cpan2tgz Catalyst
Начнется сборка пакетов, при этом большую часть времени работает утилита cpan, скачивая, распаковывая и устанавливая perl модули. После установки модуля cpan2tgz запаковывает его в tgz пакет с соблюдением стандартов. По умолчанию готовые пакеты помещаются в директорию /usr/src . В данном случае список состоит из:
perl-catalyst-runtime-5.7007-noarch-1.tgz perl-cgi-simple-1.1-noarch-1.tgz perl-class-accessor-0.31-noarch-1.tgz perl-class-data-inheritable-0.06-noarch-1.tgz perl-class-inspector-1.16-noarch-1.tgz perl-compress-raw-zlib-2.005-i486-1.tgz perl-compress-zlib-2.005-noarch-1.tgz perl-data-dump-1.08-noarch-1.tgz perl-file-modified-0.07-noarch-1.tgz perl-html-parser-3.56-i486-1.tgz perl-html-tagset-3.10-noarch-1.tgz perl-http-body-0.9-noarch-1.tgz perl-http-request-ascgi-0.5-noarch-1.tgz perl-io-compress-base-2.005-noarch-1.tgz perl-io-compress-zlib-2.005-noarch-1.tgz perl-libwww-perl-5.806-noarch-1.tgz perl-module-pluggable-3.6-noarch-1.tgz perl-path-class-0.16-noarch-1.tgz perl-sub-uplevel-0.14-noarch-1.tgz perl-test-exception-0.25-noarch-1.tgz perl-text-simpletable-0.03-noarch-1.tgz perl-tree-simple-1.17-noarch-1.tgz perl-tree-simple-visitorfactory-0.10-noarch-1.tgz perl-version-0.7203-i486-1.tgz perl-yaml-0.65-noarch-1.tgz
Теперь можно скопировать эти пакеты на рабочий сервер и установить c помощью команды:
root@slack12:~# installpkg *.tgz
Всё.
2 комментария:
Приветствую! Смотрю, ты работаешь с Catalyst'ом? Есть своеобразное предложение! Хотелось бы создать сообщество catalyst-разработчегофф. Документации на отечественном мало, люди плюются. Имеющаяся документацияя тоже требует долгого фтыкания. Можно было бы сделать русскоязычный толковый ресурс. Да и самим проще было бы. Как к этому относишься?
Привет! Извиняюсь, что так долго не отвечал.
Если предложение ещё в силе, то я в нём заинтересован и готов принять участие. Напиши в аську 121183456
Отправить комментарий