centos7安装pgagent:
默认cmake已经安装
编译wxGTK
https://excellmedia.dl.sourceforge.net/project/wxwindows/2.8.7/wxGTK-2.8.7.tar.gz
# yum install gcc gcc-c++
# tar -zxf wxGTK-2.8.7.tar.gz
# cd wxGTK-2.8.7
[wxGTK-2.8.7]# vi /etc/profile
export PGHOME=/usr/local/postgresql
export PGDATA=/data/pg_data
export PATH=$PATH:$PGHOME/bin:/usr/local/wxGTK-2.8.7/bin
export LD_LIBRARY_PATH=/usr/local/wxGTK-2.8.7/lib:$PGHOME/lib:$LD_LIBRARY_PATH
[wxGTK-2.8.7]# source /etc/profile
bash: TMOUT: readonly variable
# echo $TMOUT
# export TMOUT=1700
# exit
# export TMOUT=1700
[wxGTK-2.8.7]# ./configure --enable-shared=no --enable-unicode=yes --prefix=/usr/local/wxGTK-2.8.7
checking for GTK+ version...
checking for pkg-config... /usr/bin/pkg-config
checking for GTK+ - version >= 2.0.0... no
*** Could not run GTK+ test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GTK+ is incorrectly installed.
configure: error:
The development files for GTK+ were not found. For GTK+ 2, please
ensure that pkg-config is in the path and that gtk+-2.0.pc is
installed. For GTK+ 1.2 please check that gtk-config is in the path,
and that the version is 1.2.3 or above. Also check that the
libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
--libs' are in the LD_LIBRARY_PATH or equivalent.
# yum -y install gtk2-devel binutils-devel
[wxGTK-2.8.7]# ./configure --enable-shared=no --enable-unicode=yes --prefix=/usr/local/wxGTK-2.8.7
[wxGTK-2.8.7]# make
In file included from ./include/wx/gsocket.h:179,
from ./src/gtk/gsockgtk.cpp:21:
./include/wx/unix/gsockunx.h:40: error: using typedef-name ‘GSocket’ after ‘class’
/usr/include/glib-2.0/gio/giotypes.h:141: error: ‘GSocket’ has a previous declaration here
./src/gtk/gsockgtk.cpp: In function ‘void _GSocket_GDK_Input(void*, gint, GdkInputCondition)’:
./src/gtk/gsockgtk.cpp:34: error: ‘struct _GSocket’ has no member named ‘Detected_Read’
./src/gtk/gsockgtk.cpp:36: error: ‘struct _GSocket’ has no member named ‘Detected_Write’
./src/gtk/gsockgtk.cpp: In member function ‘virtual bool GSocketGUIFunctionsTableConcrete::Init_Socket(GSocket*)’:
./src/gtk/gsockgtk.cpp:56: error: ‘struct _GSocket’ has no member named ‘m_gui_dependent’
./src/gtk/gsockgtk.cpp:57: error: ‘struct _GSocket’ has no member named ‘m_gui_dependent’
./src/gtk/gsockgtk.cpp: In member function ‘virtual void GSocketGUIFunctionsTableConcrete::Destroy_Socket(GSocket*)’:
./src/gtk/gsockgtk.cpp:67: error: ‘struct _GSocket’ has no member named ‘m_gui_dependent’
./src/gtk/gsockgtk.cpp: In member function ‘virtual void GSocketGUIFunctionsTableConcrete::Install_Callback(GSocket*, GSocketEvent)’:
./src/gtk/gsockgtk.cpp:72: error: ‘struct _GSocket’ has no member named ‘m_gui_dependent’
./src/gtk/gsockgtk.cpp:75: error: ‘struct _GSocket’ has no member named ‘m_fd’
./src/gtk/gsockgtk.cpp:83: error: ‘struct _GSocket’ has no member named ‘m_server’
./src/gtk/gsockgtk.cpp:90: error: ‘struct _GSocket’ has no member named ‘m_fd’
./src/gtk/gsockgtk.cpp: In member function ‘virtual void GSocketGUIFunctionsTableConcrete::Uninstall_Callback(GSocket*, GSocketEvent)’:
./src/gtk/gsockgtk.cpp:98: error: ‘struct _GSocket’ has no member named ‘m_gui_dependent’
./src/gtk/gsockgtk.cpp:108: error: ‘struct _GSocket’ has no member named ‘m_server’
make: *** [corelib_gsockgtk.o] Error 1
[wxGTK-2.8.7]# vi src/gtk/gsockgtk.cpp
#define GSocket GlibGSocket
#include
#include
#undef GSocket
#undef GSocket和#define GSocket GlibGSocket是添加的内容
[wxGTK-2.8.7]# make install
https://ftp.postgresql.org/pub/pgadmin/pgagent/pgAgent-3.4.0-Source.tar.gz
# tar -zxf pgAgent-3.4.0-Source.tar.gz
# cd pgAgent-3.4.0-Source
[pgAgent-3.4.0-Source]# cmake ./
--
-- ================================================================================
-- Configuration summary:
--
-- Project : pgagent
-- Description : pgAgent is a job scheduling engine for PostgreSQL
-- Version : 3.4.0
--
-- PostgreSQL version string : PostgreSQL 9.4.18
-- PostgreSQL version parts : 9.4.18
-- PostgreSQL path : /usr/pgsql-9.4
-- PostgreSQL config binary : /usr/pgsql-9.4/bin/pg_config
-- PostgreSQL include path : /usr/pgsql-9.4/include
-- PostgreSQL library path : /usr/pgsql-9.4/lib
-- PostgreSQL share path : /usr/pgsql-9.4/share
--
-- wxWidgets version : 2.8.7
-- wxWidgets path : /usr/local/wxGTK-2.8.7
-- wxWidgets config binary : /usr/local/wxGTK-2.8.7/bin/wx-config
-- wxWidgets Static linking : YES
-- wxWidgets Debug? : NO
-- ================================================================================
--
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/openv/pg_packges/pgAgent-3.4.0-Source
[pgAgent-3.4.0-Source]# make
Scanning dependencies of target pgagent
[ 12%] Building CXX object CMakeFiles/pgagent.dir/unix.cpp.o
[ 25%] Building CXX object CMakeFiles/pgagent.dir/job.cpp.o
[ 37%] Building CXX object CMakeFiles/pgagent.dir/precomp.cpp.o
[ 50%] Building CXX object CMakeFiles/pgagent.dir/win32.cpp.o
[ 62%] Building CXX object CMakeFiles/pgagent.dir/pgAgent.cpp.o
[ 75%] Building CXX object CMakeFiles/pgagent.dir/connection.cpp.o
[ 87%] Building CXX object CMakeFiles/pgagent.dir/misc.cpp.o
Linking CXX executable pgagent
/usr/bin/ld: cannot find -lssl
collect2: ld returned 1 exit status
make[2]: *** [pgagent] Error 1
make[1]: *** [CMakeFiles/pgagent.dir/all] Error 2
make: *** [all] Error 2
[pgAgent-3.4.0-Source]# find / -name "libcrypto.so"
/opt/cloud/chef/embedded/lib/libcrypto.so
# ln -sv /opt/cloud/chef/embedded/lib/libcrypto.so /usr/lib/libcrypto.so
‘/usr/lib/libcrypto.so’ -> ‘/opt/cloud/chef/embedded/lib/libcrypto.so’
[pgAgent-3.4.0-Source]# make
Linking CXX executable pgagent
[ 87%] Built target pgagent
Scanning dependencies of target run
[100%] Generating pgagent--3.4.sql, pgagent.control
[100%] Built target run
[pgAgent-3.4.0-Source]# make install
postgres=# create extension pgagent;
CREATE EXTENSION
# pgagent
pgagent: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
# yum install openssl
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package openssl.x86_64 1:1.0.1e-42.el7 will be updated
---> Package openssl.x86_64 1:1.0.1e-51.el7_2.5 will be an update
--> Processing Dependency: openssl-libs(x86-64) = 1:1.0.1e-51.el7_2.5 for package: 1:openssl-1.0.1e-51.el7_2.5.x86_64
--> Finished Dependency Resolution
Error: Package: 1:openssl-1.0.1e-51.el7_2.5.x86_64 (CentOS.7.updates.x86_64)
Requires: openssl-libs(x86-64) = 1:1.0.1e-51.el7_2.5
Installed: 1:openssl-libs-1.0.1e-42.el7.x86_64 (@anaconda)
openssl-libs(x86-64) = 1:1.0.1e-42.el7
Available: 1:openssl-libs-1.0.1e-51.el7_2.4.x86_64 (CentOS.7.updates.x86_64)
openssl-libs(x86-64) = 1:1.0.1e-51.el7_2.4
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
http://mirror.switch.ch/ftp/pool/4/mirror/scientificlinux/7.2/x86_64/updates/security/openssl-libs-1.0.1e-51.el7_2.5.x86_64.rpm
# rpm -ivh openssl-libs-1.0.1e-51.el7_2.5.x86_64.rpm --nodeps --force
# yum install openssl
# yum install openssl-devel
# rpm -ql openssl-libs-1.0.1e-51.el7_2.5.x86_64
/etc/pki/tls
/etc/pki/tls/certs
/etc/pki/tls/misc
/etc/pki/tls/openssl.cnf
/etc/pki/tls/private
/usr/lib64/.libcrypto.so.1.0.1e.hmac
/usr/lib64/.libcrypto.so.10.hmac
/usr/lib64/.libssl.so.1.0.1e.hmac
/usr/lib64/.libssl.so.10.hmac
/usr/lib64/libcrypto.so.1.0.1e
/usr/lib64/libcrypto.so.10
/usr/lib64/libssl.so.1.0.1e
/usr/lib64/libssl.so.10
/usr/lib64/openssl
/usr/lib64/openssl/engines
/usr/lib64/openssl/engines/lib4758cca.so
/usr/lib64/openssl/engines/libaep.so
/usr/lib64/openssl/engines/libatalla.so
/usr/lib64/openssl/engines/libcapi.so
/usr/lib64/openssl/engines/libchil.so
/usr/lib64/openssl/engines/libcswift.so
/usr/lib64/openssl/engines/libgmp.so
/usr/lib64/openssl/engines/libnuron.so
/usr/lib64/openssl/engines/libpadlock.so
/usr/lib64/openssl/engines/libsureware.so
/usr/lib64/openssl/engines/libubsec.so
/usr/share/doc/openssl-libs-1.0.1e
/usr/share/doc/openssl-libs-1.0.1e/LICENSE
# ldconfig -p
查看到库文件都存在/lib64目录下
# ln -sv /usr/lib64/libcrypto.so.10 /lib64/libcrypto.so.1.0.0
# pgagent
Usage:
pgagent [options]
options:
-f run in the foreground (do not detach from the terminal)
-t
-r
-s
-l
参考:
https://blog.csdn.net/ctypyb2002/article/details/77855209
https://blog.csdn.net/ssl2009/article/details/7062621
https://blog.csdn.net/shawnkong/article/details/40826599