【问题标题】:Issues with script on 64bit Ubuntu64 位 Ubuntu 上的脚本问题
【发布时间】:2012-12-25 09:12:22
【问题描述】:

我在几台机器上使用了一个脚本https://github.com/reddit/reddit/blob/master/install-reddit.sh,每次都能完美运行。现在,一台具有 Ubuntu 64 位的服务器,我遇到了脚本的一部分问题。

###############################################################################
# Configure PostgreSQL
###############################################################################
SQL="SELECT COUNT(1) FROM pg_catalog.pg_database WHERE datname = 'reddit';"
IS_DATABASE_CREATED=$(sudo -u postgres psql -t -c "$SQL")

if [ $IS_DATABASE_CREATED -ne 1 ]; then
    cat <<PGSCRIPT | sudo -u postgres psql
CREATE DATABASE reddit WITH ENCODING = 'utf8' TEMPLATE template0;
CREATE USER reddit WITH PASSWORD 'password';
PGSCRIPT
fi

sudo -u postgres psql reddit < $REDDIT_HOME/reddit/sql/functions.sql

这基本上破坏了整个安装过程。我试过从脚本手动运行这些行,比如sudo -u postgres psql,但我根本没有得到任何输出。似乎数据库创建不完整,因为如果我按照手动设置 POSTGRESQL 的指南进行操作,命令 sudo -u postgres initdb -D /usr/local/pgsql/data 将失败并显示以下输出:

sudo: initdb: command not found

我也尝试在路径中添加东西,export PATH=$PATH:/usr/lib/postgresql/bin 但也没有帮助,initdb 将无法启动。安装了postgresql,所以我真的不知道是什么原因造成的。

/etc/init.d/postgresql status 的输出是Running clusters: 9.1/main,因此服务正在运行。

我什至尝试安装 ia32-libs 和 libc6-i386,但也没有太大区别。

更新:在处理完该问题后,如 cmets 中所述,我遇到了另一个问题。我也将其放在这里,因为我认为它也与此密切相关。然后我收到以下错误:

+ sudo -u reddit make pyx
[+] including definitions from Makefile.py
python setup.py build_ext --inplace
/home/reddit/reddit/r2/ez_setup.py:101: UserWarning: Module ez_setup was already imported from /home/reddit/reddit/r2/ez_setup.pyc, but /usr/lib/pymodules/python2.7 is being added to sys.path
  import pkg_resources
running build_ext
skipping './r2/models/_builder.c' Cython extension (up-to-date)
building 'r2.models._builder' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c ./r2/models/_builder.c -o build/temp.linux-x86_64-2.7/./r2/models/_builder.o
unable to execute gcc: Permission denied
error: command 'gcc' failed with exit status 1

所以,这个 gcc 事情现在引起了问题。这行触发了这个: cd $REDDIT_HOME/reddit/r2 sudo -u $REDDIT_OWNER make pyx # 从 .pyx 生成 .c 文件

$REDDIT_OWNER 是 reddit,因此它以该用户身份运行,并最终导致这些错误。任何人都可以为此提出一个潜在的解决方案吗? make: * [build/pyx-buildstamp] 错误 1

感谢您的帮助!

【问题讨论】:

  • 感谢 knittl,这让我解决了一些问题。我尝试找到 initdb 但没有帮助,但是当我查看 /usr/lib/postgresql/9.1/bin/postgres 正如您的讨论所提到的那样时,我喜欢它。我将 initdb、pqsl 更改为该路径,并且这些东西有效。但现在我有另一个问题:)

标签: bash postgresql gcc ubuntu 64-bit


【解决方案1】:

您可能遇到了 PATH 被 sudo 重置的问题。见here

【讨论】:

  • 嘿,正如我在上面的评论中提到的,我在 /usr/lib/postgresql/9.1/bin/postgres 中找到了这些东西,并且我设法从 bash 手动完成了所有 postgres 的事情,不再冒险使用脚本。但是,不幸的是,我现在有另一个问题,使用 gcc,我已经更新了我原来的帖子。
  • 用户reddit似乎没有执行gcc的权限。通常每个用户都有使用 gcc 的权限,但那里可能存在一些安全问题。确保正确设置权限(chmod a+x /path/to/gcc)
猜你喜欢
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多