Re: Using Perlbrew macOS impossible to install distributions
by karlgoethebier (Abbot) on Nov 26, 2017 at 15:01 UTC
|
I'm a perlbrew aficionado and mac user - but from what you posted it seems to be impossible to figure out what wents wrong. Are you sure that you installed perlbrew right? What does perlbrew info say?
If i were in your shoes i would throw away the perlbrew installation and - after thoroughly rereading it's friendly manual - start over again. You must make sure that your setup of perlbrew is OK.
BTW, just an idea: Xcode Command Line Tools are properly installed? As far as i remember they are not installed if you just install Xcode.
Best regards and good luck, Karl
P.S.: And yes: Steve was right. It just works ;-)
«The Crux of the Biscuit is the Apostrophe»
perl -MCrypt::CBC -E 'say Crypt::CBC->new(-key=>'kgb',-cipher=>"Blowfish")->decrypt_hex($ENV{KARL});'Help
| [reply] [d/l] [select] |
Re: Using Perlbrew macOS impossible to install distributions
by marto (Cardinal) on Nov 26, 2017 at 14:02 UTC
|
it just works!. In all seriousness there's a world of difference between downloading tools someone has prebuilt for you and compiling things yourself. Check the tests that reported failures, do any of the issues discussed in the README apply here?
| [reply] |
Re: Using Perlbrew macOS impossible to install distributions
by 1nickt (Canon) on Nov 26, 2017 at 14:06 UTC
|
Why I am having so many problems ...
Hi, sorry to say the answer to that question is almost certainly "because you made some mistake(s)".
You are quite right that you should not have to, and should not, force installation of a Perl version under perlbrew.
It's really impossible to say from here what the issue is -- only that perlbrew problems always come down to paths, permissions, or both.
I can say that if you follow the documentation exactly it will indeed just work. You may have run something as root when not required, or vice-versa, or may have tried to manually do something ("upgrading patch perl has already been performed" ... should not be needed), or something else.
What I do with OS X is to remove my perls and my development one step further away from the system installation, by using a Linux virtual machine. See VirtualBox and Vagrant. It's very easy and quick. You can get prebuilt images for any flavour you like. If you use Vagrant you can share a directory between the host OS X system and your VMs so you can read/write to docs in both sessions simultaneously.
One of the main advantages to this approach is that if you screw up your system badly when getting it set up, you can just destroy it and start again. And then, once you have a base machine set up as you like it (including perlbrew and a perl or more, all your apps and resources, etc., you can save a copy and clone from it when building new VMs.
A final advantage, depending on how messed up is the system perlbrew installation, is that you could abandon it as is: the system still has the system perl, and in your VMs you are building from scratch. So that would at least get you going sooner, perhaps.
Hope this helps!
The way forward always starts with a minimal test.
| [reply] |
|
"What I do with OS X is to remove my perls and my development one step further away from the system installation, by using a Linux virtual machine."
Every developer I know who uses a Mac tells me this. What's the advantage of a Mac in terms of hardware/software if you're just spinning up a Linux VM to work?
| [reply] |
|
Hi marto,
What's the advantage of a Mac in terms of hardware/software if you're just spinning up a Linux VM to work?
There is none any longer. It used to be that the hardware advantage was the Retina monitor, but now there are plenty of vendors that provide nice 4K screens on 13" or 14" laptops.
Now, on the contrary, the Macbooks have fallen behind in hardware, offering less RAM and disk space and slower chips and disks than competitor systems.
My latest machine is a Lenovo Yoga 910 which I bought with Windows 10 but never booted before wiping and installing Ubuntu. It has 16GB Ram and a 1Tb SSD drive, as well as 4K screen. It flipping screams.
Many devs working at a $company choose to use a Mac with Linux VM because the IT dept insists on having a bunch of spyware, errr, corporate security tools, on the machine, so it's a choice between Windows or Mac.
(In a week from today I'll be getting a new laptop from $newjob -- the manager strongly suggests Macbook with VMs, having himself just switched from native Linux, lol. I don't prefer it as the VirtualBox app on the Macbook always seems to get too hot eventually (consuming all system RAM) and you wind up having to reboot the entire thing or at least the VM platform. I don't have this problem running desktop Ubuntu on the Lenovo (always did used to have problems with a Linux GUI, things have improved). So, I plan to try to get a Linux machine, maybe they will offer the Dell. If not, I plan to bork a Windows machine and install Ubuntu, if I can get a client for the VPN. Will report back.)
The way forward always starts with a minimal test.
| [reply] |
|
|
| [reply] |
|
|
|
|
Re: Using Perlbrew macOS impossible to install distributions
by kcott (Archbishop) on Nov 27, 2017 at 04:16 UTC
|
"Using Perlbrew macOS impossible to install distributions"
That's an erroneous generalisation.
I've been installing Perl distributions on macOS (previously Mac OS X) since either v10.5.x or v10.6.x;
the latest was on v10.12.5.
I think "High Sierra" is v10.13.x:
I don't have this upgrade yet,
but I haven't encountered any reports of specific Perlbrew problems with this macOS version.
I currently have all of these distributions installed:
$ perlbrew list
perl-5.14.0t
perl-5.14.2
perl-5.14.2t
perl-5.18.0t
perl-5.18.1t
perl-5.20.0t
perl-5.20.2t
perl-5.22.0t
perl-5.24.0t
perl-5.25.9t
* perl-5.26.0t
So, that includes the 5.22.0 you say you're having problems with;
maybe there are others in that list which you've tried as well (you didn't specify what others you'd tried).
"To start using Perlbrew, I open the Terminal and write source ~/perl5/perlbrew/etc/bashrc"
I've never needed to do this; although, to be perfectly honest, I'm not entirely sure what you mean by this
(I can make an educated guess, but it's still only a guess).
If you put command line commands and output within <code>...</code> tags,
as I did with "perlbrew list" above, it'll make what you're actually doing a lot clearer.
Almost at the end of my "~/.bash_profile", I have:
. $HOME/.bashrc
My "~/.bashrc" starts with:
. ~/perl5/perlbrew/etc/bashrc
Perhaps you need something similar to this.
You can also take a look at this post of mine from last month:
the underlying issue is unrelated to your problem but it does show how I normally perform installations.
When I use this method, "everything works for me out-of-the-box".
| [reply] [d/l] [select] |
|
karls-mac-mini:~ karl$ env | grep PERLBREW
PERLBREW_VERSION=0.58
PERLBREW_PERL=perl-5.18.0
PERLBREW_BASHRC_VERSION=0.58
PERLBREW_ROOT=/Users/karl/perl5/perlbrew
PERLBREW_HOME=/Users/karl/.perlbrew
PERLBREW_MANPATH=/Users/karl/perl5/perlbrew/perls/perl-5.18.0/man
PERLBREW_PATH=/Users/karl/perl5/perlbrew/bin:/Users/karl/perl5/perlbre
+w/perls/
...everything should be OK with perlbrew, right? Very strange...
Best regards, Karl
«The Crux of the Biscuit is the Apostrophe»
perl -MCrypt::CBC -E 'say Crypt::CBC->new(-key=>'kgb',-cipher=>"Blowfish")->decrypt_hex($ENV{KARL});'Help
| [reply] [d/l] [select] |
|
G'day Karl,
I read what you've written several times but the point you're trying to make eludes me.
I was particularly stumped by your final words: "Very strange...".
The OP shouldn't need to manually source '~/perl5/perlbrew/etc/bashrc' in order to use Perlbrew.
Doing this will set up environment variables such as you've shown, but only in the current shell.
It's a tedious task that's easy to forget and therefore error-prone:
hence my suggestion to set up something similar to my '.bash_profile' and '.bashrc'.
I set all this up for myself years ago and haven't needed to change anything since.
While I don't remember specifics, I do recall all instructions came from Perlbrew documentation:
I didn't need to seek out secret incantations in dark corners of the Internet.
For what it's worth, except for some obvious and expected differences (e.g. s/karl/ken/),
my environment looks very similar to yours.
| [reply] [d/l] [select] |
|
Re: Using Perlbrew macOS impossible to install distributions
by kevbot (Vicar) on Nov 28, 2017 at 07:22 UTC
|
Hello Anonymous Monk,
I recently encountered this problem, see this stackoverflow post. On macOS High Sierra, you need to install Berkeley DB before installing perl. If you have homebrew installed, you can install it with brew install berkeley-db.
| [reply] [d/l] [select] |
|
| [reply] |
|
ADs-MacBook-Air:Desktop ad$ cpan Lingua-EN-Tagger
Loading internal null logger. Install Log::Log4perl for logging messag
+es
Reading '/Users/ad/.cpan/Metadata'
Database was generated on Sat, 25 Nov 2017 17:53:48 GMT
Warning: You are not allowed to write into directory "/Users/ad/.cpan/
+sources/authors".
I'll continue, but if you encounter problems, they may be due
to insufficient permissions.
Fetching with HTTP::Tiny:
http://cpan.metacpan.org/authors/01mailrc.txt.gz
Error downloading with HTTP::Tiny: Error: Could not create temporary f
+ile /Users/fc/.cpan/sources/authors/01mailrc.txt.gz.tmp47408338328566
+ for downloading: Permission denied
at /Users/fc/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/CPAN/HTTP/Cl
+ient.pm line 41.
| [reply] [d/l] |
|
This output looks strange to me. It appears that there are two different user accounts involved (/Users/ad and /Users/fc). It appears that you are trying to run the cpan command when you are logged into the ad account, but you installed the brewed perl in the fc account. Is that the case? I always use brewed perls from the same account that I used to install them. Try to confirm that you are using the cpan executable from your brewed perl. Typing this at the command line,
which cpan
should give you output like this,
/Users/fc/perl5/perlbrew/perls/perl-5.26.1/bin/cpan
If the output is /usr/bin/cpan, then you are still using the cpan command that is part of the system perl. After you installed perl-5.26.1 did you switch to it with the following command?
perlbrew switch perl-5.26.1
If you did not run the switch command then you are still using the system perl (which is probably not what you want).
Once you confirm that you are using your brewed perl, I recommend that you install cpanminus (see App::cpanminus) using the following command,
curl -L https://cpanmin.us | perl - App::cpanminus
Then you can use cpanm to install modules (I find that its easier to use than the older cpan command).
| [reply] [d/l] [select] |
|
|
Just one more comment in addition to kevbot's excellent post:
You are not allowed to write into directory "/Users/ad/.cpan/sources/authors"
This can also mean that a user other than ad has been working in that directory, for example if one has done sudo cpan in the past. If you still have the permissions problem after you've sorted out the confusion with the /Users/ad vs. /Users/fc, the simplest thing (although it'll cause a bit of re-downloading) is probably just to clobber the entire .cpan directory, making sure to back up the configuration file if you have set up a custom configuration. You may have to do sudo rm, but of course be very careful with this command!
| [reply] [d/l] [select] |
Re: Using Perlbrew macOS impossible to install distributions
by kevbot (Vicar) on Nov 28, 2017 at 14:34 UTC
|
Hello,
I just wanted to follow-up on my other post Re: Using Perlbrew macOS impossible to install distributions. The stackoverflow thread mentioned that the bug had been reported to rt.perl.org. However, I searched (using the public interface) and I did not find the relevant bug report. So, I searched around some more and it appears that this might be a bug in macOS High Sierra (10.13), see this Apple Discussion thread. It seems that the problem is still not fixed in macOS version 10.13.1 (since I still get the test failures on 10.13.1 unless I install Berkeley DB first). | [reply] |
Re: (also solved) Using Perlbrew OS X
by Your Mother (Archbishop) on Nov 26, 2018 at 23:52 UTC
|
Follow-up. I hit this exact issue today. New Mac, wanted to try some signature stuff so needed to update perl. Picked 5.28. Failed at ../cpan/DB_File/t/db-hash.t, as reported. As 1nickt and kevbot suggest, brew install berkeley-db cleared the way for it to install cleanly.
| [reply] [d/l] [select] |
|
I encountered this same scenario today. brew install berkeley-db was the fix for me as well.
| [reply] [d/l] |