用于安装 PostgreSQL 的 Bash 脚本 - 失败



我构建了这个部署脚本,它在部署 debian 6.0 服务器时运行。我之前在这里展示过它(这是一个linode stackscript,以防其他人想知道):

#!/bin/bash
#
# Install PostgreSQL
#
# Copyright (c) 2010 Filip Wasilewski <en@ig.ma>.
#
# My ref: http://www.linode.com/?r=aadfce9845055011e00f0c6c9a5c01158c452deb
function postgresql_install {
    aptitude -y install postgresql postgresql-contrib postgresql-dev libpq-dev
}
function postgresql_create_user {
    # postgresql_create_user(username, password)
    if [ -z "$1" ]; then
        echo "postgresql_create_user() requires username as the first argument"
        return 1;
    fi
    if [ -z "$2" ]; then
        echo "postgresql_create_user() requires a password as the second argument"
        return 1;
    fi
    echo "CREATE ROLE $1 WITH LOGIN ENCRYPTED PASSWORD '$2';" | sudo -i -u postgres psql
}
function postgresql_create_database {
    # postgresql_create_database(dbname, owner)
    if [ -z "$1" ]; then
        echo "postgresql_create_database() requires database name as the first argument"
        return 1;
    fi
    if [ -z "$2" ]; then
        echo "postgresql_create_database() requires an owner username as the second argument"
        return 1;
    fi
    sudo -i -u postgres createdb --owner=$2 $1
}
postgresql_install
postgresql_create_user(username, password)
postgresql_create_database(dbname, username)

我用这个脚本部署了我的服务器,它是在 Filip 的版本之上构建的,但是当我尝试通过键入 post gresql 来查看 postgresql 是否正在运行时pg_ctl它说找不到命令。

我哪里做错了?由于它是在服务器运行时部署的,因此我无法看到哪里出了问题。

正如人们所说,看起来你的路径上没有PostgreSQL bin目录。根据我在 Ubuntu 上的经验,使用 PostgreSQL 9.1/9.2 从 apt 安装时,postgres 用户已创建,但它没有正确设置您的环境,因此pg_ctlinitdb等都不在您的PATH上。

我看不到你使用的是什么PostgreSQL版本,但我的9.1和9.2实例将二进制文件存储在/usr/lib/postgresql/9.2/bin

检查该目录以查看它是否包含pg_ctl和其他二进制文件。如果是这样,

尝试跑步:

export PATH=$PATH:/usr/lib/postgresql/9.2/bin

看看这是否允许您运行pg_ctl .如果是这样,您需要在从.bashrc或类似设备登录时执行该操作

相关内容

  • 没有找到相关文章

最新更新