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

sha*_*ace 18 macos bash path binaries mongodb

我正在学习mongoDb.
我做了以下事情:我理解这一点.

mkdir -p mongodb
cp -R -n mongodb-osx-x86_64-2.6.7/ mongodb
Run Code Online (Sandbox Code Playgroud)

这些下一个**指令对我来说并不是很清楚.

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

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

export PATH=<mongodb-install-directory>/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

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

结束说明.

从我的Mac上的终端

$which bash
/bin/bash
Run Code Online (Sandbox Code Playgroud)

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$ 
Run Code Online (Sandbox Code Playgroud)

另外,我想查看我的.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$ 
Run Code Online (Sandbox Code Playgroud)
  1. 我像这样启动mongo shell.我没有显示终端中的所有线路输出.
    看看我的文件结构.我最初遵循了一个cp命令,但它没有解释'在哪里'复制存档(桌面)mongodb-osx-x84 ....文件夹,所以看看我把它复制到哪里.现在我将这些文件放在2个位置 - 是吗?我在更高级别的mongodb文件夹中有一个mongodb文件夹.为什么?我是如何管理这个的?这似乎不合逻辑.我缩进了4个空格,但下面不会格式化所以我只是添加了换行符.抱歉.

    MacBookPro:家庭regina $ cd ..

    MacBookPro:/ regina $ ls应用程序bin net CoreSyncInstall.log核心私有库数据sbin网络dev tmp系统等usr用户home var卷mach_kernel

    MacBookPro:/ regina $ cd数据

    MacBookPro:数据regina $ ls

    db mongodb

    MacBookPro:数据regina $ cd mongodb

    MacBookPro:mongodb regina $ ls

    mongodb MacBookPro:mongodb regina $ cd mongodb MacBookPro:mongodb regina $ ls GNU-AGPL-3.0 THIRD-PARTY-NOTICES README bin

    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连接到:test 2015-02-03T08:36:54.157-0500警告:无法连接到127.0.0.1:27017,原因:错误: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
Run Code Online (Sandbox Code Playgroud)

然后我尝试了连接 - 打开端口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
Run Code Online (Sandbox Code Playgroud)

Abh*_* PS 35

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

  1. 将二进制/usr/local/bin文件复制到文件夹.与/usr/local/binPATH中一样,因此您不必将其添加到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
Run Code Online (Sandbox Code Playgroud)

如果你得到版本的mongodb信息,那么很好.

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


好的!因此,您已经用更多问题更新了最初的问题.所以这里逐点解释:

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

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

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