bash - 如何确保 Mongo 二进制文件在我的 PATH 中 - 在 Mac 上的 shell rc (~/.bashrc) 中

标签 bash mongodb macos path binaries

我正在学习 mongoDb。
我做了以下事情:我明白这一点。

mkdir -p mongodb
cp -R -n mongodb-osx-x86_64-2.6.7/ mongodb

接下来的这些**说明对我来说不是很清楚。

** 确保二进制文件的位置在 PATH 变量中。 MongoDB 二进制文件位于归档的 bin/目录中。为确保二进制文件在您的 PATH 中,您可以修改 PATH。

例如,您可以在 shell 的 rc 文件(例如 ~/.bashrc)中添加以下行:

export PATH=<mongodb-install-directory>/bin:$PATH

替换为提取的 MongoDB 存档的路径。

说明结束。

从我的 Mac 上的终端

$which bash
/bin/bash

bin目录有一堆命令:bash、chmod、ln、pid、mkdir。

我找不到应该包含上述 PATH 代码的目录。

谢谢

Abhay 的指示奏效了! 对不起,下面的内容很长,但我认为有必要,因为你上次说的很清楚,我想让你看看我的文件结构。
如果电子邮件更容易让我知道,但这更有可能帮助其他人:) 我真的很想了解我的文件结构,所以如果您不介意进一步澄清的话。 再次感谢您的专业知识。

1。 但是为什么所有的二进制文件(可执行文件)都单独列在这个 bin 文件夹中?它们是应该“存在”在此文件夹中的“唯一”文件吗? 也许当我安装 bower grunt 等时,我应该将那些(bower grunt 等)安装到不同的位置。 我试图保持我的文件结构合乎逻辑和干净。 这是我所拥有的。

MacBookPro:usr regina$ cd ..
MacBookPro:/ regina$ ls
Applications        bin         net
CoreSyncInstall.log cores           private
Library         data            sbin
Network         dev         tmp
System          etc         usr
Users           home            var
Volumes         mach_kernel
MacBookPro:/ regina$ cd usr/local/bin
MacBookPro:bin regina$ ls
bower       grunt       mongod      mongorestore    npm
browserify  gulp        mongodump   mongos      statsd
bsondump    http-server mongoexport mongosniff  yo
cake        karma       mongofiles  mongostat
coffee      lessc       mongoimport mongotop
cordova     mkdirp      mongooplog  node
express     mongo       mongoperf   nodemon
MacBookPro:bin regina$ 

2。 另外,我想看看我的 .bashrc 文件。我一个也没有。我在 osx 10.8.5 我想“查看”我的 $PATH 变量。我相信我几个月前在某个地方找到了它。我正在使用 nano 打开一堆文件,因为我很好奇。它是否被列为环境变量?

MacBookPro:/ regina$ ls
Applications        bin         net
CoreSyncInstall.log cores           private
Library         data            sbin
Network         dev         tmp
System          etc         usr
Users           home            var
Volumes         mach_kernel
MacBookPro:/ regina$ cd home
MacBookPro:home regina$ ls -la
total 2
dr-xr-xr-x   2 root  wheel     1 Feb  3 08:29 .
drwxr-xr-x  33 root  wheel  1190 Jan 25 17:21 ..
MacBookPro:home regina$ 
  1. 我像这样启动 mongo shell。我没有显示终端中输出的所有行。
    看看我的文件结构。我最初遵循了一个 cp 命令,但它没有解释复制存档(桌面)mongodb-osx-x84....文件夹的“位置”,所以看看我将它复制到哪里。现在我在 2 个位置有这些文件 - 是吗? 我在更高级别的 mongodb 文件夹中有一个 mongodb 文件夹。 为什么 ?我是怎么做到的?这似乎不合逻辑。我已经缩进了 4 个空格,但下面不会格式化,所以我只是添加了换行符。对不起。

    MacBookPro:home regina$ cd ..

    MacBookPro:/regina$ ls 应用箱网 CoreSyncInstall.log 核心私有(private) 图书馆数据sbin 网络开发 tmp 系统等 usr 用户主页 var 卷 mach_kernel

    MacBookPro:/regina$ cd 数据

    MacBookPro:data regina$ ls

    db mongodb

    MacBookPro:data regina$ cd mongodb

    MacBookPro:mongodb regina$ ls

    mongodb MacBookPro:mongodb regina$ cd mongodb MacBookPro:mongodb regina$ ls GNU-AGPL-3.0 第三方通知 自述文件箱

    MacBookPro:mongodb regina$ cd bin

    MacBookPro:bin regina$ ls

    bsondump mongodump mongoimport mongorestore mongostat mongo mongoexport mongooplog mongos mongotop mongod mongofiles mongoperf mongosniff

  2. 当我按照另一个论坛的建议尝试输入“mongo”时会发生这种情况。

    MacBookPro:bin regina$ mongo MongoDB外壳版本:2.6.7 连接到:测试 2015-02-03T08:36:54.157-0500 警告:无法连接到 127.0.0.1:27017,原因:errno:61 连接被拒绝

