Sviluppo Web su Chromebook: Guida alla configurazione
Avendo avuto solo brutte esperienze con portatili di fascia medio-alta che dopo neanche un anno di utilizzo hanno subito iniziato a mostrare cedimenti soprattuto sull’hardware (ventole che grattano, batterie difettose, problemi di boot, ecc…), ho deciso di provare ChromeOS visto il rapporto qualità/prezzo sulla carta.
Per fare questo esperimento, ho comprato un Asus Chromebook Plus CX34, perchè era il migliore tra quelli disponibili nel negozio dove mi trovavo.
Lo ho pagato 350€, ma se l’avessi preso online avrei potuto pagarlo anche meno.
I miei unici dubbi sull’acquisto erano gli 8GB di RAM e la mancanza di retroilluminazione della tastiera.
Effettivamente quest’ultima è forse l’unica funzionalità di cui sento veramente la mancanza, mentre la necessità di RAM extra la noto solo se tento di lavorare con due finestre di Visual Studio Code aperte.
Per il resto, a distanza di più di un mese di utilizzo quotidiano, non rimpiango in nessun modo Windows e apprezzo la freschezza di un sistema operativo diverso che ha funzionalità extra per l’interazione con l’AppStore e i telefoni Android.
La durata della batteria è nella norma: con browser e Visual Studio Code sempre aperti e luminosità intorno al 30% e senza forzatura della modalità risparmio energetico, sono garantite almeno 4 ore di lavoro.
Configurazione
Crostini
Crostini è la versione di Linux, basata su Debian, che bisogna attivare dalle impostazioni del Chromebook. La prima cosa da fare è poter accedere a tutto il file system tramite l’explorer di default è eseguire il seguente comando nel terminale:
ln -s / ~/penguin
L’explorer aggiunge alla la cartella File Linux (che corrisponde al percorso “~”) la sottocartella penguin (che apre la root del file system).
Prima di installare qualsiasi pacchetto è meglio eseguire un apt update preventivo prima di seguire:
sudo apt update
Seahorse
Innanzitutto bisogna installare un gestore credenziali GPG e SSH.
sudo apt install seahorse
Per evitare di inserire la password ad ogni riavvio del PC ogni volta che apre Crostini, conviene utilizzare una password vuota per salvare le credenziali di login di default.
GitHub Desktop
Non esiste una versione di GitHub desktop per Linux ufficiale, quindi bisogna per prima cosa avvisare il gestore di pacchetti APT per indicargli dove trovare il software e gli aggiornamenti da scaricare:
wget -qO - https://mirror.mwt.me/shiftkey-desktop/gpgkey | gpg --dearmor | sudo tee /usr/share/keyrings/mwt-desktop.gpg > /dev/null
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/mwt-desktop.gpg] https://mirror.mwt.me/shiftkey-desktop/deb/ any main" > /etc/apt/sources.list.d/mwt-desktop.list'
Così si può eseguire sudo apt install github-desktop
I repository scaricati da GitHub li conservo nella cartella ~/GitHub. Quindi insieme alla cartella penguin creata precedentemente.
Visual Studio Code
VSC si può installare facilmente tramite file .deb della pagina di download ufficiale.
Per fare il login all’interno dell’applicazione, conviene utilizzare “use weaker encryption” per lo stesso motivo delle credenziali di login di sistema.
PHP.new
Dal sito Install PHP the Easy Way si può installare in un colpo solo la versione più recente di PHP, Composer e Laravel.
C’è un piccolo trucco menzionato nella documentazione di Laravel che permette anche di selezionare la versione di PHP nel caso si voglia utilizzare una versione precedente di PHP:
/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.4)"
Dopodichè bisogna assicurarsi di avere un memory limit accettabile eseguendo:
php -i | grep memory_limit
Per modificare il valore bisogna aggiungere ad esempio memory_limit=512M nel file ~/.config/herd-lite/bin/php.ini.
Per il recupero degli aggiornamenti PHP si può installare il repository ondrej/php:
sudo apt install lsb-release
sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
Node Version Manager (NVM)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
MySQL/MariaDB
L’installazione di MySQL è un’opzione, ma l’impostazione del repository per gli aggiornamenti potrebbe dare problemi. Quindi conviene utilizzare direttamente MariaDB che è già lo standard per Debian ed è praticamente identico a MySQL.
Insieme a mariadb-server bisogna installare la versione php-mysql relativa alla versione PHP installata con php.new, che va aggiornata ogni volta che si cambia versione di PHP:
sudo apt install mariadb-server php8.4-mysql
Durante l’installazione dovrebbe comparire un wizard in cui basta confermare le scelte preselezionate.
Fatto ciò, bisogna configurare un utente con tutti i privilegi che si può chiamare “admin”.
Prima bisogna eseguire:
sudo service mariadb start
sudo mysql
E una volta entrati nel DBMS:
CREATE USER 'dev'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON . TO 'dev'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Beekeeper DB Client
Ho sempre utilizzato PHPMyAdmin oppure DBeaver, ma il primo ha bisogno di una configurazione aggiuntiva, mentre il secondo mi ha sempre dato problemi di reattività e crash continui. Quindi ho colto l’occasione per fare un po’ di ricerche e ho scoperto Beekeeper Studio.
Per fare il download è richiesta l’email, ma non ho mai ricevuto nessuno spam da parte loro una volta disicrittomi dalla newsletter.
Le istruzione per l’installazione si trovano nella documentazione per il file deb.
curl -fsSL https://deb.beekeeperstudio.io/beekeeper.key | sudo gpg --dearmor --output /usr/share/keyrings/beekeeper.gpg \
&& sudo chmod go+r /usr/share/keyrings/beekeeper.gpg \
&& echo "deb [signed-by=/usr/share/keyrings/beekeeper.gpg] https://deb.beekeeperstudio.io stable main" \
| sudo tee /etc/apt/sources.list.d/beekeeper-studio-app.list > /dev/null
sudo apt update && sudo apt install beekeeper-studio -y
FileZilla
L’ultimo strumento che serve per avere il pacchetto completo:
sudo apt install filezilla
Comandi di aggiornamento
Tutto quello che abbiamo visto può essere aggiornato normalmente con sudo apt upgrade, tuttavia alcuni strumenti richiedono procedure specifiche. Ecco un riepilogo:
| Istruzioni | Note | |
|---|---|---|
| PHP minor | sudo apt upgrade | |
| PHP major | /bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.x)"seguito da sudo apt install php8.x-mysql | Sostituire x con il numero della nuova versione |
| Composer | composer self-update | |
| Laravel | | Sostituire x con il numero della versione PHP corrente |
| NVM | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash | Check disponibilità nuova versione con nvm ls-remote --lts |
| Node | nvm install --lts --reinstall-packages-from=defaultnvm uninstall x.x.x | Sostituire x.x.x con il numero della versione precedente da rimuovere |
| NPM | npm install -g npm@latest |