? #howto – Installazione e configurazione di OpenLitespeed su Centos 7/RHEL 7

OpenLitespeed è la variante Open source di Litespeed, un Web Server estremamente performante sviluppato da LiteSpeed Technologies.

La sua struttura permette l’esecuzione su hardware di basso livello, offrendo a consumi ridotti, prestazioni di alto livello. Fra i punti forza di questo troviamo una interfaccia web pronta all’uso da cui controllare e gestire il server.

Questa guida si può applicare a tutte le versioni di Centos 7 e RHEL7, escluso Centos 8 e RHEL 8.

Installazione

L’installazione è particolarmente semplice e si divide in due step:

  • Installazione della repository
  • Installazione del software

Non sono richieste dipendenze particolari durante l’installazione di openlitespeed.

Installazione della repository

LiteSpeed Technologies offre una repository ufficiale da cui installare l’ultima versione di OpenLitespeed, aggiungiamola quindi al sistema via rpm:

sudo rpm -ivh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el7.noarch.rpm

una volta aggiunta verrà effettuato automaticamente l’aggiornamento delle repository per l’indice interno.

Installazione openlitespeed

Come già detto, l’installazione è estremamente semplice e si concentra su un singolo pacchetto (openlitespeed), installiamolo via yum procedendo:

sudo yum install openlitespeed

Una volta completata l’installazione, avviamo il servizio tramite lswsctrl con l’opzione start:

sudo lswsctrl start

usiamo l’opzione stop per ottenere l’effetto contrario.

Configurazione del firewall

Prima di procedere con l’utilizzo del nostro nuovo web server, è necessario configurare il firewall per permettere l’ascolto sulle porte 8088 e 7080 (la 8088 è standard in openlitespeed, vediamo successivamente come cambiarla).

Per aprire la porta di nostreo interesse possiamo utilizzare firewalld, precisamente lo strumento firewall-cmd in questo modo:

sudo firewall-cmd --zone=public --permanent --add-port=8088/tcp
sudo firewall-cmd --zone=public --permanent --add-port=7080/tcp

infine richiediamo al servizio di ricaricare la lista delle regole interne:

sudo firewall-cmd --reload

Una volta completati tutti i passaggi, possiamo accedere al sito di test:

http://INDIRIZZO_IP_DEL_SERVER:8088/ 

ed al pannello di controllo tramite:

http://INDIRIZZO_IP_DEL_SERVER:7080/

dove ovviamente INDIRIZZO_IP_DEL_SERVER è l’indirizzo IP del server dove abbiamo installato openlitespeed.

Account amministratore

Andiamo ora ad impostare l’account amministratore con cui accedere al pannello di controllo, per fare ciò sfruttiamo uno script preinstallato col pacchetto principale:

sudo /usr/local/lsws/admin/misc/admpass.sh

una volta eseguito ci verrà richiesto un username e password (con conferma) del nuovo utente amministratore.

Impostazione della porta 80 (http)

Per l’uso in produzione, è importante configurare la porta di accesso alla 80 anzichè la 8088 come standard. Prima di tutto apriamo le porte di nostro interesse via firewall-cmd:

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

Accediamo alla sezione Listeners del pannello di controllo e portiamoci alla voce View della voce Default, clicchiamo poi su Edit nell’interfaccia che si apre e modifichiamo il valore 8088 in 80 alla voce Port, salviamo ed effettuiamo un Graceful Restart tramite il menu a tendina (ottenibile cliccando sull’hostname ad inizio pagina).

Impostazione della porta 443 (ssl)

Per questa impostazione dobbiamo essere in possesso di un certificato SSL (bundle completo).

Come per la porta 80, impostiamo le regole via firewalld-cmd:

sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload

Portiamoci alla voce Listeners ed aggiungiamo una nuova regola tramite il pulsante Add, compilando come segue:

  • Listener Name: SSL
  • IP Address: Indirizzo IP del server
  • Port: 443
  • Secure: Yes

e salviamo le modifiche. Portiamoci nuovamente alla voce Listeners e modifichiamo quello appena creato, dall’interfaccia che si apre portiamoci alla sezione SSL e modifichiamo la voce Private Key & Certificate impostando i valori:

  • Private Key File: posizione della chiave per il certificato SSL
  • Certificate File: posizione del certificato SSL
  • CA Certificate Path: posizione del certificato intermedio fornito dal CA in fase di generazione
  • CA Certificate File: posizione contenenre il certificato intermedio fornito dal CA

e salviamo le modifiche. Torniamo alla scheda SSL e modifichiamo la voce SSL Protocol selezionando TLSv1.1 e TLSv1.2 3 alla voce Protocol Version, infine salviamo ed effettuiamo un Graceful Restart tramite il menu a tendina (ottenibile cliccando sull’hostname ad inizio pagina).

Possiamo infine abilitare l’accesso tramite SSL per ogni VirtualHost creato, aggiungendo questi alla voce Virtual Host Mappings, sezione locata nella scheda General del Listener SSL.

 

Per dubbi e chiarimenti, utilizzate il nostro gruppo Telegram.

