Author Archives: spookyh

Applicazioni Linux universali

app

Sarebbe bello se tutte le distribuzioni usassero lo stesso formato di pacchetti… probabilmente non accadrà a breve, ma in questa direzione si stanno affermando dei nuovi gestori di pacchetti che promettono di rivoluzionare (in positivo si spera) il modo di sviluppare e distribuire software su Linux.

Snappy

Ideato da Canonical ed adottato da Ubuntu (in parallelo ai pacchetti .deb a partire dalla versione 16.04) e da Ubuntu Touch.
Nel giugno di quest’anno è stato effettuato il port per svariate distribuzioni (Arch, Debian, Fedora/Red Hat, Gentoo, SUSE e Red Hat)
In linea teorica un pacchetto snap può quindi essere utilizzato praticamente da qualsiasi distribuzione Linux.

Com’è possibile tutto questo?
Di fatto si tratta di un’immagine di filesystem compressa contenente tutto il necessario per far girare un programma, questo viene automaticamente montato in loop dal demone snapd ed i suoi eseguibili vengono linkati in /usr/snap/bin.

PRO
– Semplice da utilizzare, ha un tool da riga di comando stile apt-get (snap find, snap install, snap remove…)

CONTRO
– Sembra il tentativo di Canonical di creare un Google Play per rifilare a tutti gli utenti Linux software a pagamento.
– Al momento sono pochi i programmi disponibili in questo formato

Flatpak (aka xdg-app)

Progetto nato circa un anno fa con lo scopo di creare un’alternativa libera dello Snappy di Ubuntu.
Non ha un repository principale come Snappy, è necessario configurarlo inserendo manualmente quelli che ci interessano:
es.: per installare GNOME
curl -O https://sdk.gnome.org/keys/gnome-sdk.gpg
flatpak remote-add --gpg-import=gnome-sdk.gpg gnome https://sdk.gnome.org/repo/
flatpak install gnome org.gnome.Platform 3.20
flatpak install gnome org.gnome.Sdk 3.20

PRO
– Permette di installare molto più software rispetto a snapd: es. Libreoffice, Firefox…
– Non ha un repository principale contenente anche programmi a pagamento
– Permette di creare pacchetti flat a partire

CONTRO
– Sintassi leggermente più complicata di snap

AppImage (aka Klik)

I pacchetti .AppImage sono concettualmente simili ai programmi per MacOSX.

Sono anch’essi file immagine compressi contenenti l’applicazione e tutte le librerie necessarie al suo utilizzo.
Basta scaricare il file, eseguirlo o cliccarci sopra ed il programma si installerà. Per cancellarlo è sufficiente cestinare l’icona del file.

PRO
– Installare un programma su Linux non è mai stato così facile. Finalmente un formato click’n’run stile MacOS per Linux.
– Elevata disponibilità di programmi https://bintray.com/probono/AppImages

CONTRO
– Anche se praticissimo per distribuire grossi pacchetti stile VLC, LibreOffice, Firefox o Chromium, questo tipo di formato difficilmente potrà essere utilizzato per pacchettizzare il sistema di base.
– Non esiste un tool stile apt-get per cercare ed installare “AppImmagini”
– Non possiede un tool per creare pacchetti a partire da un tarball.
– I file non vengono linkati in una directory di sistema (es. /usr/bin) per cui in caso di sistemi multiutenti ogni utente dovrà scaricarsi nella sua home il suo pacchetti .AppImage

Acer Altos EasyStore

altos_acer_easystorePrima della diffusione di massa di Ubuntu era sufficiente usare Linux per rientrare nella categoria degli “smanettoni” di computer, oggi per definirsi tali c’è bisogno come minimo di avere in casa un serverino ARM 🙂

Raspberry Pi, OLinuXino, CubieBoard sono solo alcuni dei progetti basati su chip ARM Allwinner che da qualche anno infestano le nostre scrivanie.

Non appagato dall’OLinuXino installato tempo fa per il GOLEM, ho deciso di attrezzarmi anche a casa.

Pur trattandosi di un investimento contenuto, prima di spendere qualche decina di Euro per una scheda nuova, faccio visita alla mia seconda discarica di hardware dismesso preferita: lo scantinato dell’ufficio dove lavora mio padre.
Abbandonato in un angolo trovo un Acer Altos Easystore, un NAS di circa 7 o 8 anni fa che si accende e sembra in eccellenti condizioni, così decido di portarlo a casa per testarlo in maniera più approfondita.

