正如标题所示,在 bash 中,命令uname -m
和arch
都返回 x86_64,这表明我使用的是 64 位操作系统和处理器。但是,当我使用aptitude
或apt-get
安装包 mongodb-10gen 时,安装的是 32 位版本。
因此,我尝试下载 64 位 tarball:
curl http://downloads.mongodb.org/linux/mongodb-linux-x86_64-2.4.4.tgz > mongodb.tgz
tar -zxvf mongodb.tgz
但是,当我尝试运行其中一个可执行文件(从解压后的目录中)时./bin/mongo
,响应是“没有这样的文件或目录。” bin 目录中的所有可执行文件的情况都相同,尽管它们显然确实存在。
这是怎么回事?是uname -m
误报操作系统吗?
更新我知道权限不是问题。我运行了chown -R myusername mongodb/
,并且chmod -R 777 mongodb/
找到mongodb/
了将解压后的目录移动到的位置。
答案1
您缺少共享库。运行ldd ./bin/mongo
以查看是哪些。
但是,您应该使用 10gen repo。您在/etc/apt/conf.d
设置中看到任何配置了吗APT::Architecture
?如果没有,请尝试使用强制架构apt-get install mongodb-10gen:amd64
。
编辑:你使用的是 10gen repo 吗?如果没有,请运行apt-add-repository http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen
编辑2:WFM:
~/tmp$ curl http://downloads.mongodb.org/linux/mongodb-linux-x86_64-2.4.4.tgz > mongodb.tgz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 90.2M 100 90.2M 0 0 4088k 0 0:00:22 0:00:22 --:--:-- 4393k
~/tmp$ tar -zxf mongodb.tgz
~/tmp$ cd mongodb-linux-x86_64-2.4.4/
~/tmp/mongodb-linux-x86_64-2.4.4$ bin/mongo
MongoDB shell version: 2.4.4
connecting to: test
Fri Jun 14 13:44:59.379 JavaScript execution failed: Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:L112
exception: connect failed