Список модулей CPAN, которые были сделаны, но не установлены - PullRequest
2 голосов
/ 09 апреля 2010

Есть ли простой / чистый способ сделать это в Linux / Linux-подобной среде?

Назначение

Моя цель - запустить CPAN с правами администратора только на этапе установки, а не на этапах get / make / test.

Ответы [ 3 ]

2 голосов
/ 09 апреля 2010

Элементы конфигурации CPAN make_install_make_command и mbuild_install_build_command имеют дело с этим. Измените их, чтобы включить поддержку sudo.

1 голос
/ 09 апреля 2010

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

Создание подкласса CPAN.pm, который фактически публикует результаты / этапы каждого модуля, с которым он работает, в реестр (с помощью API обратного вызова для обеспечения гибкости реализации реестра).

Тогда вам нужно просто проверить этот реестр.

(или вы можете попытаться вставить это как патч в сам CPAN.pm)

0 голосов
/ 09 апреля 2010

Для документирования подхода, который кажется многообещающим, но не работает - команда оболочки:

find . -type d -mindepth 1 -maxdepth 1 -print | while read -r DIR; do pushd $DIR;  make -q; mk=$?; make -q install; inst=$?; make -q test; tst=$?; echo Directory "$DIR $mk $inst $tst"; popd; done| fgrep -ve /build

при выполнении в директории сборки cpan перечисляет состояния выхода make -q для "", "test" и "install", в которых указывается, требует ли эта цель какой-либо работы для достижения.

Но у всех есть ненулевые статусы выхода, что означает, что они все сделают что-то, если вы их выполните, даже если make был успешно завершен. Таким образом, вы не можете ничего сказать таким образом.

...