Good *nix _Mirko

? #howto – Installare WordPress via Apache su Debian/Ubuntu e derivate

Abbiamo già impostato lo stack LAMP su Debian/Ubuntu, ora vogliamo aprire un sito web per la nostra società o semplicemente creare il nostro portfolio personale. Per questa impresa scegliamo WordPress, un CMS gratuito ed open source utilizzabile da tutti, anche dai meno esperti vista la sua semplicità.

In questa guida vediamo appunto come Installare WordPress via server Apache.

Prerequisiti

Per poter installare correttamente WordPress sulla distro da voi utilizzata è necessario avere lo stack LAMP. Per sapere come aggiungerlo su Debian, Ubuntu e derivate, potete consultare questa guida.

Se vogliamo essere più precisi, i prerequisiti consigliati sono i seguenti:

  • Apache 2.4
  • MySQL 5.6 o MariaDB 10.0
  • PHP 7.3

Download

Per prima cosa, entrate nella cartella dove desiderate ospitare il vostro sito web realizzato con WordPress. (In questa guida si lavorerà in /var/www/wordpress/)

cd /var/www/

Fatto ciò, scarichiamo l’ultima versione di WordPress in italiano utilizzando wget:

wget https://it.wordpress.org/latest-it_IT.tar.gz

Scompattiamo il pacchetto compresso:

tar -xzvf latest-it_IT.tar.gz

Entriamo nella cartella di WordPress:

cd /var/www/wordpress/

Dando il comando ls noteremo molti file assieme ad alcune cartelle, ma procediamo con ordine.

Configurazione di Apache2

Per poter accedere in futuro al nostro sito con WordPress, abbiamo bisogno di configurare a dovere il web server che utilizziamo, in questo caso Apache2, creando un file di configurazione dedicato. Vediamo come fare.

Creiamo un nuovo file nella cartella /sites-available/ di Apache:

sudo nano /etc/apache2/sites-available/wordpress.conf

Andiamo a scrivere quanto dovuto nel file:

<VirtualHost *:80>
        ServerName dominio.it

        ServerAdmin email@amministratore.com
        DocumentRoot /var/www/wordpress

        <Directory /var/www/wordpress>
            Options FollowSymLinks
            AllowOverride Limit Options FileInfo
            DirectoryIndex index.php
            Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Usciamo dall’editor di testo e creiamo un link simbolico in /sites-enabled/:

# Per Debian e Ubuntu
sudo ln -s /etc/apache2/sites-available/wordpress.conf /etc/apache2/sites-enabled/

Abilitiamo il nostro sito:

sudo a2ensite wordpress.conf

Disabilitiamo la pagina di default di Apache (se non avete toccato nulla):

sudo a2endissiste 000-default.conf

Riavviamo Apache:

sudo systemctl reload apache2

Apache2 è ora configurato correttamente per poter eseguire WordPress.

Configurazione del database

WordPress non ha solamente bisogno di una cartella sull’hard disk del vostro server per poter funzionare a dovere, ma anche bisogno di scrivere dei dati in un database. Vediamo come andare a creare un utente dedicato esclusivamente al database su cui andrà a lavorare il CMS.

Creazione di un utente

Eseguiamo l’accesso in MySQL o MariaDB con l’utente superuser (o root, anche se sconsigliato):

sudo mysql -u nomeutentesuperuser -p

Creiamo un nuovo utente:

CREATE USER nomeutente@localhost IDENTIFIED BY 'vostrapassword';

Creazione di un database

Dopo aver creato l’utente, andiamo a realizzare il database:

CREATE DATABASE nomedatabasewordpress;

Diamo tutti i permessi all’utente creato in precedenza per lavorare senza problemi sul database:

GRANT ALL PRIVILEGES ON nomedatabasewordpress.* TO nomeutente@localhost;

Informiamo MySQL o MariaDB dei cambiamenti e usciamo:

FLUSH PRIVILEGES;
EXIT;

Congratulazioni! Avete impostato correttamente un utente e un database per WordPress.

Configurazione di wp-config.php

Manca poco all’installazione vera e propria di WordPress, ma prima abbiamo ancora bisogno di scrivere nel file di configurazione, chiamato wp-config.php.

Per prima cosa, copiamo il file d’esempio:

cp wp-config-sample.php wp-config.php

Ora, andiamo a sistemare un momento il file di configurazione appena generato. Appena entreremo con il nostro editor di testo noteremo subito dei commenti e dei parametri da modificare, ma procediamo con ordine.

Cambiamo il nome del database di WordPress in quello appena creato:

define('DB_NAME', 'nomedatabasewordpress');

Forniamo a WordPress il nome utente e la password dell’utente del database generati in precedenza.

define('DB_USER', 'nomeutente');
define('DB_PASSWORD', 'password');

Ora, qui non dobbiamo più modificare nulla, spostiamoci più sotto nella sezione “Chiavi univoche di autenticazione e di salatura”. Per una questione di sicurezza, è altamente raccomandato generare delle stringhe da inserire in “Mettere la vostra frase unica qui” nel valore appropriato.