È dotato di 4 hard disk hotswap SATA da 500 GB configurabili in RAID 5, processore ARM XScale-80219, il software è una versione embedded di Linux realizzata dalla FalconStor dove per fortuna è possibile abilitare SSH dall’interfaccia html https://…easystore-name-or-IP…/ssh_controlF.cgi (user: root; password: storage).

Mi piacerebbe compilare qualche nuovo programma per questo sistema, provo con Buildroot, i tentativi vanno a buon fine, ma gli eseguibili prodotti non girano. Dopo qualche ricerca scopro che esistono vari port per ARM, a quanto pare avevo tra le mani un ARM OABI a cui stavo tentando di propinare eseguibili EABI.

Ecco come Debian distingue i port per ARM
– ArmPort: primo port, usa il vecchio ed ora obsoleto ABI (OABI). Primo rilascio Debian 2.2 (Potato), ultimo Debian 5.0 (Lenny).
GNU Triplet: arm-linux-gnu

– ArmEabiPort: nuovo port, usa il nuovo ABI (EABI), supporta ARM v4t e superiori. Primo rilascio con Debian 5.0 (Lenny).
GNU Triplet: arm-linux-gnueabi

– ArmHardFloatPort: l’ultimo port a 32-bit, usa la versione hard-float del nuovo ABI (EABI), supporta ARM v7 e superiori. Primo rilascio con Debian 7.0 (Wheezy).
GNU Triplet: arm-linux-gnueabihf

– Arm64Port: ultimissimo port per ARMv8 a 64-bit. Sarà rilasciato con Debian 8.0 (Jessie).
GNU Triplet: aarch64-linux-gnu

Port non ufficiali
– Raspbian: usa la versione hard-float del nuovo ABI (EABI) come armhf, ma per ARM v6. Disponibile su Debian Wheezy e Jessie. Primariamente, ma non esclusivamente, sviluppata per il Raspberry Pi.
GNU Triplet: arm-linux-gnueabihf

– armeb: port Big-endian OABI per linksys NSLU2 e simili, adesso abbandonato.

Provo a compilare rsync su una vecchia versione di buildroot supportante la modalità OABI e funziona!
Per fare prima, per altri programmi, spacchetto direttamente file deb attinti dai repositori ARM di Debian Lenny (facendo attenzione a portarmi dietro anche le eventuali librerie).
Ottengo un sistema discretamente funzionante, ma non riesco però a farci funzionare un server DLNA. Piuttosto che rinunciare a collegare il NAS al lettore DVD decido di spulciare la rete alla ricerca di qualche firmware customizzato per questo trabiccolo.

Dopo qualche GIORNO di ricerca scopro che l’Acer Altos Easystore, come il LaCie 301161U, risultano essere cloni dell’Intel SS4000-E, piattaforma supportata da Debian!

Altri NAS supportati, basati su scheda madre Intel EM7210 e CPU Intel 80219, sono:
Newisys NA-1400, Thecus N2100, GLAN Tank.

Sul WIKI la guida all’installazione.

rc.local su systemd

Il file /etc/rc.local è utilizzato su alcune distribuzioni Linux (Slackware) e sistemi Unix (*BSD) per permettere l’inserimento manuale di comandi da eseguire in fase di avvio.
Ecco come abilitarlo in una distribuzione dotata di systemd come gestore dell’init.

Creare il file
/usr/lib/systemd/system/rc-local.service

Ed inserire al suo interno le seguenti voci:

[Unit]
Description=/etc/rc.local compatibility
After=network.target
[Service]
Type=oneshot
ExecStart=/etc/rc.local
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

Creare il file /etc/rc.local contenente (per il momento) unicamente la riga:
#!/bin/bash

Rendere il file /etc/rc.local eseguibile:
# chmod +x /etc/rc.local

Abilitare il servizio
# systemctl enable rc-local

Per Arch Linux esiste un pacchetto su AUR che aggiunge e configura /etc/rc.local

OpenBSD

OpenBSDPuffy non è Linux, è una variante del sistema operativo BSD Unix incentrato particolarmente sulla sicurezza. Importanti progetti come OpenSSH sono stati sviluppati dal team di OpenBSD. È apprezzato soprattutto come firewall/router, ma dispone di un completo parco software per uso desktop (GNOME, KDE, XFCE, LibreOffice e molto altro…).

Essendo privo di un installer grafico non risulta particolarmente facile da configurare, ho quindi deciso di scrivere questo howto  per permettere a “chiunque” di provare questa interessante alternativa a Linux.