Skip to main content

Perri's Brewery

· 5 min read
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

Per lo sviluppo di eggs ho utilizzato dall'inizio il linguaggio javascript, cercando di limitare il più possibile la scrittura di codice bash. Nodejs, difatti, oltre ad essere versabile nell'ambito web, offre la possibilità di realizzare con uno sforzo relativo delle applicazioni a riga di comando.

Inizialmente lo utilizzavo "nature" senza altre aggiunte. Da un anno o due ho cominciato ad utilizzare il framework oclif per generare la struttura di eggs. Si risparmia tempo e fatica, inoltre vengono fuori delle possibilità che, inizialmente, uno manco si sogna.

Con il tempo sono passato quindi a typescript che, a mio avviso, offre una migliore pulizia, maggior controllo sul sorgente e la possibilità di avere un ottimo aiuto durante la scrittura del codice con suggerimenti e quant'altro.

Tra queste, l'automazione delle istruzioni sul README.md che poi sono riuscito ad includere anche nella versione del manuale con pagina man ed il fatto che è possibile esportare il programma non solo come pacchetto npm ma anche in diversi formati, tra cui quello che mi interessa il formato debian.

eggs difatti è cresciuto ed iniziato a camminare da solo e mi sono reso conto delle problematiche degli utenti che, spesso, non hanno nodejs installato e poca o nessuna intenzione di installarlo.

oclif-cli-dev offriva questa possibilità ed ho iniziato ad usarla estensivamente, al punto che attualmente utilizzo eggs quasi sempre nella versione pacchettizata debian, pur avendo spesso, nodejs installato. Si risolvono in questo modo anche problematiche di versione non sempre semplicissime da evitare, come la gestione della architettura i386 sulla quale l'ultima versione di node disponibile è la versione node8.

Naturalmente non si può pretendere tutto da uno strumento che crea pacchetti per debian, macos e windows!

L'esporatione nel formato pacchetto debian non prevede - al momento - gli script di pre e post installazione, così come quelli di pre e post rimozione. Inoltre, e la cosa avrebbe fatto comodo in particolare per eggs, non prevede la presenza di dipendenze nel pacchetto.

Proveniendo da un altro mondo, avrei preferito un mondo migliore, nel quale nodejs sia adottato allo stesso modo di Python per la realizzazione di script ed applicazioni. Ma memore di clipper - che pure includeva se stesso negli eseguibili generati - ho cominciato a rilasciare eggs anche come pacchetto debian con discreta soddisfazione degli utenti.

Estendere le caratteristiche del pacchetto debian creato da @oclif/dev-cli

A questo punto, mi sono scontrato però con alcune problematiche del pacchetto rilasciato.

Non conoscevo ne' la struttura e nemmeno - tutto sommato - come il pacchetto stesso veniva fuori, se non a grandi linee.

Con la collaborazione di un tester ed esperto mantainer ho cominciato a ricevere suggerimenti ed astruse - per me - richieste.

Fino che, ad un certo punto, un altro sviluppatore mi ha chiesto se potevo aggiungere uno script ad eggs per eseguire alcuni passaggi - soprattutto rimozione del codice precedente - di eggs stesso.

Ci ho pensato ed ho provato a spacchettare il pacchetto debian e vedere che cosa c'era dentro!

Da quello che ho capito la pacchettizzazione con oclif/dev-cli avviene abbastanza semplicemente, è presente una directory DEBIAN con dentro il solo file control. Mancando completamente i file preinst, postinst, prerm e postrm chiamati all'atto di installazione/aggiornamento/rimozione del pacchetto.

Ho provato ad aggiungerli e, dopo qualche prova a mano, ed un po' di tentativi con bash sono giunto alla conclusione che poteva funzionare.

Sono quindi tornato al mio strumento preferito e, tutto sommato con pochissime righe di codice, ho codificato una grossa utilità.

Quindi eggs verrà rilasciato sempre con i file di pre e post installazione e di pre e post rimozione nonchè con il controllo delle dipendenze. Qualche operazione - tra cui un più fine controllo delle dipendenze e, forse, la gestione delle diverse versioni - fatta attualmente con nodejs e bash - potrà essere sostituita da una più estesa pacchettizzazione.

Conclusioni

eggs, da adesso in poi, sarà sempre pacchetizzato con gli script di installazione rimozione ed il controllo delle dipendenze.

Basterà sottoporre il pacchetto debian generato da oclif/dev-cli all'azione degli script della perrisbrewery, inclusa in eggs stesso.

Prevedo. inoltre. di estenderlo in futuro includendo così diverse versione di pacchetto per ogni distribuzione.

Però già adesso - dato il precipuo funzionamento di eggs - che analizza le varie distribuzioni e risale ai pacchetti necessari - è già utile, apportando un maggiore e più semplice controllo dell'installazione e della rimozione del pacchetto permettendomi, inoltre, di soddisfare la curiosità per la scritta "Perri's Brevery edition" presente, ormai da quasi un anno, sul pacchetto stesso.

Per cui, prima di ogni rilascio di eggs, i pacchetti passeranno nella famosa birreria e tra un doppio malto ed una chiacchiera tra amici, rinfrancati prenderanno il volo!

Cambio di versione

Con l'occasione passeremo dalla versione 7.7.33 direttamente alla versione 7.8.10.1

Perri's Brewery

Updated eggs, revised commands and drop eggs i386

· 3 min read
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

here we are

Here we are, with bad news.

I start with the bad news: during this week I drop the eggs version for i386.

The problem is nodejs, we have version 14 LTS in amd64 and armel, but for i386 the last possible version is node 8.x.

Time is passing fast and when I started to update the npm packages in eggs, I saw who can't yet compile eggs in node 8 anymore.

This is a great pity, becouse I know there are again users and distros interested to this version. At the moment, to continue to improve eggs, I decided to drop the i386 version.

Note: You can continue to use the last version, and for sureI will try later to compile it again. Same help is possible?

Good news!

Today I found the way to compile eggs with node8 only for the pourpuse to get i386 version.

This is great, becouse peoples need again it!

I started a mail list in sourceforge, and describe on the last mail that was the solution. If you are interested you can subscribe it.

Now we have a man page build automatically, so always updated and on line with the sources.

Not only, we "sell" it in double versions: man and html. You can find it always update in our site too!

All npm packages were updated, so the oclif-plugins autocomplete, command not-found and everything are in order and don't get you in panic, just for a mispell in a command or a flag: eggs will suggest the nearest command.

After long think, I renamed the command prerequisites to init. In all the way, you can use the old command too, there are two aliases for init: prerequisites or fertilization.

I did this becouse I put in init all the tasks eggs need to do to become operative. This reduce the commands list too, becouse now autocomplete and man are included in init and we reduce commands to learn.

Updated original guide italian

Guida originale in italiano aggiornata al 30 gennaio 2021

I need same help for translations, contact me to propose yourself.

mom

The script mom is continuing to improve and remain cli compatible. Don't use more zenity anymore but whitail only - it is more rational - and I found enought cases where zenity is not installed (kde) and a bit too heavy to install on them.

So, You are welcome to eggs-7.7.27

Next step will be probably the possibility to edit differents locales, locales_default and timezone. Is is already possible to edit /etc/penguins-eggs.d/eggs.yaml but I want to find a more simple way,

eggs-7.7.18

· 3 min read
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

Una carrellata di novità e nuovi arrivi!

Oltre agli abituali buxfix sul repository interno yolk che vi permette di reinstallare la vostra remix senza essere necessariamente connessi ad internet e, peraltro, con maggiore velocità e basso utilizzo di RAM, abbiamo raggiunto Ulyssa!

Quindi, a partire da questa versione è possibile remixare Linux Mint 20.1 Ulyssa, recentemente uscita ed indiscutibilmente un ottimo prodotto.

Personalmente, ho sempre amato cinnamon l'interfaccia di Mint ed è quella che maggiormente utilizzo dopo aver "dimenticato" KDE nel passaggio dalla versione 3 a quella attuale. Dovrei provare trinity il fork di KDE 3 che è risorto. In vero mi trovo benissimo con cinnamon ed aspetto - come tutti - il giorno che sorgerà una nuova interfaccia utilizzabile sia con con il tochiscreen che con il mouse.

ulyssa

Potete scaricare la versione di ulyssa linux mint 20.1, riprodotta ed aggiornata con eggs da sourceforge

In questo video potete vedere come customizzare ulteriormente questa remix o prendere esempio per customizzarne altre.

Video: Linux Mint Ulyana com o Penguin's eggs, Um Programa Para Gerar Outra Distro Veja Como Fazer di ticofan.

Infine, grazie al suggerimento di un amico polacco, ho testato il remix di netrunner-core, una distro medio/leggera basata su KDE.

netrunner-core

Potete scaricare la remix di netrunner-core da sourceforge.