Generiamo le chiavi da questo link e copiamo ed incolliamo quanto fornito da WordPress andando a sostituire i parametri già presenti. Pertanto:

define('AUTH_KEY',         'Mettere la vostra frase unica qui');
define('SECURE_AUTH_KEY',  'Mettere la vostra frase unica qui');
define('LOGGED_IN_KEY',    'Mettere la vostra frase unica qui');
define('NONCE_KEY',        'Mettere la vostra frase unica qui');
define('AUTH_SALT',        'Mettere la vostra frase unica qui');
define('SECURE_AUTH_SALT', 'Mettere la vostra frase unica qui');
define('LOGGED_IN_SALT',   'Mettere la vostra frase unica qui');
define('NONCE_SALT',       'Mettere la vostra frase unica qui');

Si trasformerà in:

define('AUTH_KEY',         'Valore generato dal link');
define('SECURE_AUTH_KEY',  'Valore generato dal link');
define('LOGGED_IN_KEY',    'Valore generato dal link');
define('NONCE_KEY',        'Valore generato dal link');
define('AUTH_SALT',        'Valore generato dal link');
define('SECURE_AUTH_SALT', 'Valore generato dal link');
define('LOGGED_IN_SALT',   'Valore generato dal link');
define('NONCE_SALT',       'Valore generato dal link');

Ora, usciamo dall’editor di testo e accediamo al file d’installazione di WordPress dal nostro dominio:

http://dominio.it/wp-admin/install.php

Configurazione di WordPress

Appena caricata la pagina di installazione di WordPress ci troveremo una cosa simile di fronte:

Pagina di installazione di WordPress

Inseriamo quanto richiesto (evitando di utilizzare nomi utenti come admin, amministratore, ecc e password deboli), clicchiamo il bottone Installa WordPress e… congratulazioni! Avete installato WordPress correttamente. Facciamo l’accesso con i nostri dati ed ecco a voi la dashboard.

Conclusione

Ora sta a voi imparare ad usare questo potente strumento, impostando tutto più come vi pare e piace. Per fornire più sicurezza al vostro sito web, potete consultare questa guida realizzata da me sul forum di FelineSec, gruppo facente parte del network GenteDiLinux.

Per dubbi e chiarimenti, utilizzate il nostro gruppo Telegram.

? #howto – Aggiornamento del kernel su Debian/Ubuntu e derivate

Aggiornare il kernel di una distribuzione, è una operazione tanto semplice quanto indispensabile, nonostante spesso le distribuzioni basate Debian, tendono a rallentare.

Un nuovo aggiornamento kernel, porta con se diversi miglioramenti, risoluzioni di bug, supporto a nuovo hardware e nuove funzionalità che migliorano in generale le prestazioni di sistema. In questa guida vediamo come aggiornare il kernel su distribuzioni come Debian, Ubuntu e derivate.

Seppur il procedimento è semplice, non è completamente privo di rischi. In questa guida manteniamo la versione corrente del kernel installata sul sistema, la useremo nel caso il sistema rifiutasse l’avvio.

Ci sono diversi software e script pronti all’uso per semplificare questa operazione. Nello specifico oggi vediamo due metodi, quello da manuale che prevede l’installazione dei pacchetti precompilati da Ubuntu e quello semplificato tramite l’utilizzo di ukuu.

Metodo da manuale

Per prima cosa controlliamo tramite kernel.ubuntu.com la versione più recente disponibile del kernel, dove è importante fare attenzione alle build che contengono RC nel nome, questo significa che si tratta di una build ancora in fase di sviluppo e che potrebbe essere instabile, sconsiglio perciò la loro installazione.

Nel momento in cui scrivo, la versione più recente del pacchetto è la v5.3, portiamoci quindi alla sua directory nel sito e scarichiamo i seguenti pacchetti dalla lista dei proposti:

linux-headers-5.3.0-050300_5.3.0-050300.201909152230_all.deb
linux-headers-5.3.0-050300-generic_5.3.0-050300.201909152230_amd64.deb
linux-image-unsigned-5.3.0-050300-generic_5.3.0-050300.201909152230_amd64.deb
linux-modules-5.3.0-050300-generic_5.3.0-050300.201909152230_amd64.deb

Una volta ottenuti i pacchetti qui sopra, portiamoci nella directory dove sono stati scaricati ed installiamoli mediante dpkg

sudo dpkg -i linux-*.deb

Una volta terminata la procedura riavviamo il sistema e controlliamo la corretta installazione:

uname -sr

Metodo ukuu

Ukuu (formalmente Ubuntu Kernel Update Utility) è uno strumento che semplifica di molto l’installazione del kernel su Ubuntu e derivate.

Per prima cosa accertiamoci della presenza di software-properties-common nel sistema:

sudo apt install software-properties-common

aggiungiamo poi la repository di ukuu:

sudo add-apt-repository ppa:teejee2008/ppa

e procediamo all’installazione via apt:

sudo apt install ukuu

Via interfaccia (GUI)

Avviamo l’interfaccia di ukuu tramite l’icona presente nel menu applicazioni o tramite comando:

ukuu-gtk

L’applicazione si mostra con la lista dei kernel più recenti in prima posizione, da qui ci basterà selezionare il kernel di nostro interesse (normalmente l’ultimo è in cima) e premere il pulsante Install nella colonna di sinistra. Una volta terminato il processo di installazione automatizzato, ci verrà richiesto di riavviare il sistema.

Una volta riavviato digitiamo:

uname -sr

per verificare la versione corrente del kernel e di conseguenza la sua corretta installazione.

Via CLI

Prima di tutto mostriamo la lista dei kernel disponibili all’installazione via flag –list:

ukuu --list

l’attesa potrebbe essere particolarmente lunga e una volta terminato, mostrerà un output simile al seguente:

======================================================================
Available Kernels
======================================================================
v5.3.8                         5.3.8                     
v5.3.7                         5.3.7                     
v5.3.6                         5.3.6                     
v5.3.5                         5.3.5                     
v5.3.4                         5.3.4                     
v5.3.3                         5.3.3                     
v5.3.2                         5.3.2                     
v5.3.1                         5.3.1                     
v5.3                           5.3                       
v5.2.21                        5.2.21         
...

in prima posizione troviamo il kernel più recente, ne copiamo il nome (prima colonna) e procediamo alla sua installazione via flag –install:

sudo ukuu --install v5.3.8

Una volta terminata l’installazione riavviamo e al successivo login verifichiamo la presenza del nuovo kernel:

uname -sr

Risoluzione avvio

Nel caso fosse impossibile avviare il sistema dopo l’installazione del nuovo kernel, teniamo premuto il pulsante [SHIFT] in fase di avvio del sistema per mostrare il GRUB, selezioniamo quindi la versione precedente del kernel.

Una volta avviato il sistema, possiamo procedere con la rimozione del kernel disinstallando i pacchetti (se usato il metodo da manuale) o tramite interfaccia ukuu.

 

Per dubbi e chiarimenti, utilizzate il nostro gruppo Telegram.

Good *nix _Mirko

? #howto – Guida all’uso di awk

AWK è un linguaggio di programmazione nato dalla necessità di manipolare piccole porzioni di testo in diversi file con poche righe di codice sfruttando direttamente l’interattività della console. I tre autori (Aho, Weinberger, Kernighan) hanno dato vita a questo potente strumento negli anni 70, dandogli il nome in base alle loro iniziali, e migliorandolo con il tempo.

La sintassi dei programmi AWK è del tipo:

awk [opzioni...] '[codice awk]' [file-di-testo]

In realtà i file possono essere anche più di uno. Nel caso in cui si voglia, si può redirigere direttamente l’output di un comando invece di indicare un file, in questo modo:

comando | awk [opzioni...] '[codice awk]'

Si può anche scrivere il codice in un file tramite opzione -f

awk [opzioni] -f [filecodice] [file-di-testo]

Ma questo chi legge i trucchi del giorno lo sa già no?

È quindi necessario capire cosa è capace di fare AWK in quelle linee di codice (e come). Se passato tramite linea di comando, il codice deve essere racchiuso tra singole virgolette, inoltre generalmente è così strutturato:

BEGIN{codice iniziale}/pattern/{codice ripetuto ogni riga}END{codice finale} 

Nessuna di queste sezioni è obbligatoria! Ma ovviamente con un codice vuoto non verrà riprodotto alcun output quindi sforziamoci di produrre un qualche tipo di risultato. Ma procediamo per piccoli passi.

Pattern

Il pattern rappresenta una condizione che si vuole incontrare nei file indicati, la natura di tale ricerca può essere di vari tipi, il modo più generico di indicarla è attraverso la seguente sintassi:

variabile condizione “stringa”

Un esempio può essere più illuminante in questi casi: vediamo di stampare tutte le righe che iniziano con buongiornissimo

awk '$1=="buongiornissimo"' file.txt

Possiamo legare anche più condizioni usando i connettori logici, ad esempio possiamo chiedere che inizino per buongiornissimo o per buongiorno

awk '$1=="buongiornissimo"||$1=="buongiorno"' file.txt 

Ecco un elenco di condizioni e connettori utilizzabili:

  • == uguaglianza
  • != diversità
  • >,< maggiore o minore, nel caso delle stringhe confronta carattere per carattere, fino al primo che non rispetta la condizione
  • ~ contiene
  • && unisce due condizioni in “and”
  • || unisce due condizioni in “or”

Come invece avrete intuito, il simbolo dollaro seguito un numero restituisce il numero della parola in quella riga. Fa eccezione $0 che restituisce l’intera riga. Ad esempio potremmo chiedere che l’intera riga contenga la stringa “nissimo”

awk '$0~"nissimo"' file.txt

Ovviamente questo restituirà anche le stringhe che contengono buongiornissimo, per poter verificare che la stringa in questione sia a sé stante potremmo pensare di aggiungere gli spazi a fine e inizio parola, così:

awk '$0~" giornissimo "' file.txt

In questo modo verranno cercate solo le parole giornissimo intere e in mezzo alla frase. Questo particolare tipo di ricerca può essere riprodotto in modo compresso con la seguente sintassi:

awk '/stringa/' file.txt 

Nell’esempio di sopra

awk '/ giornissimo /' file.txt 

Cercherà tutte le frasi che contengono la parola giornissimo in mezzo.

BEGIN, MAIN e END

A tutto questo, al fatto di poter filtrare ogni singola parola da ogni riga che abbia determinate caratteristiche, aggiungete che potete poi lavorarci sopra come con qualsiasi linguaggio a cui siete abituati.

Come detto prima il codice è diviso in tre parti:

  • BEGIN{} : che rappresenta una porzione di codice eseguita solo all’inizio del programma, prima di filtrare qualunque riga o frase tramite pattern
  • {} : rappresenta una sorta di porzione principale del programma, eseguita su ogni riga filtrata
  • END{} : porzione finale, eseguita dopo tutto il resto. immaginate di poterci stampare un risultato o farci un calcolo preciso.

I costrutti sono simili ad altri linguaggi, abbiamo quindi il for, l’if e le normalissime strutture di controllo Facciamo subito un esempio triviale ma che ci consente di capire le potenzialità: contiamo il numero di a in un file di testo, il comando sarebbe:

awk '
{
    split($0,chars,"");
    for (i=1; i<=length($0); i++) {
    if(chars[i]=="a"){ ca++;}
}
} END { print ("ci sono",ca,"a");} ' file_di_testo.txt

Da questo esempio si capiscono già parecchie cose, innanzitutto le variabili sono create al volo, senza alcune preinizializzazione necessaria, il loro valore di default è quello più intuitivo, nel caso dell’intero ca parte da zero ad esempio.

Possono essere usati gli array, ma AWK li tratta un po’ come fossero dizionari alla python, cioè il loro indice è in realtà una chiave e non ha un ordine o una numerazione naturale precisa, nel caso dell’output di slip partono da 1.

Esistono delle funzioni predefinite dal linguaggio, come split ad esempio che divide una stringa in un array di stringhe in base ad una stringa che passiamo, nel caso di valore vuoto otteniamo ogni nuova stringa avrà un carattere solo. Un altra funzione ben nota è print, notiamo come per passare variabili possiamo separare gli argomenti con virgola.

In alternativa c’è la ben nota printf nella stessa forma in cui la si trova in linguaggi come c.

Supponiamo quindi di dare un file di testo contenente il seguente testo:

Cha-la head cha-la
Mune ga pachi-pachi suru hodo
Sawagu genki-dama –sparking

l’output sarà:

ci sono 13 a

Come opera quindi lo script? divide ogni riga ($0) in un vettore composto dai suoi caratteri e, se e solo se il carattere è a aumenta il contatore ca. Solo una volta finito di leggere tutte le righe (blocco END{}) stampa il risultato.

Alcune variabili e funzioni speciali

Esistono comunque alcune variabili particolari su awk di cui tenere conto:

  • ARGV e ARGC, cioè la lista degli argomenti passati e il numero, ricordandosi sempre che il primo argomento (numero 0) è awk stesso!
  • l’array ENVIRON[], che ha come chiavi i nomi delle variabili di sistema, e valore ovviamente legato ad esse.
  • FILENAME, indica il nome del file che sta analizzando
  • FS indica il separatore dei campi, di default lo spazio, di conseguenza esiste la variabile NFS che indica il numero di parti separate da FS, quindi normalmente il numero di parole!
  • NR è il numero di riga, impostando una limitazione come filtro iniziale su questo valore potete dire quali righe prelevare (ad esempio >3 significa oltre la terza riga), questo valore non è relativo al numero di file, se esistono due file di due righe, la terza riga è la prima del secondo file!
  • FNR è come sopra, ma contando relativamente ad ogni singolo file analizzato!

Esistono anche tantissime funzioni, per calcolo matematico o operazioni su stringhe:

  • sqrt, log. sin, cos per le relative funzioni di radice, logaritmo, seno e coseno
  • length, substr(stringa,inizio,fine), tolower/toupper, split(stringa,array,separatore) per trovare la lunghezza, tirare fuori una sottostringa, stringa in lowercase, stringa in uppercase e dividerla in tante altre stringhe in un vettore

 

? #howto – Sincronizzare contatti/calendario/attività da Nextcloud su Android

Abbiamo parlato più volte di come installare Nextcloud su server e sincronizzarne il contenuto su desktop tramite le apposite applicazioni ed integrazioni.

In questa guida vediamo come sincronizzare contatti, calendario ed attività su Android tramite app OpenSync, disponibile gratuitamente tramite Play Store di Google.

OpenSync è un fork di DavDroid per Android, il cui sviluppo prosegue sotto nome di DAVx5. Potete usare entrambe le app poichè condividono le stesse funzionalità ed esperienza utente.

Installazione di OpenSync

Per quanto riguada OpenSync, possiamo procedere all’installazione tramite Play Store, comunemente fornito di base nella maggior parte degli smartphone Android. Cerchiamo quindi l’applicazione nello store o via link diretto.

