【问题标题】:sudo: port: command not foundsudo:端口:找不到命令
【发布时间】:2012-03-30 11:10:22
【问题描述】:

我最近卸载了 Xcode 4.2 并重新安装了 Xcode 4.3.1。命令行工具已安装。然后,我使用来自 macports.org 的 Lion 的“dmg”磁盘映像安装了 MacPort。因为,每次使用端口后我都会收到sudo: port: command not found,我跟着thisthis post 创建了一个.bash_profile 文件(之前不存在),然后将其放入以下但无济于事。

export PATH=$PATH:/opt/local/bin
export MANPATH=$MANPATH:/opt/local/share/man
export INFOPATH=$INFOPATH:/opt/local/share/info 

关注this post

➜  ~ git:(master) ✗ rvm install 1.8.7 --with-openssl-dir=/opt/local
You requested building with '/usr/bin/gcc-4.2' but it is not in your path.
➜  ~ git:(master) ✗ vi .rvmrc 

rvm_archflags="-arch x86_64"

export CC="/usr/bin/gcc-4.2"

export CFLAGS="-O2 -arch x86_64"
export LDFLAGS="-L/opt/local/lib"
export CPPFLAGS="-I/opt/local/include"

.bash_profile 重命名为.profile

➜  ~ git:(master) ✗ vi .bash_profile
➜  ~ git:(master) ✗ mv .bash_profile .profile
➜  ~ git:(master) ✗ mv .profile              
usage: mv [-f | -i | -n] [-v] source target
       mv [-f | -i | -n] [-v] source ... directory
➜  ~ git:(master) ✗ mv -f .bash_profile .profile
mv: rename .bash_profile to .profile: No such file or directory
➜  ~ git:(master) ✗ port
zsh: correct 'port' to 'pr' [nyae]? n
zsh: command not found: port
➜  ~ git:(master) ✗ which port
port not found
➜  ~ git:(master) ✗ 

.profile内容:

export PATH=$PATH:/opt/local/bin
export MANPATH=$MANPATH:/opt/local/share/man
export INFOPATH=$INFOPATH:/opt/local/share/info

【问题讨论】:

  • 我在为 Rails 应用程序安装 MongoDB 时在命令行中遇到了这个错误,所以我想其他人也可能通过谷歌搜索使用相同的关键字找到这个问题。我所做的只是更新 XCode 并从 macports.org 安装 MacPorts,在此页面上执行任何其他操作之前尝试一下。

标签: terminal osx-lion macports xcode4.3 .bash-profile


【解决方案1】:

首先,您可能需要编辑系统的 PATH

sudo vi /etc/paths

添加以下 2 行:

/opt/local/bin
/opt/local/sbin

重启终端

【讨论】:

  • 经过大量 .bash_profile 调查后,我发现我只需要在安装 MacPorts 后重新启动终端即可。感谢您的提示。
  • 它也适用于我!谢谢你。这应该是正确的答案。
  • @Ila 刚刚重新启动终端对我有用。谢谢你的帮助:)
  • 添加这两行并重新启动终端是在弄乱 .bash_profile 和 .profile 之后最终成功的方法。在我将 opt/local/bin 添加到 etc/paths 之前,这一切都没有结果。
【解决方案2】:

确保删除 ~/.bash_profile 和 ~/.bash_login 以便 .profile 可以工作。这对我有用http://johnnywey.wordpress.com/2008/04/17/fixing-bash-profile-in-os-x/

【讨论】:

  • 我重新启动了终端,但它又消失了:-/
  • 你的 .profile 怎么了?顺便说一句,你还能在终端中使用 sudo 吗?比如 sudo ls?
  • 端口。每次打开终端时,我都必须运行 source .profile 才能识别端口。
  • 听起来你还有 .bash_profile 或 .bash_login superuser.com/questions/366642/profile-not-loaded-osx-lion
  • 你为什么要删除你的~/.bash_profile~/.bash_* 呢?尤其是如果您花费大量时间配置 bash,那么所有这些配置都会立即消失,您每天使用的许多工具也会消失。