Nota. In questa versione non sono riuscito a far funzionare su liveCD il desktop environment originale sddm e l'ho sostituito con lightdm. Se qualcuno scopre il problema è pregato di segnalarlo issue #40. Grazie!

Manuale man, mom e dad GUI

Naturalmente in questa versione trovate tutte le recenti novità, dal manuale di eggs in formato man, consultabile SEMPRE - sia su GUI che in ambiente CLI, con o senza connessione. Le due interfacce grafiche: mom e dad permettono un approccio più morbido all'utilizzo di eggs.

man

Video: man pages

dad

mom

Video: mom & dad

Buon divertimento e, se potete e volete, iscrivetevi al gruppo su Facebook o al forum su questo sito secondo le vostre preferenze.

Segnalate i problemi nelle issues di github.com e, perchè no, se potete date pure una occhiata al codice.

Non dimenticate, infine, di aggiungere una stella su github o una review su sourceforge.

Grazie!

mom and dad

· One min read
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

mom

dad

Some videos are in our channel

Due interfacce grafiche per eggs

Nel tentativo di semplificare l'uso e l'apprendimento di eggs ho realizzato due utili interfacce che - trattandosi di pinguini - sono state denominate mom (mamma) e dad (papà).

mom

mom è un semplice script bash che gira sia su sistemi con interfaccia grafica, sia su sistemi CLI.

Consente di avere una guida visiva ai vari comandi, la selezione degli stessi ed il loro avvio, consentendo - quindi - un più semplice approccio ad eggs.

mom, non va mai chiamato con l'utente di root.

dad

dad, invece, si utilizza sempre con sudo e ci conduce direttamente alla creazione della nostra iso.

Lascio il compito di illustrare meglio le due interfacce al filmato in basso. (Sono disponibili i sottotitoli nelle lingue: italiano, inglese, portoghese e spagnolo).

Video mom and dad

autocomplete

· 3 min read
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

autocomplete

italiano

Autocomplete e command not found

Una moderna applicazione cli contiene due utili funzioni, l'autocomplete e l'avvertimeno di comand not found, seguito dal suggerimento del comando più vicino.

eggs a partire dalla versione 7.7.0 contiene entrambe le caratteristiche, grazie ai plugin di oclif-dev con il quale è sviluppato.

Il risultato di autocomplete è che digitando eggs seguito da due tab, vi verranno esposte le opzioni disponibili.

artisan@demo:~$ eggs 
adapt help remove tools:skel
autocomplete info tools:clean tools:yolk
calamares install tools:initrd update
export:deb kill tools:locales
export:docs prerequisites tools:pve
export:iso produce tools:sanitize

mentre, digitando

eggs pr

seguito da tab, verranno mostrate le possibili opzioni:

artisan@demo:~$ eggs  pr
prerequisites produce
artisan@demo:~$ eggs pr

E così via per tutti i comandi.

D'altra parte la funziona command not found se rileva in ingresso un comando sconosciuto, ci suggerirà il comando più vicino.

artisan@demo:~$ eggs priduce
› Warning: priduce is not a eggs command.
Did you mean produce? [y/n]:

E' anche possibile visualizzare tutti i flags disponibili per un comando dato:

artisan@demo:~$ eggs  produce --
--adapt --fast --ichoice --script --yolk
--basename --final --pve --theme
--compress --help --rsupport --verbose
artisan@demo:~$ eggs produce --

Installazione di autocomplete per l'utente corrente

Per beneficiare della funzione autocomplete, tutto quello che dobbiamo fare è generare i file di configurazione, comando

eggs autocomplate bash

Che mostrerà la seguente schermata:

artisan@demo:~$ eggs autocomplete
Building the autocomplete cache... done

Setup Instructions for EGGS CLI Autocomplete ---

1) Add the autocomplete env var to your bash profile and source it
$ printf "$(eggs autocomplete:script bash)" >> ~/.bashrc; source ~/.bashrc

NOTE: If your terminal starts as a login shell you may need to print the init script into ~/.bash_profile or ~/.profile.

2) Test it out, e.g.:
$ eggs <TAB><TAB> # Command completion
$ eggs command --<TAB><TAB> # Flag completion

Enjoy!

copiare il codice per aggiungere autocomplete al vostro profilo .bashrc

printf "$(eggs autocomplete:script bash)" >> ~/.bashrc; source ~/.bashrc

e lanciarla da terminale.

