2015-01-12 2 views
0

На некоторых компьютерах моей компании только IE имеет доступ к Интернету. Поэтому я хотел бы знать, могу ли я иметь локальную копию некоторых модулей CPAN в локальном зеркале. Я слышал о модуле CPAN::Mini, который может синхронизировать локальное зеркало с открытым.Установите модули CPAN из локального зеркала без CPAN :: Mini

Как я могу вручную загрузить модули, которые я хочу в своем зеркале с IE, и настроить cpan для локального просмотра модулей?

EDIT

Я не могу использовать CPAN :: Mini или другие аналогичные инструменты, потому что только IE имеет доступ к Интернету. Мне нужно сначала воспроизвести свое зеркало через IE.

+2

Возможный дубликат [Как настроить локальное зеркало CPAN?] (Http://stackoverflow.com/questions/77695/how-do-i-set-up-a-local-cpan-mirror) – ThisSuitIsBlackNot

ответ

0

Если вам просто нужно частичное зеркало CPAN, вы можете сделать это легко с помощью OrePAN2.

orepan2-inject --simple Module::Name /path/to/darkpan/ 

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

orepan2-inject --simple Carton darkpan 
Wrote 1 from Carton 
[INFO] Could not find useful meta from 'darkpan/authors/id/D/DU/DUMMY/Carton- v1.0.12.tar.gz' 
[INFO] Scanning for provided modules... 
/tmp/foo ∙ tree darkpan/ 
darkpan/ 
├── authors 
│   └── id 
│    └── D 
│     └── DU 
│      └── DUMMY 
│       └── Carton-v1.0.12.tar.gz 
├── modules 
│   └── 02packages.details.txt.gz 
└── orepan2-cache.json 
0

CPAN :: Mini использует LWP для извлечения файлов. Мясо проблемы эта простая линия:

my $res = $self->{__lwp}->mirror($remote_uri, $local_file); 

Вот только в mirror от LWP::UserAgent. Придумайте метод замены, который использует IE вместо этого, возможно, используя Win32::OLE для управления IE, и вот вы где. CPAN::Mini может использовать немного инъекции зависимостей для вещи, которая извлекает файлы.

Раньше использовался инструмент Win32 :: Mechanize :: IE, но он stopped working with the new IE8 security module.

В качестве альтернативы, я бы исследовал способы сделать внутренний объект LWP похожим на IE. Я не знаю подробностей вашего прокси-сервера или сети, но я уверен, что есть некоторые волшебные заголовки или настройки, которые вы могли бы подделать из LWP. См., Например, HTTPS Proxy and LWP::UserAgent. Я должен верить, что больше, чем IE получает доступ к Интернету.

Как последнее усилие, возьмите пиво в администратор Windows со всей силой. Сделайте друга и сохраните некоторую кодировку. :)


я мог бы сделать инъекцию зависимости работа, если бы я не обнаружил, что источник был извращен с Dist :: Zilla нонсенсом. Я никогда особо не заботился о том, какие инструменты используют люди, пока они не заставляют меня использовать одни и те же, и что литеральный исходный код не зависит от требований внешнего инструмента.

Он доходит до того, что люди бросают участие на место в крутом детском столе, делая барьер для сотрудничества настолько высоким. Я только обволакиваю это, потому что я не думаю, что люди понимают компромисс. Никто не говорит вам, когда они решают не помогать. Они просто не помогают, и вы не понимаете, что отказались от всех часов, которые они могли внести.

Смежные вопросы