AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1042581
Accepted
Mutewinter
Mutewinter
Asked: 2018-06-02 02:34:09 +0800 CST2018-06-02 02:34:09 +0800 CST 2018-06-02 02:34:09 +0800 CST

让程序忽略“.bashrc”

  • 772

对不起,如果这是一个非常愚蠢的菜鸟问题,但我不是专家,我在这个或其他论坛上找不到任何足够的回应。

我正在运行 Ubuntu 18.04 x64,并且正在使用英特尔编译器。为了使我的系统和我的软件编译保持一致,我设置了我的 .bashrc 以将 Intel 编译器设置为默认值。

source /opt/intel/parallel_studio_xe_2018.2.046/bin/psxevars.sh
export CC='/opt/intel/bin/icc'
export CXX='/opt/intel/bin/icpc'
export FC='/opt/intel/bin/ifort'
export F77='/opt/intel/bin/ifort'
export CFLAGS='-O3 -xHost -ip'
export CXXFLAGS='-O3 -xHost -ip'
export FCFLAGS='-O3 -xHost -ip'

现在,如果我这样做,我将无法启动 MATLAB R2017b。每次我启动它时,它都会与英特尔编译器发生冲突,并因错误而中止启动:

symbol lookup error: /opt/intel/compilers_and_libraries_2018.2.199/linux/compiler/lib/intel64/libirng.so: undefined symbol: __intel_skx_avx512_memcpy

我必须让 MATLAB 工作的唯一方法是在我的 .bashrc 文件中注释掉上述变量,获取它并启动 MATLAB。

这当然很疯狂,我想知道是否有可能实际上有一个忽略 .bashrc 的 .desktop 文件,或者是否有任何其他方法可以让这些环境变量启动并运行,但让软件忽略它们。

谢谢!

bashrc matlab intel
  • 2 2 个回答
  • 798 Views

2 个回答

  • Voted
  1. Best Answer
    Sergiy Kolodyazhnyy
    2018-06-02T10:58:01+08:002018-06-02T10:58:01+08:00

    确实可以从bash忽略~/.bashrc文件开始。具体来说,通过--no-rc标志:

     bash --noprofile --norc
    

    .desktop您可以通过一种相当简单的方式为此制作一个包装文件:

    [Desktop Entry]
    Version=1.0
    Name=No-rc shell
    Comment=Starts Bash with --no-rc flag
    Exec=bash --noprofile --norc
    Icon=/usr/share/icons/gnome/48x48/apps/terminal.png
    Terminal=true
    Type=Application
    Categories=Utility;Development;
    

    或者,您可以~/.bashrc以这种方式修改它,这将允许您动态地采购它。例如,我个人会做这样的事情:

    if [ -z "$no_intell_compilers" ][ "$no_intell_compilers" = "false" ]; then
        source /opt/intel/parallel_studio_xe_2018.2.046/bin/psxevars.sh
        export CC='/opt/intel/bin/icc'
        export CXX='/opt/intel/bin/icpc'
        export FC='/opt/intel/bin/ifort'
        export F77='/opt/intel/bin/ifort'
        export CFLAGS='-O3 -xHost -ip'
        export CXXFLAGS='-O3 -xHost -ip'
        export FCFLAGS='-O3 -xHost -ip'
    fi
    

    它的作用是检查环境变量no_intell_compilers;如果未设置或设置为false,~/.bashrc将导出这些变量。当您想在环境中没有这些变量的情况下重新开始时,请执行

    $ no_intell_compilers="true"
    $ source ~/.bashrc
    

    在该 shell 中完成开发后,只需unset no_intell_compilers再次获取文件以获取变量。

    • 4
  2. PerlDuck
    2018-06-02T08:43:02+08:002018-06-02T08:43:02+08:00

    这并不能完全回答您关于忽略的问题,.bashrc但我认为这可能是一个合理的选择:

    从您的开发中删除所需的语句~/.bashrc并将它们放在单独的文件中,例如~/dev-env:

    #
    # Set environment for icc compiler
    #
    source /opt/intel/parallel_studio_xe_2018.2.046/bin/psxevars.sh
    export CC='/opt/intel/bin/icc'
    export CXX='/opt/intel/bin/icpc'
    export FC='/opt/intel/bin/ifort'
    export F77='/opt/intel/bin/ifort'
    export CFLAGS='-O3 -xHost -ip'
    export CXXFLAGS='-O3 -xHost -ip'
    export FCFLAGS='-O3 -xHost -ip'
    

    然后,当您想使用icc编译器开发某些东西时,只需在受影响的终端窗口中手动获取该文件:

    source ~/dev-env
    

    该文件不需要是可执行的,因为您不会执行它而是源它。这意味着其中的语句由当前 shell处理,因此会影响当前 shell。如果你让它可执行然后执行它,就会产生一个子shell,在那里设置设置,然后子shell会关闭。不是你想要的。

    • 3

相关问题

  • 如何在 Intel Mac 上重新安装或恢复 GRUB/MBR?

  • 在 Xorg -configure 之后继续被踢回登录屏幕

  • 使用 2.6.35 内核电压不足?

  • 如何从 Mathworks 网站安装 Matlab?

  • 别名:.bash_rc、.bash_aliases 和 /usr/local/bin 之间的区别

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve