如何以非特权用户身份构建和安装 PL/R?

如何以非特权用户身份构建和安装 PL/R?

有一个 postgres 实例,我有能力构建自己的实例。

使用这些说明我跑:

USE_PGXS=1 make

这有效但后来

USE_PGXS=1 make install

没有,出现以下错误:

/bin/sh /usr/lib64/pgsql/pgxs/src/makefiles/../../config/mkinstalldirs '/usr/lib64/pgsql'
mkdir -p -- /usr/share/pgsql/contrib
mkdir: 不能创建目录 `/usr/share/pgsql/contrib': 权限被拒绝
make:*[安装目录] 错误 1

理想情况下,我想在本地安装它,但我不知道这是否可行。

我使用的是红帽 5。

答案1

pl/R 列表可能是一个更好的地方来询问您是否遇到困难。乔·康威也在那里回答问题。从 pl/R Debian 软件包的快速编译来看,您似乎想向 make 传递 DESTDIR 参数。就像是

make DESTDIR=/home/...

这是 Debian 软件包中的 make 行

USE_PGXS=1 PG_CONFIG=/usr/lib/postgresql/8.4/bin/pg_config /usr/bin/make  -C . \   
CFLAGS="-g -Wall -O2" CXXFLAGS="-g -Wall -O2" CPPFLAGS="" LDFLAGS="" \
-I/usr/share/R/include PG_CPPFLAGS=-I/usr/share/R/include

这是 make install 行

USE_PGXS=1 PG_CONFIG=/usr/lib/postgresql/8.4/bin/pg_config /usr/bin/make  -C . \
CFLAGS="-g -Wall -O2" CXXFLAGS="-g -Wall -O2" CPPFLAGS="" LDFLAGS=""  USE_PGXS=1 \   
R_HOME=/usr/lib/R install DESTDIR=debian/tmp/

正如您所看到的,您可能还需要设置许多其他参数。就我个人而言,我会尝试说服您的系统管理员安装二进制文件。

答案2

我认为您需要运行带有一些额外选项的 make 来指定软件的安装位置,可能在您的主文件夹中的某个位置。您可能还必须排除安装中执行诸如标记守护进程在系统启动时运行之类的操作的部分,因为您的用户将无法执行此操作。

make prefix=/home/username/my_postgres install

请参阅make 的文档有关您可以设置的一些更常见的值。

答案3

configure解压后的目录下有命令吗?

通过一些软件你可以运行 ./configure --prefix=/home/yourname/some_directory

随后是 makemake install

如果有的话,完成后make您可以手动将可执行文件复制到您的/home/username/bin目录或路径中的任何位置。库文件可以复制到您的/home/username/lib.在您的主目录或您拥有所有权的目录下,任何事情都是可能的,只需将它们放在正确的位置即可。

相关内容