Ubuntu 18.04 Bionic无法访问PostgreSQL源,如何安装PostgreSQL?
在Ubuntu 18.04 Bionic上安装PostgreSQL的方案(移除PGDG源后)
方法一:用Ubuntu官方仓库安装
Ubuntu 18.04的官方软件源里自带PostgreSQL,虽然版本不是最新的(默认是10版),但稳定性拉满,操作也简单:
- 先更新本地索引:
sudo apt update - 安装服务器和客户端套件:
sudo apt install postgresql postgresql-client - 验证安装成功:
sudo systemctl status postgresql,看到输出里有active(running)就搞定了
方法二:源码编译安装(适合要特定版本的情况)
完全可以通过源码编译来装,步骤如下:
- 先装编译依赖
把编译需要的工具和库都装上:sudo apt install build-essential libreadline-dev zlib1g-dev flex bison libxml2-dev libxslt-dev libssl-dev libcurl4-openssl-dev - 下载源码包
去PostgreSQL官方源码页面选择你需要的稳定版本(比如13版,属于LTS长期支持版),下载对应的tar.gz格式源码包。也可以用wget直接拉取,示例命令(替换版本号为你需要的):wget 对应版本的源码包下载链接 - 解压并编译安装
tar -zxvf postgresql-13.12.tar.gz cd postgresql-13.12 ./configure --prefix=/usr/local/pgsql # 这里指定安装路径,可根据自己需求改 make -j$(nproc) # 用所有CPU核编译,提速明显 sudo make install - 配置环境变量
编辑~/.bashrc文件,加上两行:
然后让配置生效:export PATH=/usr/local/pgsql/bin:$PATH export PGDATA=/usr/local/pgsql/datasource ~/.bashrc - 初始化数据库
先创建postgres用户(系统里没这个用户的话):
切换到postgres用户执行初始化:sudo useradd -m postgres sudo passwd postgressu - postgres initdb -D /usr/local/pgsql/data - 启动服务并设置开机自启
临时启动:pg_ctl -D /usr/local/pgsql/data start
要开机自启的话,创建systemd服务文件/etc/systemd/system/postgresql.service,内容填:
然后执行:[Unit] Description=PostgreSQL database server After=network.target [Service] User=postgres Group=postgres ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data ExecReload=/bin/kill -HUP $MAINPID KillMode=mixed KillSignal=SIGINT TimeoutSec=0 [Install] WantedBy=multi-user.targetsudo systemctl daemon-reload sudo systemctl enable postgresql sudo systemctl start postgresql
小贴士
- 如果不需要新特性,优先用官方仓库安装,不用折腾编译,出问题也好排查。
- 编译过程中如果报错,大概率是依赖没装全,对照错误提示把对应的依赖补上再重新编译就行。
内容的提问来源于stack exchange,提问作者fueggit
相关产品推荐
相关产品推荐