【解决方案3】:

您可以尝试获取您的配置文件以更新您的环境:

$ source ~/.profile

【讨论】:

  • 如何获取我的个人资料?我如何运行这个命令,只要在终端上写就可以得到source: no such file or directory: .profile
  • cd $HOME进入你的用户目录然后试试
  • 是的,我只是从那里尝试。
  • OP 有一个.bash_profile,而不是.profile。将该文件重命名为 ~/.profile 并重试。
  • 我将其重命名为.profile。和~/.profile有区别吗?
【解决方案4】:

我在the official website找到了答案

$ vi ~/.profile

# add the following line
export PATH=/opt/local/bin:/opt/local/sbin:$PATH

现在重启终端或输入source !$(相当于source ~/.profile

【讨论】:

  • 谢谢!这是唯一最终帮助我的事情。我实际上没有.profile,所以我创建了一个并添加了该行并且它起作用了。
【解决方案5】:

如果你使用 zsh。请在文件 '~/.zshrc' 中的 'export PATH="..."' 行添加流动字符串

:/opt/local/bin:/opt/local/sbin

【讨论】:

  • 您也可以将MANPATH设置为export MANPATH="/opt/local/share/man"。如果您希望能够在非登录 shell 中访问 MacPorts,请在 ~/.zshenv 中设置这些变量。
【解决方案6】:

在我的机器上,端口位于 /opt/local/bin/port - 尝试将其输入到自己的终端中。

【讨论】:

  • 我的bin文件夹里只有文件(端口是文件)➜ bin ls daemondo port portf portindex portmirror
  • 当你输入`set | 你会得到什么? grep PATH' 进入终端?
  • 二进制文件(标准输入)匹配
  • 对不起,不知道从那里去哪里。这可能会有所帮助:willbryant.net/software/mac_os_x/paths
  • 我的 mac Osx 10.8 上没有 /opt 文件夹?
【解决方案7】:

如果你刚刚安装了 macports 只需运行,它应该可以工作

source ~/.bash_profile

【讨论】:

    【解决方案8】:

    以常规用户帐户运行which port 可以获得什么?从新打开的终端尝试一下。将.bash_profile 重命名为.profile 后重试。你能以普通用户的身份运行port,即使没有参数?

    【讨论】:

    • 在上面添加。已重命名。
    【解决方案9】:

    你可以很简单地添加一行:

    source ~/.profile
    

    到你的 shell rc 文件的底部——如果你使用的是 bash,那么它就是你的 ~/.bash_profile 如果你使用的是 zsh,它就是你的 ~/.zshrc

    然后打开一个新的终端窗口并输入 ports -v 你应该会看到如下所示的输出:

    ~ [ port -v                                                                                                              ] 12:12 pm
    MacPorts 2.1.3
    Entering interactive mode... ("help" for help, "quit" to quit)
    [Users/sh] > quit
    Goodbye
    

    希望对您有所帮助。

    【讨论】:

      【解决方案10】:

      可能存在您的机器由 Puppet 左右管理的情况。然后更改根 .profile 或 .bash_rc 文件根本不起作用。 因此,您可以将以下内容添加到您的 .profile 文件中。之后,您可以使用“mydo”而不是“sudo”。它非常适合我。

      function mydo() {
          echo Executing sudo with: "$1" "${@:2}"
          sudo $(which $1) "${@:2}"
      }
      

      访问我的页面:http://www.danielkoitzsch.de/blog/2016/03/16/sudo-returns-xyz-command-not-found/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-14
        • 2014-07-06
        • 1970-01-01
        • 2020-10-10
        • 2021-09-05
        • 2014-11-25
        • 2018-09-15
        • 2017-12-19
        相关资源
        最近更新 更多