Re: [Module::Build] Cannot forceunlink C:\Perl\site\lib\auto\Compress\Zlib\Zlib.dll: Permission deni
Status: Beta
Brought to you by:
kwilliams
|
From: demerphq <dem...@gm...> - 2006-03-24 09:37:09
|
On 3/23/06, Ron Savage <ro...@sa...> wrote: > Hi Folks > > I've been investigating this problem. > > I get such an error with Compress::Zlib, Params::Validate and Time::HiRes= . > > Here's what I've found, under Win2K: > > o If Apache+mod_perl is not installed (i.e. as a Windows service), I do n= ot get > this error. > > o If Apache+mod_perl is installed but the service is not started, I do no= t get > this error > > o If the service is started, I get this error > > What complicates the issue is that Apache, or perhaps Windows, is inconsi= stent > about whether or not it is installed. Here's a log of a few attempts to p= lay > with this: This is a well known set of issues. You cant delete files that are open on win32. In some cases you can rename them, but in others you cant do anything but schedule the removal of the file at boot time. Normally when a .dll is opened it is opened such that it can be renamed away, however if the .dll is being used in more complicated ways then it may not be renamable untill all processes using it have terminated. Thus when the service is running the .dlls are open and they cant be deleted. There is an existing workaround. If you do cpan> install YVES/ex-ExtUtils-Install-1.3702.tar.gz The youll have an updated version of ExtUtils::Install that knows how to do the rename trick, and/or use Win32API::File to handle these issues at boottime. (Such as removing the renamed files, or installing files that are locked at the time of install.) I would very much appreciate feedback as to how well using this bundle resolves the listed problems. Not that you _cannot_ install it by module name, you must use the fully qualified distro name. BTW, its been a subject of discussion for some time to make this the official distro for EU-Install. However we are still waiting on Michael Schwern to give me permissions on the module in CPAN/PAUSE. Cheers, Yves -- perl -Mre=3Ddebug -e "/just|another|perl|hacker/" |