ArchLinux - Git - Postgresql - Tutorial - Tutorials

Clonant i executant programes Python amb bases de dades Postgresql a ArchLinux

En el meu repositori de Gitlab he anat compartint molts programes Python, la majoria relacionats amb el . Diverses vegades s’em pregunta com es fa per a executar un d’aquests programes i penso que hauria d’escriure un petit tutorial amb els passos necessaris per a aconseguir-ho. Som-hi.
El primer que cal fer és clonar el repositori del nostre interés, en aquest cas farem el de mastotuit. mastotuit és un programa que replica a Twitter totes les publicacions que es comparteixen públicament a Mastodon. Per a poder clonar-lo ens cal tenir instal·lat el paquet en el nostre sistema Linux:

git clone https://gitlab.com/spla/mastotuit.git <directori_que_vulguem>

‌Ara ja tindrem clonat el repositori en el directori de destí triat, per exemple, ‘mastotuit’. El següent pas és entrar dins del directori i crear-hi l’entorn virtual Python:

cd mastotuit
python3.8 -m venv .

‌La segona línia genera l’entorn virtual Python (suposant que tenim instal·lada la versió 3.8 de Python). Si tens una versió diferent modifica la línia adecuadament. Compte amb el . del final de la línia, no ens el descuidem perquè és important, especifica el directori on volem crear l’entorn, en aquest cas el directori on som: mastotuit.  Ara ja tenim l’entorn virtual generat, només ens falta activar-lo:

source bin/activate

‌Veurem com ens apareix entre parentesi el nom del directori a la esquerra del prompt:

‌(mastotuit) [spla@archbox mastotuit]$

‌Bona senyal! l’entorn virtual Python ha estat activat amb èxit. Ara ja podem instal·lar les dependències necessaries per a executar mastotuit:

pip install -r requirements.txt

‌És molt possible que al intentar instal·lar les dependències doni un error com aquest:

Error: pg_config executable not found

‌Ho sol·lucionem així:

ArchLinux: pacman -S postgresql-libs
Ubuntu/Debian: apt install libpd-dev

Ara potser no tenim gcc en el nostre Linux i s’ens queixa així:

error: command ‘gcc’ failed: No such file or directory

Instal·lem gcc:

ArchLinux: pacman -S gcc
Ubuntu/Debian: apt install gcc

‌Ara ja podem repetir ‘pip install -r requirements.txt’ que tot hauria d’anar bé. El següent pas és configurar la base de dades que mastotuit necessita per a controlar quines publicacions ja ha estat replicades a Twitter:

python db-setup.py

‌Ens preguntarà quin nom li volem donar a la base de dades de mastotuit (escrivim el que vulguem), quin usuari (l’usuari Linux que està configurant el programa, en aquest cas ‘spla’) i la URL del RSS feed del compte de Mastodon (en el meu cas és ‘https://mastodont.cat/@spla.rss’).
Ens pot donar l’error següent, senyal que no tenim el servidor Postgresql instal·lat en el nostre sistema o no el tenim en marxa:

feeds db name: mastotuit
feeds db user: spla
enter Mastodon user RSS feeds url: https://mastodont.cat/@spla.rss

could not connect to server: No such file or directory
Is the server running locally and accepting connections on Unix domain socket “/var/run/postgresql/.s.PGSQL.5432”?

‌Executem la següent ordre per a instal·lar el servidor :

ArchLinux: pacman -S postgresql
(cal seguir les instruccions oficials de la wiki de ArchLinux)
Ubuntu/Debian: apt install postgres postgresql-contrib

Intentem de nou configurar la base de dades de mastotuit amb ‘python db-setup.py’. Ens donarà aquest error (paciència perquè tots aquests errors només passen el primer cop que volem executar un programa Python que li cal el servidor Postgresql :-)):

FATAL: role “spla” does not exist

Dirà ‘spla’ o l’usuari que li hem donat. Postgresql no sap qui és ‘spla’ per tant hem de crear-li el rol. Com a root fem:

su – postgres
psql
create role spla login createdb;

Ens respondrà ‘CREATE ROLE’:

Ara ja funcionarà, repetim ‘python db-setup.py’:

A partir d’ara el nostre usuari (en aquest cas ‘spla’) podra crear tantes bases de dades com vulgui i iniciar sessió a Postgresql amb ‘psql <base de dades>’ si cal.

Per a que mastotuit pugui replicar a Twitter les publicacions del nostre compte a Mastodon cal que obtinguem els tokens d’accés des de la Twitter Developer Platform. Allà haurem de crear el nostre projecte i la app que ens donarà accés a l’API de Twitter. Després ja podrem copiar els tokens d’accés que ens demanarà setup.py:

python setup.py

Els tokens d’accés de Twitter es desen a config/keys_config.txt. 
El darrer pas per a tenir configurat el nostre mastotuit és configurar el tokens d’accés del nostre compte a Mastodon:

python mastodon-setup.py

Ja hem acabat! Si ara mateix executem ‘python mastotuit.py’ veurem com es repliquen a Twitter les nostres publicacions públiques de Mastodon. 
Ho podem automatitzar a crontab, per exemple, que s’executi mastotuit.py cada minut. Executem ‘crontab -e’ per afegir-hi la nova tasca:

*       *       *       *       cd /home/spla/mastotuit && source bin/activate && python mastotuit.py >/dev/null

I desem els canvis. Ja podem oblidar-nos de mastotuit, cada minut mirarà si hi ha a Mastodon publicacions no replicades i les enviarà al nostre compte de Twitter auto màgicament!

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *