Что-то вроде этого будет работать:
foreach ( Process process in Process.GetProcessesByName( "winword" ) )
{
process.Kill();
process.WaitForExit();
}
Существует инструмент под названием local :: lib
, который завершает всю работу за вас, как и virtualenv
. Он будет:
@INC
в процессе, в котором он используется. PERL5LIB
и другие подобные вещи для дочерних процессов. MakeMaker
, Module :: Build
и т. д. установить библиотеки и сохранить конфигурацию в локальном каталоге. PATH
, чтобы установить двоичные файлы можно найти. eval $ (perl -Mlocal :: lib)
в вашем .profile
, а затем в основном забываете об этом. Я не уверен, совпадает ли это с той virtualenv
, о которой вы говорите, но поищите специальную переменную @INC
на странице руководства perlvar
.
Я запускаю оболочку CPAN (cpan) и устанавливаю из нее свой собственный Perl 5.10 (Я считаю, что команда устанавливает perl-5.10). Это потребует различной конфигурации настройки; Я обязательно укажу пути в / usr / local (или другое место установки, отличное от значения по умолчанию).
Затем я помещаю его результирующее местоположение в свой исполняемый файл $ PATH перед стандартным perl и использую его оболочку CPAN для установки модулей, которые мне нужны (обычно много). Все мои скрипты Perl начинаются со строки
#!/usr/bin/env perl
Никогда не было проблем с этим подходом.
Программы могут изменять каталоги, которые они проверяют на наличие библиотек, с помощью используйте lib
. Этот каталог lib может быть относительно текущего каталога. Библиотеки из этих каталогов будут использоваться перед системными библиотеками, поскольку они помещаются в начало массива @INC.
Я считаю, что cpan также может устанавливать библиотеки в определенные каталоги. Конечно, для установки cpan использует сайт CPAN , так что это не лучший вариант.
Для этой цели я использовал schroot
. Он немного тяжелее, чем virtualenv, но вы можете быть уверены, что утечки в нем не должно быть.
Schroot
управляет средой chroot за вас, но монтирует ваш домашний каталог в chroot, чтобы он выглядел как обычный сеанс оболочки, просто используя двоичные файлы и библиотеки в chroot.
Я думаю, что это может быть только debian / ubuntu.
После настройки schroot
ваш сценарий выше будет выглядеть как
schroot -c my_perl_dev
wget ...
] См. http://www.debian-administration.org/articles/566 , где есть интересная статья об этом
Похоже, вам просто нужно использовать конфигурацию INSTALL_BASE для Makefile.PL (или параметр --install_base для Build.PL)? Что именно вам нужно от этого решения? Похоже, вам просто нужно поставить установленный модуль в нужное место. Вы представили свою проблему как Проблема XY , указав, что, по вашему мнению, является решением, вместо того, чтобы позволить нам помочь вам с вашей задачей.
См. Как мне сохранить свой собственный модуль / каталог библиотеки? , например, в perlfaq8.
Если вы загружаете модули из CPAN, последняя команда cpan
(в App :: Cpan ) имеет ] -j
переключатель, позволяющий выбрать альтернативные файлы конфигурации CPAN.pm. В этих файлах конфигурации вы можете установить параметры CPAN.pm для установки где угодно.
Судя по вашему пояснению, похоже, что local :: lib может сработать для вас в отдельных простых случаях, но я делаю это для промышленных целей. развертывания, в которых я настраиваю индивидуальные частные CPAN для каждого приложения и устанавливаю непосредственно из этих настраиваемых CPAN. См., Например, мой модуль MyCPAN :: App :: DPAN . Исходя из этого, я использую пользовательские конфигурации CPAN.pm, которые анализируют их среду и устанавливают правильные значения для каждого приложения, которое может установить все в каталог только для этого приложения.
Вы также можете рассмотреть возможность распространения вашего приложения как Task ::. Вы устанавливаете его, как любой другой модуль Perl, но зависимости используют ту же настройку (например, INSTALL_BASE).
Судя по вашему разъяснению, похоже, что local :: lib может работать для вас в отдельных простых случаях, но я делаю это для промышленных мощностей, когда я настраиваю индивидуальные частные CPAN для каждого приложения и устанавливаю непосредственно из этих пользовательских CPAN. См., Например, мой модуль MyCPAN :: App :: DPAN . Исходя из этого, я использую пользовательские конфигурации CPAN.pm, которые анализируют их среду и устанавливают правильные значения для каждого приложения, которое может установить все в каталог только для этого приложения.
Вы также можете рассмотреть возможность распространения вашего приложения как Task ::. Вы устанавливаете его, как любой другой модуль Perl, но зависимости используют ту же настройку (например, INSTALL_BASE).
Судя по вашему разъяснению, похоже, что local :: lib может работать для вас в простых простых случаях, но я делаю это для промышленных мощностей, где я настраиваю собственные частные CPAN для каждого приложения и устанавливаю непосредственно из этих пользовательских CPAN. См., Например, мой модуль MyCPAN :: App :: DPAN . Исходя из этого, я использую пользовательские конфигурации CPAN.pm, которые анализируют их среду и устанавливают правильные значения для каждого приложения, которое может установить все в каталог только для этого приложения.
Вы также можете рассмотреть возможность распространения вашего приложения как Task ::. Вы устанавливаете его, как любой другой модуль Perl, но зависимости используют ту же настройку (например, INSTALL_BASE).
частные CPAN для каждого приложения и устанавливаются непосредственно из этих пользовательских CPAN. См., Например, мой модуль MyCPAN :: App :: DPAN . Исходя из этого, я использую собственные конфигурации CPAN.pm, которые анализируют их среду и устанавливают правильные значения для каждого приложения, которое может установить все в каталог только для этого приложения.Вы также можете рассмотреть возможность распространения вашего приложения как Task ::. Вы устанавливаете его, как любой другой модуль Perl, но зависимости используют ту же настройку (например, INSTALL_BASE).
частные CPAN для каждого приложения и устанавливаются непосредственно из этих пользовательских CPAN. См., Например, мой модуль MyCPAN :: App :: DPAN . Исходя из этого, я использую собственные конфигурации CPAN.pm, которые анализируют их среду и устанавливают правильные значения для каждого приложения, которое может установить все в каталог только для этого приложения.Вы также можете рассмотреть возможность распространения вашего приложения как Task ::. Вы устанавливаете его, как любой другой модуль Perl, но зависимости используют ту же настройку (например, INSTALL_BASE).
Вы также можете рассмотреть возможность распространения вашего приложения как Task ::. Вы устанавливаете его, как любой другой модуль Perl, но зависимости используют ту же настройку (например, INSTALL_BASE).
Вы также можете рассмотреть возможность распространения вашего приложения как Task ::. Вы устанавливаете его, как любой другой модуль Perl, но зависимости используют ту же настройку (например, INSTALL_BASE).