perlbrew 切换路径命令在 MacOS Big Sur 11.4 上不是永久的

Posted

技术标签:

【中文标题】perlbrew 切换路径命令在 MacOS Big Sur 11.4 上不是永久的【英文标题】:perlbrew switch path order not permanent on MacOS Big Sur 11.4 【发布时间】:2021-09-08 07:07:39 【问题描述】:

我正在编写分步说明指南,以在运行于 VMware Fusion 上的新建(来自 ISO)MacOS Big Sur (11.4) VM 上安装 perlbrew。

我已经能够成功安装 perlbrew。 perlbrew 信息如下所示:

perlbrew 信息

当前的 perl: 使用系统 perl。 社帮:#!/usr/bin/perl

perlbrew: 版本:0.92 环境: PERLBREW_ROOT:/用户/jblaty/perl5/perlbrew PERLBREW_HOME:/Users/jblaty/.perlbrew PERLBREW_PATH:/Users/jblaty/perl5/perlbrew/bin PERLBREW_MANPATH:

太棒了!现在,我将执行 perlbrew switch perl-5.32.1,然后执行另一个 perlbrew info:

perlbrew 信息

当前的 perl: 名称:perl-5.32.1 路径:/Users/jblaty/perl5/perlbrew/perls/perl-5.32.1/bin/perl 配置:-de -Dprefix=/Users/jblaty/perl5/perlbrew/perls/perl-5.32.1 -Aeval:scriptdir=/Users/jblaty/perl5/perlbrew/perls/perl-5.32.1/bin 编译时间:2021-06-23 14:43:45

perlbrew: 版本:0.92 环境: PERLBREW_ROOT:/用户/jblaty/perl5/perlbrew PERLBREW_HOME:/Users/jblaty/.perlbrew PERLBREW_PATH: /Users/jblaty/perl5/perlbrew/bin:/Users/jblaty/perl5/perlbrew/perls/perl-5.32.1/bin PERLBREW_MANPATH:/Users/jblaty/perl5/perlbrew/perls/perl-5.32.1/man

太棒了!所以我现在在 VM 中运行 Perlbrew 版本的 Perl。这是我切换后的路径...

打印 $PATH

/Users/jblaty/perl5/perlbrew/bin:/Users/jblaty/perl5/perlbrew/perls/perl-5.32.1/bin:/usr/local/bin:/usr/ bin:/bin:/usr/sbin:/sbin

太棒了!所以在路径中,MacOS 会在 Perl 的系统版本之前找到 perlbrew 版本。到目前为止一切看起来都不错,但我希望 perlbrew 开关 对我开始的每个新终端会话持久。请记住,我使用的是 zsh,我的 .zshenv 看起来像这样:

cat .zshenv

源码~/perl5/perlbrew/etc/bashrc

但是,事情就在这里破裂了。如果我关闭该终端会话并打开一个新会话,然后执行另一个 perlbrew info,我会得到以下结果:

perlbrew 信息

当前的 perl: 名称:perl-5.32.1 路径:/Users/jblaty/perl5/perlbrew/perls/perl-5.32.1/bin/perl 配置:-de -Dprefix=/Users/jblaty/perl5/perlbrew/perls/perl-5.32.1 -Aeval:scriptdir=/Users/jblaty/perl5/perlbrew/perls/perl-5.32.1/bin 编译时间:2021-06-23 14:43:45

perlbrew: 版本:0.92 环境: PERLBREW_ROOT:/用户/jblaty/perl5/perlbrew PERLBREW_HOME:/Users/jblaty/.perlbrew PERLBREW_PATH: /Users/jblaty/perl5/perlbrew/bin:/Users/jblaty/perl5/perlbrew/perls/perl-5.32.1/bin PERLBREW_MANPATH:/Users/jblaty/perl5/perlbrew/perls/perl-5.32.1/man

...一切看起来都很好,对吧?但是,如果我再看看路径:

打印 $PATH

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/jblaty/perl5/perlbrew/bin:/Users/jblaty/perl5/perlbrew/perls /perl-5.32.1/bin

错误! perlbrew bin 目录被附加到路径的末尾,而不是开头那是在我关闭终端会话之前。

谁能指导我:

    我做错了什么?我在安装过程中遗漏了什么吗?

    如何修复 perlbrew,以便在后续的新终端会话中将 perlbrew bin 路径添加到系统路径?

我还将为 Linux 创建说明,因此修复此问题可能有助于我了解我需要在那里做什么。

【问题讨论】:

【参考方案1】:

将初始化脚本添加到~/.zshrc

echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.zshrc

zsh startup file order 是:

    /etc/zshenv ~/.zshenv /etc/zprofile PATH 在这里设置 ~/.zprofile /etc/zshrc ~/.zshrc /etc/zlogin ~/zlogin

【讨论】:

以上是关于perlbrew 切换路径命令在 MacOS Big Sur 11.4 上不是永久的的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 perlbrew 时安装 CPAN 模块?

Charles App - 用于切换 macOS 代理的命令行

MacOS下Chrome浏览器打开文件选择对话框快速切换路径的方法

MacOS下Chrome浏览器打开文件选择对话框快速切换路径的方法

巧用tail查看软件的安装进程

无法在 Perl 5.32.0 MacOS Sierra 上安装 Test::File