
.
Generalidades
pgModeler es una de esas herramientas que cuando uno pregunta por las mejores, sale mencionada (especialmente cuando se pregunta por aquellas relacionadas con PostgreSQL y con capacidad de ingeniería inversa). Las versiones compiladas se ofrecen bajo licenciamiento pero siendo una herramienta open source, el código fuente e instrucciones de construcción están disponibles para quien se anime.
Instalación
La construcción de pgModeler no es complicada pero si presenta varios pasos, algunos que pueden parecer algo «enredados». Los requerimientos de instalación incluyen:
- Contar con Xcode.
- Tener instalado el framework de desarrollo de Qt.
- Tener instaladas la bibliotecas de desarrollo de PostgreSQL (paquetes de binarios están disponibles para su descarga en la página de PostgreSQL).
Los requisitos de desarrollo mencionan también a la biblioteca XML2, que es incluida con Xcode pero que merece una mención aparte.
Cuando se ha cubierto lo anterior, las instrucciones parecen relativamente simples:
- Editar el archivo
pgmodeler.pripara actualizar las rutas de las bibliotecas de PostgreSQL y de XML2, quedando, por ejemplo:macx {
!defined(PGSQL_LIB, var): PGSQL_LIB = /Users/lalo/Projects/pgModeler/pgsql/lib/libpq.dylib
!defined(PGSQL_INC, var): PGSQL_INC = /Users/lalo/Projects/pgModeler/pgsql/include
!defined(XML_INC, var): XML_INC = /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2
!defined(XML_LIB, var): XML_LIB = /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libxml2.tbd
INCLUDEPATH += "$$PGSQL_INC" "$$XML_INC"
} - Crear el script de compilación con:
$QT_ROOT/bin/qmake -r CONFIG+=release pgmodeler.pro
donde$QT_ROOTes la ruta de la instalación de Qt (e.g. en este caso$HOME/Applications/Qt/6.7.2/macos) makesudo make installsudo $QT_ROOT/bin/macdeployqt $INSTALLATION_ROOT \ $INSTALLATION_ROOT/Contents/MacOS/pgmodeler-ch \ $INSTALLATION_ROOT/Contents/MacOS/pgmodeler-cli
donde$INSTALLATION_ROOTes la ruta de la instalación de la aplicación (como es de esperarse/Applications/pgModeler.app)
En este punto hay que mencionar que make install ya coloca algo en /Applications/pgModeler.app por lo que el paso 5 es sólo para complementar algo en ella. Adicionalmente, y a diferencia de las instrucciones de los desarrolladores, en mi caso he debido agregar un sudo a las dos últimas, que fueron ejecutadas desde una cuenta con capacidades administrativas (cuenta que hace uso del ZSH, por lo que hubo algunas consideraciones adicionales).
Adicionalmente, las instrucciones de instalación señalan 7 pasos más, aunque uno de ellos fue innecesario. Aquí coloco los que yo realicé. En este punto, opté por crear las variables que aparecen en los comando con los valores apropiados.
export PGSQL_ROOT=/Library/PostgreSQL/16
export INSTALLATION_ROOT=/Applications/pgModeler.app
export QT_ROOT=/Users/lalo/Applications/Qt/6.7.2/macos
para así sólo copiar loas comandos indicados en la página de construcción de pgModeler.
sudo cp $PGSQL_ROOT/lib/libpq.5.dylib $PGSQL_ROOT/lib/libssl.3.* $PGSQL_ROOT/lib/libcrypto.3.* $INSTALLATION_ROOT/Contents/Frameworks
sudo install_name_tool -change "@loader_path/../lib/libcrypto.3.dylib" "@loader_path/../Frameworks/libcrypto.3.dylib" $INSTALLATION_ROOT/Contents/Frameworks/libpq.5.dylib
sudo install_name_tool -change "@loader_path/../lib/libssl.3.dylib" "@loader_path/../Frameworks/libssl.3.dylib" $INSTALLATION_ROOT/Contents/Frameworks/libpq.5.dylib
sudo install_name_tool -change libpq.5.dylib "@loader_path/../Frameworks/libpq.5.dylib" $INSTALLATION_ROOT/Contents/Frameworks/libconnector.1.0.dylib
sudo cp -r $QT_ROOT/plugins/tls $INSTALLATION_ROOT/Contents/PlugIns/
Com podrá verse arriba, las bibliotecas de PostgreSQL fueron colocadas en un directorio donde se descargó lo necesario para la compilación. Para la fase de instalación fue necesario crear un directorio (PostgreSQL/16/) en /Library (pues parece que esta es la ruta donde se buscará el contenido de lib).
|
© Todos los derechos reservados. Dr. Eduardo René Rodríguez Avila |
Creación: 2024.09.16 Última actualización: 2024.09.17 |
|||
| El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de éstas y, salvo sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y como ha sido obtenido, consulte la declaración al respecto. | |||||
