Как следует из названия, в bash команды uname -m
и arch
оба возвращают x86_64, предполагая, что я использую 64-битную ОС и процессор. Но когда я использую aptitude
или apt-get
для установки пакета mongodb-10gen устанавливается 32-битная версия.
Итак, я попытался загрузить 64-битный архив:
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/
это место, куда я переместил неупакованный каталог.
Вам не хватает общих библиотек. Бегать ldd ./bin/mongo
чтобы увидеть, какие.
Однако вы должны использовать репо 10gen. Вы видите какие-нибудь конфиги в /etc/apt/conf.d
установка APT::Architecture
? Если нет, попробуйте заставить архитектуру apt-get install mongodb-10gen:amd64
.
Изменить: вы используете репо 10gen? Если не запустить apt-add-repository http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen
Edit2: 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