今天安装 Postgresql14 遇到一个问题, 目标服务器只有内网, 内网提供标准的apt仓库, 但是因为不能连接外网, 所以没法添加第三方仓库, 这样安装pg14就成了问题.
从pg的官网看, https://www.postgresql.org/download/, 对于Linux, pg只提供仓库和源码两种方式, 因此不能访问外网时, 貌似只有源码编译这条路. 因为源码编译费时费力并且安装阶段需要自行配置, 容易出错. 对于机器上只需要安装一个实例的场景, 能用仓库还是用仓库.
如果还有一台安装了同样发行版, 并且可以上网的机器, 可以通过这台机器将离线安装包下载下来, 再传到目标机器上安装. 下载离线安装包和中转机器是否已经安装此软件无关, 即使已经安装, 也可以下载
# Create the file repository configuration:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
# Import the repository signing key:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# Update the package lists:
sudo apt-get update
这时候通过下面的命令可以看到postgresql的安装候选
$ apt-cache show postgresql
Package: postgresql
Source: postgresql-common (243.pgdg20.04+1)
Version: 14+243.pgdg20.04+1
Architecture: all
Maintainer: Debian PostgreSQL Maintainers <team+postgresql@tracker.debian.org>
Installed-Size: 70
Depends: postgresql-14
Suggests: postgresql-doc
Priority: optional
Section: database
Filename: pool/main/p/postgresql-common/postgresql_14+243.pgdg20.04+1_all.deb
Size: 67068
...
Package: postgresql
Architecture: all
Version: 12+214ubuntu0.1
Priority: optional
Section: database
Source: postgresql-common (214ubuntu0.1)
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian PostgreSQL Maintainers <team+postgresql@tracker.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 66
Depends: postgresql-12
Suggests: postgresql-doc
Filename: pool/main/p/postgresql-common/postgresql_12+214ubuntu0.1_all.deb
Size: 3924
...
Package: postgresql
Architecture: all
Version: 12+214
Priority: optional
Section: database
Source: postgresql-common (214)
...
可以看到, 有三个候选, 其中版本14排在最前面, 如果apt install, 会安装最前面这个
前一步确定了默认安装的版本是需要的版本14后, 就可以通过apt-rdepends命令查看安装包的软件依赖关系, 这是一个很长的列表, 下面省略了大部分的内容, 仅列出一些和pg安装相关的包
$ apt-rdepends postgresql
Reading package lists... Done
Building dependency tree
Reading state information... Done
postgresql
Depends: postgresql-14
postgresql-14
Depends: debconf (>= 0.5)
...
Depends: locales-all
Depends: postgresql-client-14
Depends: postgresql-common (>= 229~)
Depends: ssl-cert
Depends: tzdata
Depends: zlib1g (>= 1:1.1.4)
debconf
PreDepends: perl-base (>= 5.20.1-3~)
perl-base
libpq5
postgresql-client-14
Depends: postgresql-client-common (>= 182~)
postgresql-client-common
Depends: pgdg-keyring
postgresql-common
Depends: postgresql-client-common (= 243.pgdg20.04+1)
...
libattr1
Depends: libc6 (>= 2.4)
通过这个依赖关系, 能大概确定第一步需要下载的安装包, 然后通过apt download命令下载
apt download postgresql-14 postgresql-client-14 postgresql-common postgresql-client-common
下载之后的文件
$ ll
total 17316
-rw-r--r-- 1 milton milton 15785632 Aug 11 09:35 postgresql-14_14.5-1.pgdg20.04+1_amd64.deb
-rw-r--r-- 1 milton milton 1617564 Aug 11 09:35 postgresql-client-14_14.5-1.pgdg20.04+1_amd64.deb
-rw-r--r-- 1 milton milton 91896 Sep 8 14:07 postgresql-client-common_243.pgdg20.04+1_all.deb
-rw-r--r-- 1 milton milton 231472 Sep 8 14:07 postgresql-common_243.pgdg20.04+1_all.deb
这些文件传到目标机器上后, 按依赖关系逆序安装,
sudo dpkg -i pgdg-keyring_2018.2_all.deb
sudo dpkg -i postgresql-client-common_243.pgdg20.04+1_all.deb
sudo dpkg -i postgresql-common_243.pgdg20.04+1_all.deb
sudo apt -f install
sudo dpkg -i postgresql-client-14_14.5-1.pgdg20.04+1_amd64.deb
sudo dpkg -i libpq5_14.5-1.pgdg20.04+1_amd64.deb
sudo dpkg -i postgresql-client-14_14.5-1.pgdg20.04+1_amd64.deb
sudo dpkg -i postgresql-14_14.5-1.pgdg20.04+1_amd64.deb
sudo apt -f install
安装的过程中, 会提示依赖缺失, 这会有两种情况, 一种是在标准仓库中存在的, 可以直接通过下面的命令自动安装
sudo apt -f install
另一种是在标准仓库中不存在的, 需要在中转机器上通过apt download下载之后再传到目标机器安装. 对应pg14, 最后完整的下载文件列表为
$ ll
total 17500
-rw-r--r-- 1 milton milton 172828 Aug 11 09:34 libpq5_14.5-1.pgdg20.04+1_amd64.deb
-rw-r--r-- 1 milton milton 10666 Nov 15 2018 pgdg-keyring_2018.2_all.deb
-rw-r--r-- 1 milton milton 15785632 Aug 11 09:35 postgresql-14_14.5-1.pgdg20.04+1_amd64.deb
-rw-r--r-- 1 milton milton 1617564 Aug 11 09:35 postgresql-client-14_14.5-1.pgdg20.04+1_amd64.deb
-rw-r--r-- 1 milton milton 91896 Sep 8 14:07 postgresql-client-common_243.pgdg20.04+1_all.deb
-rw-r--r-- 1 milton milton 231472 Sep 8 14:07 postgresql-common_243.pgdg20.04+1_all.deb
我试过重新启动apache,缓存的页面仍然出现,所以一定有一个文件夹在某个地方。我没有“公共(public)/缓存”,那么我还应该查看哪些其他地方?是否有一个URL标志也可以触发此效果? 最佳答案 您需要触摸一个文件才能清除phusion,例如:touch/webapps/mycook/tmp/restart.txt参见docs 关于ruby-如何在Ubuntu中清除RubyPhusionPassenger的缓存?,我们在StackOverflow上找到一个类似的问题:
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
我已经找到了几个使用datamapper的示例,并且能够让它们正常工作。不过,所有这些示例都是针对sqlite数据库的。我正在尝试将数据映射器与postgresql一起使用。我将datamapper中的调用从sqlite3更改为postgres,并且我已经安装了dm-postgres-adapter。但它仍然不起作用。我还需要做什么? 最佳答案 与SQLite不同,PostgreSQL不将数据库存储在单个文件中。在你拥有createdyourdatabase之后,尝试这样的事情:DataMapper.setup:default,{:
我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin
我正在运行Ubuntu11.10并像这样安装Ruby1.9:$sudoapt-getinstallruby1.9rubygems一切都运行良好,但ri似乎有空文档。ri告诉我文档是空的,我必须安装它们。我执行此操作是因为我读到它会有所帮助:$rdoc--all--ri现在,当我尝试打开任何文档时:$riArrayNothingknownaboutArray我搜索的其他所有内容都是一样的。 最佳答案 这个呢?apt-getinstallri1.8编辑或者试试这个:(非rvm)geminstallrdocrdoc-datardoc-da
我试图在Ubuntu14.04中使用Curl安装RVM。我运行了以下命令:\curl-sSLhttps://get.rvm.io|bash-sstable出现如下错误:curl:(7)Failedtoconnecttoget.rvm.ioport80:Networkisunreachable非常感谢解决此问题的任何帮助。谢谢 最佳答案 在执行curl之前尝试这个:echoipv4>>~/.curlrc 关于ruby-在Ubuntu14.04中使用Curl安装RVM时出错,我们在Stack
我找到了这样的东西:Rails:Howtolistdatabasetables/objectsusingtheRailsconsole?这一行没问题:ActiveRecord::Base.connection.tables并返回所有表但是ActiveRecord::Base.connection.table_structure("users")产生错误:ActiveRecord::Base.connection.table_structure("projects")我认为table_structure不是Postgres方法。如何列出Postgres数据库的Rails控制台中表中的所有
我想使用PostgreSQL中的point类型。我已经完成了:railsgmodelTestpoint:point最终的迁移是:classCreateTests当我运行时:rakedb:migrate结果是:==CreateTests:migrating====================================================--create_table(:tests)rakeaborted!Anerrorhasoccurred,thisandalllatermigrationscanceled:undefinedmethod`point'for#/hom