DAVx5 (opzionale)

Nel caso volessimo utilizzare l’alternativa DAVx5, dobbiamo per prima cosa installare F-Droid al seguente link, una volta installato lo store, procediamo con la sincronizzazione delle repository, procedimento che può impiegare fino a 3 minuti in base alla connessione del dispositivo.

È possibile installare DAVx5 tramite APK e senza installare F-Droid, sconsiglio questo metodo poichè non è possibile ricevere aggiornamenti se non scaricando manualmente le APK ad ogni rilascio.

Una volta completato il processo di aggiornamento delle repository, installiamo l’app cercando DAVx5 nello store o accedendo tramite link diretto.

Configurazione

Il procedimento di configurazione è lo stesso in entrambi i casi. Per prima cosa lanciamo l’applicazione installata, subito ci verrà richiesto di associare un account Nextcloud:

  • Rimaniamo su Accedi con indirizzo e-mail nel caso di account presso i server ufficiali di Nextcloud
  • Spostiamoci su Accedi con URL e nome utente in caso di installazioni self-hosted

Una volta completati i campi di login, possiamo selezionare quali contenuti sincronizzare col sistema:

  • CardDAV per i contatti
  • CalDAV per calendari ed attività (per la sincronizzazione delle attività è richiesta la presenza di OpenTasks, disponibile presso Play Store)

dopo la prima sincronizzazione viene mostrata una notifica che avverte la mancana di permessi, una volta impostati procediamo nuovamente con la sincronizzazione.

Essenziale è rimuovere l’applicazione dalla ottimizzazione della batteria, questo evita la mancata sincronizzazione dei contenuti.

 

Per dubbi e chiarimenti, utilizzate il nostro gruppo Telegram.

Good *nix _Mirko

? #howto – Installazione di Flatpak e configurazione di Flathub

Flatpak è un formato pacchetto sempre più diffuso in Linux.

Si tratta di un ambiente sandbox particolarmente responsivo che permette l’esecuzione di applicazioni isolate dal sistema. L’integrazione è totale, è possibile infatti lavorare con i file di sistema, accedere alle periferiche e sfruttare lo stesso tema in uso dal desktop environment.

Flathub è la repository software più generosa al momento, offre una vasta quantità di applicazioni pronte all’uso in formato Flatpak.

Installazione

Per prima cosa vediamo come installare Flatpak nelle principali distribuzioni.

Debian/Pop!_OS/Ubuntu e flavours

Per quanto riguarda Ubuntu, Kubuntu, Xubuntu, Lubuntu e gli altri membri della famiglia, troviamo Flatpak nelle repository di sistema, facilmente installabile tramite apt:

sudo apt install flatpak

in questo modo sarà possibile sfruttare a pieno flatpak una volta riavviato il sistema.

Nel caso di GNOME Software presente nel sistema, possiamo installare un plugin che permette l’installazione facilitata delle flatpak direttamente dallo store:

sudo apt install gnome-software-plugin-flatpak

openSUSE

Possiamo installare flatpak tramite il gestore pacchetti di sistema, zypper:

sudo zypper install flatpak

riavviamo il sistema per renderlo operativo.

Arch Linux e derivate

Possiamo installare flatpak direttamente dal gestore pacchetti pacman:

sudo pacman -S flatpak

elementary OS

Per prima cosa installiamo gli strumenti necessari ad aggiungere repository di terze parti:

sudo apt install software-properties-common --no-install-recommends

e aggiungiamo la repository di flatpak:

sudo add-apt-repository ppa:alexlarsson/flatpak

per poi installare:

sudo apt update
sudo apt install flatpak

come per le altre distribuzioni, riavviamo per renderlo operativo.

Clear Linux

Possiamo procedere con l’installazione dalle repository di sistema, tramite il gestore dei pacchetti swupd:

sudo swupd bundle-add desktop

riavviamo il sistema per renderlo operativo.

Solus

In Solus è necessaria l’installazione di un secondo pacchetto ossia xdg-desktop-portal-gtk per il corretto funzionamento di Flatpak:

sudo eopkg install flatpak xdg-desktop-portal-gtk

riavviamo il sistema per renderlo operativo.

Se la tua distribuzione non è presente in questa guida, probabilmente perchè Flatpak è già presente come standard.

C’è da tenere in considerazione che nonostante la sua presenza da diversi anni, è comunque un pacchetto giovane e spesso necessita di una distribuzione recente e aggiornata per funzionare.

Configurazione di Flathub

Il comando flatpak offre la flag remote-add per l’aggiunta di repository al sistema, sfruttiamola per aggiungere Flathub:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Possiamo installare nuovo software tramite il portale Flathub (qui, premendo sul pulsante Install presente nella pagina di ogni applicazione) o tramite flag install del comando flathub:

flatpak install com.spotify.Client

nell’esempio qui sopra installiamo il client Spotify per Linux.

