Re: cygwin, perl5.10, INSTALLSITESCRIPT
by rovf (Priest) on Sep 25, 2008 at 08:08 UTC
|
Why do you want to CREATE /usr/bin ?
I guess the "real" error message is the one with not having write permissions
on /usr/bin. Do you have installed Cygwin on a network drive? In this case, I found that there occur often oddities relating to write permissions. Can you manually create a new file in /usr/bin?
--
Ronald Fischer <ynnor@mm.st>
| [reply] |
|
|
Unless the install script is suing to another user during the install, the problem is not that I don't have write access to /usr/bin. My workaround was to change the value of INSTALLSITESCRIPT to /usr/bin_00, and then move the files after the make install. Since the files are now happily installed in /usr/bin, I must have write access...
No I suspect that because cygwin is doing some dark magic linking /usr/bin to /bin, somewhere along the line there's some code like:
if( not -d $dir ) {
mkdir($dir) or die("can't create $dir because you don't have write p
+ermission")
}
and that -d test is failing because /usr/bin isn't really truly a directory.
Interestingly, if I change the Makefile to point to /usr/bin_00 and then install, the install works ok, even twice. So for some reason the install is not trying to create /usr/bin_00 the second time (even if I delete the scripts installed). | [reply] [d/l] |
Re: cygwin, perl5.10, INSTALLSITESCRIPT
by syphilis (Archbishop) on Sep 25, 2008 at 12:03 UTC
|
Interesting ... I have a similar issue trying to build perl-5.10.0 from source on my Cygwin installation. (On the same Cygwin installation, perl-5.8.8 builds perfectly.)
I run ./configure -de -Duse64bitint -Dprefix=/home/Rob/perl, which runs fine, but running make terminates with:
--------------------------------
make1: Entering directory `/home/Rob/comp/perl-5.10.0/ext/DynaLoader'
../../miniperl.exe "-I../../lib" "-I../../lib" DynaLoader_pm.PL DynaLoader.pm
../../miniperl.exe "-I../../lib" "-I../../lib" XSLoader_pm.PL XSLoader.pm
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '../../lib/auto'
Do not have write permissions on '/'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
--------------------------------
Could these problems be related ? Do you have a suggestion on some hack that I can employ to get past this issue ?
I asked about this on the Cygwin mailing list and Reini Urban provided (in a very gracious manner, I should add) fairly extensive information - and some scripts. Unfortunately I'm too dumb to make use of what he provided. I think his proposed solution involved running some scripts to fix up permissions issues. I could dig up the thread if needed.
Cheers, Rob (who is always prepared to attempt thread hijacking)
| [reply] [d/l] [select] |
|
|
The disturbing difference in your error is that the directory that it is failing to create is not the same as the one which it says you can't read. This, and the fact that your directory isn't a magical one like /usr/bin, leads me to suspect these are different problems.
Definitely the very first thing you should check is whether you do, in fact, have write permissions on /. Since you're installing perl in your home directory, I'm guessing you don't have write permission on / . Can you repeat your test on a system where you do ?
My steps to installing Devel::Cover and DBI::SQLite were as follows;
- unpack the tar
- perl Makefile.PL (which equates to your ./configure call)
- grep '/usr/bin' *
- edit Make (where I found /usr/bin in the previous step), substituting /usr/bin_00, /usr/bin_01, /usr/bin_02 etc, so I could see exactly which variable was being used
- make
- make test *
- make install
So you might find something in the Make file for DynaLoader pointing to lib/auto, but I wouldn't hope for much. Finding references to / is going to be impossible.
* make test failed for Devel::Cover due to a different problem.
| [reply] |
|
|
I'm guessing you don't have write permission on /
No - I can write to '/' ok. The aim is to install perl-5.10 into /home/Rob so that it doesn't interfere with the existing 5.8.8 installation (which I'd still like to keep). If I drop the '-Dprefix' arg, the error I get is still the same.
I'll take a look through the makefile and see if I can spot something. It would be handy to have a 64-bit-int build of perl-5.10 on this Windows box, but I *can* live without it, so I won't be getting too stressed.
Update: I think I've found a (tedious) solution to my problem. It's just a matter of cd'ing to the ext/DynaLoader folder and running 'make -i', then when that terminates, return to the top level folder and re-run 'make'. Shortly thereafter the process terminates with a similar error regarding the ext/B directory ... so cd to ext/B, run 'make -i', then cd back to the top level and re-run 'make' .... and on it goes until the next failure in ext/somewhere ... etc., etc.
Update2: Duh .... wouldn't it be better to just run 'make -i' from the top level folder ? That's exactly what I'm doing now - but I won't really know how successful it has been until I get to run 'make test'.
Update3: Sort of nearly almost works ... many of the pm files in ext don't get copied across to lib. All in all, it's not a very good approach to be taking :-)
Cheers, Rob
| [reply] |
Re: cygwin, perl5.10, INSTALLSITESCRIPT
by pgn674 (Initiate) on Dec 07, 2008 at 06:11 UTC
|
I came across the "ERROR: Can't create '/usr/bin'" error in Ubuntu when I was trying to install Module::Build. This is the only place on the internet where I could find someone having a similar problem, so I figured I'd post my fix here in case it can help you or any other searcher.
Sudoing Perl CPAN is not recommended, and it wasn't working for me anyways; I tried. After much searching I found that a better alternative to sudoing from bash is to set some configuration options inside CPAN. First, in CPAN, enter "o conf". In the list that comes up, look for make_install_make_command and mbuild_install_build_command. You'll notice that they have no mention of sudo. We're going to change that.
Enter "o conf make_install_make_command "sudo make"" and "o conf mbuild_install_build_command "sudo ./Build"". Now do o conf again, and you'll see that you changed the settings. Now do "o conf commit", and this will write all the settings to file, including your changed stuff. This way, these settings will remain if you quit and re-enter CPAN.
OK, all's set. Now you can do the "install Module::Build", and it will work. Yay! | [reply] |
|
|
while installing DBI perl module, am getting below error :-
ERROR: Can't create '/usr/bin' Do not have write permissions on '/usr/bin' !
Anybody having any solution for this ? i tried 2-3 ways like editing make, manually creation etc, however failed...please help me out.
Regards,
pande.mandy@gmail.com
| [reply] |
|
|
| [reply] [d/l] |