所以我输入了这个仍然失败。

MacBookPro:bin regina$ ./mongo
MongoDB shell version: 2.6.7
connecting to: test
2015-02-03T08:37:03.599-0500 warning: Failed to connect to    127.0.0.1:27017, reason: errno:61 Connection refused

然后我尝试了这个连接 - 打开端口 27017 - 并且正在监听。为什么我需要 daemon 命令?

MacBookPro:bin regina$ ./mongod
./mongod --help for help and startup options
2015-02-03T08:37:08.712-0500 [initandlisten] MongoDB starting :    pid=487 port=27017 dbpath=/data/db 64-bit host=macbookpro.home
more lines of code
2015-02-03T08:37:09.018-0500 [initandlisten] waiting for connections on port 27017

最佳答案

当您下载 MongoDB for Mac 时,您会获得一个存档文件。您需要做的第一件事是解压缩存档。为此,您只需双击存档。未压缩的文件夹将在 bin 文件夹中包含二进制文件,例如 mongodb-osx-x86_64-2.6.7/bin。您接下来需要做的是确保这些二进制文件是可访问的。所以,为此你可以做两件事中的任何一件 -

  1. 将二进制文件复制到 /usr/local/bin 文件夹。由于 /usr/local/bin 始终在 PATH 中,因此您不必将其添加到 PATH 中。

    这很简单。运行 cp mongodb-osx-x86_64-2.6.7/bin/*/usr/local/bin/。而已。你们都完成了。

  2. 将二进制文件夹的路径添加到您的 $PATH 变量中。

    打开位于您的主文件夹中的 .bashrc 文件,并将 export PATH=$HOME/mongodb/bin:$PATH 行放在最后。我假设 mongodb 在下载中未压缩。

如果使用第二种方法,请确保您不会意外删除 PATH 中添加的 mongodb 文件夹。

完成此操作后,关闭终端,打开一个新的终端窗口并运行:

mongo --version

如果你得到带有版本的 mongodb 信息,那很好。

如果您仍然得到类似 command mongo not found 的信息,请确保您正确遵循了上述说明。还要确保您没有使用任何其他 shell,例如 zsh。如果是,则必须在相应的 shell 文件中添加 export 语句。对于 zsh,文件名为 .zshrc.


好的!因此,当您用更多问题更新了初始问题时。所以这里逐点解释:

  1. 您在 /usr/local/bin 文件夹中看到的文件是二进制文件。用简单的语言来说,它们是可执行程序。尽管您可以在命令行中的任何位置运行它们,但这些可执行二进制文件仍然存在。

  2. .bashrc 文件位于用户的主目录中。在 Mac 上是 /Users/username。在你的情况下,它应该是 /Users/regina 因为你的名字是 Regina。

  3. mongo 是客户端应用程序。它用于与 mongodb 数据库交互。而且,mongod 是存储数据的数据库守护进程。所以首先你必须运行 mongod,然后只有你可以使用客户端 mongo 连接到它并开始查询。

关于bash - 如何确保 Mongo 二进制文件在我的 PATH 中 - 在 Mac 上的 shell rc (~/.bashrc) 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28267773/

相关文章:

javascript - 从 bash 脚本运行 javascript

json - 如何读取 json 文件并将条目保存到 mongodb

macos - Swift:无法在 NSSpeechRecognizer 中设置命令

swift - Xcode 无法自动运行新创建的 macOS 项目

bash - 脚本中的 source .bashrc 不起作用

linux - 如何将 cu 的输出重定向到文件?

linux - Shell脚本在特定时间杀死进程,输入进程名称和时间

ruby-on-rails - 带有 accepts_nested_attributes_for 的 Mongoid 自引用

java - mongo-java 3 中自动获取 DBRef

macos - Mac OS X : CGGetLastMouseDelta and moving the mouse programatically