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

时间:2015-02-01 20:57:18

标签: 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:家庭regina $ cd ..

    MacBookPro:/ regina $ ls 应用bin网 CoreSyncInstall.log核心私有 图书馆数据sbin 网络开发 系统等usr 用户家庭var 卷mach_kernel

    MacBookPro:/ regina $ cd data

    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 shell版本:2.6.7 连接到:测试 2015-02-03T08:36:54.157-0500警告:无法连接到127.0.0.1:27017,原因:错误:61连接被拒绝

  3. 所以我输入的内容仍然失败。

    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 - 并正在收听。为什么我需要守护进程命令?

    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
    

1 个答案:

答案 0 :(得分:34)

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

  1. 将二进制文件复制到/usr/local/bin文件夹。由于/usr/local/bin始终处于PATH状态,因此您无需将其添加到路径中。

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

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

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

  3. 如果使用第二种方法,请确保您不会意外删除路径中添加的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因为您的名字是里贾纳。

    3. mongo是客户端应用程序。它用于与mongodb数据库交互。并且,mongod是存储数据的数据库deamon。首先,您必须运行mongod,然后才能使用客户端mongo连接到它并开始查询。