In alternativa è possibile installare software tramite GNOME Software se presente il plugin gnome-software-plugin-flatpak, normalmente presente nelle repository di sistema e preinstallato nell’ambiente GNOME.

 

Per dubbi e chiarimenti, fate accesso al nostro gruppo Telegram.

Good *nix _Mirko

? #howto – Come usare Pacman, la configurazione

Dopo aver discusso dei suoi comandi fondamentali, oggi parleremo della configurazione di Pacman, package manager di Arch Linux, gestibile tramite il suo config file.

Il file di configurazione di Pacman si trova al percorso /etc/pacman.conf. Per iniziare a personalizzarlo, apriamolo con il nostro editor di testo preferito come superuser: io personalmente uso neovim, quindi sudo neovim, se usate nano apritelo con sudo nano.

Questa guida non vuole essere un sostituto alla wiki ufficiale, per configurazioni avanzate usare la wiki ufficiale

IgnorePkg e IgnoreGroup

IgnorePkg e IgnoreGroup, voci di default commentate e quindi non utilizzate, possono essere utilizzate per impedire l’update di un pacchetto o di un gruppo di pacchetti. Ad esempio, se scriviamo IgnorePkg = linux, ad ogni update Pacman non aggiornerà il kernel, invece, se scriviamo IgnoreGroup = gnome e se sul PC è installato GNOME, ad ogni update non verrà aggiornato nessun pacchetto del gruppo gnome.

NoUpdate

Hai paura che il tuo update possa cambiare qualche file, rischiando di rompere il tuo sistema? Usa NoUpdate. Abilitando questa voce, di default commentata, puoi aggiungere dei file che non vuoi che il sistema sostituisca durante l’aggiornamento: esso creerà un file con lo stesso nome, ma con estensione .pacnew, per fare in modo che tu possa applicare le tue modifiche e stare al sicuro durante l’update. Ad esempio, non vuoi che un update modifichi il tuo fstab? Scrivi semplicemente NoUpdate = /etc/fstab, e in questo modo Pacman creerà un fstab.pacnew che potrai controllare e modificare.

Misc Options

Sotto Misc Options abbiamo diverse opzioni, di cui una nascosta. Ma prima parliamo di quelle presenti:

  • UseSyslog: Prende il Log tramite Syslog() e lo salva nel file log di default
  • Color: Abilita i colori all’output di Pacman
  • TotalDownload: Fornisce un output più dettagliato per ogni pacchetto in download con dimensione scaricata, velocità di download e ETA
  • CheckSpace: Controlla approssimativamente lo spazio disponibile sul disco per l’installazione dei pacchetti
  • VerbosePkgInfo: Mostra più informazioni sui pacchetti che vengono installati, come versione che verrà installata, versione già installata, repo del pacchetto e dimensione di esso

Ora tocca all’opzione nascosta, ILoveCandy, un easter egg che sostituisce alla normale progress bar un’animazione di Pacman che mangia le palline.

Personalizzazione Repos

Con Pacman abbiamo la possibilità di abilitare o disabilitare delle repo di default, oppure aggiungerne di personalizzate. Ora vediamo i due tipi:

Repo Ufficiali

Tra le repo ufficiali possiamo attivare ad esempio [testing], decommentando le sue due righe e commentando quelle di [stable], oppure decommentare [multilib] per abilitare le repo a 32-bit.

Repo Non Ufficiali

Per abilitare delle repo non ufficiali (qui un elenco di repo firmate e non), basta aggiungere alla fine del file le determinate voci seguendo questo schema:

[NomeRepo]
SigLevel = <Signature Level>   # Sostituisci <Signature Level> con il livello firma, se unsigned non
                               # aggiungere questa riga
Server = <ServerLink>          # Inserire qui il link del server della repo

Queste sono alcune tra le cose più importanti da conoscere per personalizzare la configurazione di Pacman. Una funzionalità molto utile del package manager di Arch sono gli Hooks, ma è un argomento di cui parlerò nella prossima guida. Per i comandi fondamentali di Pacman invece vai qui.

Per dubbi e chiarimenti, fate accesso al nostro gruppo Telegram.

? #howto – Come usare Pacman, comandi fondamentali

Pacman è il Package Manager di Arch Linux installato di default, scritto interamente in C.

Questo gestore pacchetti, però, non ha una sintassi semplicissima e intuitiva, e potrebbe risultare a dir poco complesso per l’utente medio. Per ovviare a questo problema basta tenere a mente alcuni piccoli comandi utili per poter utilizzare Pacman al meglio tutti i giorni.

Questa guida non vuole essere un sostituto alla wiki ufficiale, per comandi e usi avanzati usare ‘man pacman’ o appunto la wiki ufficiale.

Comandi Fondamentali

Vediamo quali sono i comandi base da tenere a mente per chi si vuole approcciare per la prima volta ad Arch Linux e quindi a Pacman.

Installare un pacchetto

La funzione forse più banale per un package manager è ovviamente quella che permette l’installazione di un pacchetto:

pacman -S nome_pacchetto

talvolta è possibile inciampare in un errore causato dal mancato aggiornamento del database. Per risolvere questo problema, possiamo aggiungere l’argomento y:

pacman -Sy nome_pacchetto

Aggiornamento di sistema

Un’altra delle funzioni essenziali è certamente l’aggiornamento di sistema e delle repository, accessibili tramite la flag -Syu:

pacman -Syu

Rimozione di un pacchetto

Questa opzione, dove la R sta ovviamente per remove, serve appunto per rimuovere un pacchetto.

pacman -R nome_pacchetto

Ci sono altri modi per usare questa opzione: ad esempio, possiamo utilizzare le flag -Rs, Rn e -Rns. La prima permette di rimuovere il pacchetto, controllare eventuali dipendenze ed eliminare dal sistema anch’esse; il secondo impedisce a pacman di creare file di backup del pacchetto eliminato, mentre il terzo è un semplice parametro che unisce le funzionalità delle precedenti flag.

Ricerca nel database

Questa opzione permette di cercare nel database il nome di un pacchetto basandosi su delle parole chiave, come ad esempio “pacman -Ss file-manager“. Ecco un esempio:

pacman -Ss neofetch

community/neofetch 6.1.0-1
    A CLI system information tool written in BASH that supports displaying
    images.

Pacchetti installati

L’opzione in questione, dove la Q sta per Query, permette di avere una lista di tutti i pacchetti installati sulla macchina dove viene eseguito.

Questa opzione può anche essere usata con gli argomenti Qs e Qi, dove:

  • -Qs permette di avere la lista dei pacchetti installati con anche una breve descrizione, come se stessimo consultando l’elenco dal database con pacman -Ss
  • -Qi, seguito da un nome di pacchetto installato sulla macchina, permette di avere il nome di esso, dettagli, dimensione, dipendenze, etc.
pacman -Q

acl 2.2.53-1
adobe-source-code-pro-fonts 2.030ro+1.050it-5
adwaita-icon-theme 3.34.0-1
alsa-firmware 1.0.29-2
alsa-lib 1.1.9-2
alsa-oss 1.1.8-1
...

Pulizia della cache

L’ultima opzione essenziale permette di pulire la cache del gestore pacchetti:

pacman -Sc

Questi sono dei semplici comandi che conoscendoli semplificano di molto l’uso di pacman e la gestione del sistema. 
Per dubbi e chiarimenti, fate accesso al nostro gruppo Telegram.

? #howto – Installazione di .Net Core su Centos 7, Fedora 30 e openSUSE 42.3

In questa guida vediamo come installare il framework .Net Core di Microsoft su Centos 7 (e successivi), Fedora 30 e openSUSE 42.3.

Esiste una variante di questa guida per Debian, disponibile qui.

Installazione su Centos 7

L’installazione è di per se molto semplice e non richiede particolari passaggi. Per prima cosa aggiungiamo la chiave Microsoft e la repository:

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

Una volta fatto procediamo con l’installazione di .Net Core, nello specifico del pacchetto dotnet-sdk-3.0:

sudo yum install dotnet-sdk-3.0

Possiamo verificare la corretta installazione tramite la flag –info del comando dotnet in questo modo:

dotnet --info

se come output ci viene fornita la versione installata del framework, significa che è stato installato correttamente.

Installazione su Fedora 30

Per prima cosa importiamo la chiave Microsoft per l’accesso alla repository:

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

procediamo poi con l’aggiunta della repository nel sistema, nello specifico andiamo a scaricare la configurazione della repository nella locazione /etc/yum.repos.d/microsoft-prod.repo:

sudo wget -q -O /etc/yum.repos.d/microsoft-prod.repo https://packages.microsoft.com/config/fedora/30/prod.repo

Infine installiamo il pacchetto dotnet-sdk-3.0 tramite dnf:

sudo dnf install dotnet-sdk-3.0

e verifichiamo la corretta installazione tramite la flag –info del comando dotnet in questo modo:

dotnet --info

il che restituirà come output la versione del framework.

Installazione su openSUSE 42.3

Prima  di procedere con la configurazione delle repo, è necessario installare la dipendenza libicu tramite zypper:

sudo zypper install libicu

a seguire importiamo la chiave Microsoft per l’accesso alla repository:

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

Otteniamo una copia della configurazione per la repository, nello specifico verrà posizionata in /etc/zypp/repos.d/microsoft-prod.repo:

sudo wget -q -O /etc/zypp/repos.d/microsoft-prod.repo https://packages.microsoft.com/config/opensuse/42.3/prod.repo

ed aggiorniamo i permessi di proprietà all’utente root:

sudo chown root:root /etc/zypp/repos.d/microsoft-prod.repo

Infine possiamo installare il pacchetto dotnet-sdk-3.0 tramite zypper:

sudo zypper install dotnet-sdk-3.0

possiamo verificare la corretta installazione tramite comando dotnet, nello specifico tramite la flag –info in questo modo:

dotnet --info

nel caso di corretta installazione, ci verrà restituito come output la versione corrente installata di .Net Core.

 

Per dubbi e chiarimenti, fate accesso al nostro gruppo Telegram.

Good *nix _Mirko

div>