A questo punto digitate eggs seguito da due tab ed il gioco è fatto.

Installazione di autocomplete per tutti gli utenti

Per utilizzare l'autocomplete di eggs per tutti gli utenti e, quindi, anche per l'utente live del liveCD, occorre copiare il file ~/.cache/penguins-eggs/autocomplete/functions/bash/eggs.bash in /etc/bash_complete.d:

sudo cp ~/.cache/penguins-eggs/autocomplete/functions/bash/eggs.bash /etc/bash_complete.d

A questo punto eggs autocomplete sarà disponibile per tutti gli utenti.

Themes

· 3 min read
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

roma

Where do the themes reside

The themes are an addon of eggs.

They are seen by eggs in ```/etc/penguins-eggs.d/addons`` even though they reside in different positions depending on the type of installation and architecture in use.

From this link, they are compiled and copied into the relevant directories. For calamares /etc/calamares/branding. You should not, therefore, directly change the branding of calamares in /etc/calamares, but create an addon in /etc/penguins-eggs.d/addons.

link /etc/penguins-eggs.d/addons

In this directory you can find the addons of eggs. At the moment:

  • debian
  • deblinux
  • eggs
  • ufficiozero

Inside these folders (vendors) there are the actual addons.

For example:

ls /etc/penguins-eggs.d/addons/eggs
  • dwagent
  • installer-choice
  • proxmox-ve
  • theme

Themes

Nowadays we only talk about themes, but the same goes for the other types of addons.

Let's assume that our vendor is the tico user. Let's create a folder ~/tico in our home.

We copy the content of /etc/penguins-eggs.d/eggs/theme into this one.

cp /etc/penguins-eggs.d/eggs/theme/ ~/tico -R

At this point we have to create a symbolic link in /etc/penguins-eggs.d/ to use our new theme.

First let's see where the /etc/penguins-eggs/addons folder actually resides.

To find out simply give the command:

ls /etc/penguins-eggs.d/addons -l

discovering that, with deb installation and amd64 architecture, this is a link to the folder:

/usr/lib/penguins-eggs/addons

So, at this point we can create a link to our theme project:

sudo ln -s ~/tico /usr/lib/penguins-eggs/addons/tico

Well, we have achieved our goal.

NB: Following the update of eggs we may lose the link, which will have to be rebuilt, but not our customization.

Change the theme

We can modify and keep in our home our theme project that will be seen by eggs as /etc/penguins-eggs.d/addons/tico.

Now we can start modifying the content of ~/tico/theme.

The structure of the theme

In the theme folder there are three folders:

  • applications
  • artwork
  • branding

In applications we simply find the link debian-install.desktop, in artwork the icon debian-install.png and in branding we find the template for squid.

I don't write long on applications and artwork, those who do remastering will do very well. We will talk about branding instead.

In branding there are two text files and some images.

  • branding.desc
  • show.qml

branding.desc is just a placeholder, it will be built from scratch directly from eggs.

show.qml, instead, is our presentation.

the various images: welcome.png and slide1.png, etc are the various figures that will scroll during the installation.

You can change everything to your liking.

NB: For information, see the documentation of calamari.

Using our theme

To use our tico theme, we will simply have to specify the flag --theme vendor in produce.

sudo eggs produce -vf --theme tico

Translation

Translated with the free version of the translator - www.DeepL.com/Translator

If you want to contribute to the translation to your language, you can download the content of this site with git. Correct it and send it to the author piero.proietti.

Thanks.

MX-Linux

· 2 min read
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

eggs-7.6.78

Please note what this project is in no way connected to MX Linux in any official way, it's just my personal experiment.

I am trying to port eggs to mx-linux.

At the moment I have managed to remaster mx-linux with eggs and reinstall it with calamares.

mx-linux has an excellent program for creating system snapshots. Furthermore, mx-linux has an excellent mx-installer installation program, with a graphical interface and a cli installer.

Both mx-snapshot and eggs are derived, with extensive modifications, from the same software: reftracta-snapshot by fsmithred.

Why bring eggs to mx if after all this distribution already has all the necessary tools?

A first reason could be to get familiar with their installer and make it available on other distributions.

A second reason is that this distribution is based on the antiX scripts which are the most versatile as regards the possibility of installing linux on USB sticks with the possibility of having a system that can always be updated at hand.

At the moment I can only ensure that the snapshot creation with eggs and its installation with calamares will work with minor problems who I hope to solve soon.

We still have a long way to go ...

mx-linux

Here You can find a short eggs presentation.

More informations

Copyright (c) 2017, 2020 Piero Proietti, dual licensed under the MIT or GPL Version 2 licenses.

basket

· 2 min read
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

basket

Dove andate a prendere le uova?

La maggior parte dei programmi utilizzati da una distribuzione risiede nelle repository della stessa.

eggs è differente, sia perchè p un software relativamente giovane - le uniche repository attiva al momento sono quelle del progetto ufficiozero.org - e perchè, proprio per essere stato concepito per essere compatibile con più distribuzioni Linux, è nato - per così dire - figlio di una madre ignota!

Aspettare di avere eggs direttamente nella repository della propria distribuzione o creare una repository per eggs stesso, dove andare a scaricarlo?

Dove andate normalmente a cercare le uova più fresche?

E così, come sempre, andrete a cercare le uova nel basket (cestino).

Il basker per gli aggiornamenti di eggs è attualmente composto di due server, in uno sono allocati i file *.deb di eggs nelle varie versioni, mentre sul secondo è attivo un servizio che fornisce ad eggs le informazione su dove aggiornare e da dove scaricare l'aggiornamento.

Il risultato finale è che, dato il comando:

sudo eggs update.

e selezionando basket come metodo di aggiornamento, vi verranno proposte le varie versioni che, se selezionate, forniranno il link per il download del pacchetto e lo installeranno automaticamente.

Un metodo semplice e pulito per stare aggiornati. También

A Roma potremmo dire: "proprio da figli de puttana!"

Penguins' eggs presentation

· 2 min read
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

presentation

english

For some time now, we have been missing a valid Linux remastering program.

I have used remastersys, systemback, refracta, uck, etc. over the years, but for some years there was a lack of a practical software suitable for the purpose of building remixes - personal or not - to be distributed to friends or to make specialized vertical versions. I'm thinking of the various specialized distros, musical and other.

Well, the time is now ripe and a new remastering system has arrived and is also mature and stable penguins-eggs.

penguins-eggs is a remastering tool, allows you to make your own version of Linux and is compatible with:

  • Debian 10 (buster)
  • Debian 11 (bullseye)
  • Devuan beowulf
  • Deepin 20
  • Linux Mint 19.3 (tricia)
  • Linux Mint 20.0 (ulyana)
  • Ubunti 18.4 (bionic) LTS
  • Ubuntu 20.4 (focal) LTS
  • Ubuntu 20.10 (groovy)

THE CHARACTERISTICS OF PENGUINS-EGGS

It is a tool that allows the installation of the livecd with the graphic installer calamares, which automatically takes care of the configuration. It is also possible to customize the appearance of the installer through themes.

Thanks to a small repository on the livecd, you can install the system even without internet connection.

It includes tools for cleaning the apt file and for the log files.

For Debian buster, Debian bullseye, Ubuntu focal there are remixes called naked on which no graphical interface is installed. Excellent as a boot point for your customization.

It works and you can find numerous examples of distros remastered with eggs directly on the penguins-eggs page of sourceforge. It doesn't come from nothing, the first commit is in 2017, now three years ago.

USER MANUAL AND INSTRUCTIONS

You can find the user manual in differnt languages english, italiano, português and informations, curiosities, forum.

There is a series of easy video terminal examples too.

Translation

Translated with the free version of the translator - www.DeepL.com/Translator

If you want to contribute to the translation to your language, you can download the content of this site with git. Correct it and send it to the author piero.proietti.

Thanks.

naked

· 2 min read
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

The naked version of a distro is a minimal (cli) installation, however, reproducible with eggs.

You can create an iso of the installation and install it on a new machine.

Since it is a cli version, of course you won't be able to use the graphical installer calamares, but you will have to opt for the installer cli included in eggs.

What is this version for?

What does it do?

In addition to the characteristics of a minimal cli installation, naked remixes are capable of reproduction.

It is possible to create an iso of the installation and install it on a new machine.

Since it is a cli version, of course you won't be able to use the graphical installer calamares, but you will have to opt for the installer cli included in eggs.

However, before reproducing it we can integrate it with the software we are interested in.

And so, it's up to you: you can decide to have a light and modern remix with xfce on an i386 architecture. or you can prefer cinnamon or kde, gnome, etc.

You can also leave it without graphical interface and maybe include apache2, mysql and php to have an xampp server.

Whichever way is open, you will not have spurious libraries of previous installations and your system will always be able to reproduce and be reinstalled.