eggs 8.0.0 krill and arm64 version

After so long time we have a major version, why?

In short: I removed the old CLI installer with the new krill installer with all it’s armamentary and experiences: react components for visualization (only for eggs install and eggs info) and same configuration for GUI and CLI installer.

I’m using actually node-8.17.0 to can build for all the architectures (i386, amd64, armel, arm64)

State of art of krill (eggs install –cli) #

krill is nice and usable, yes there are things to clean but at last install quite fast the system and others modifications can be made directly on the installed system.

I think is quite more usable compared to the old eggs CLI installer, expecially for not deep technicals persons.

The real lack of krill actually is who cannot install the system in UEFI or, better, the system is installed but not booting. We must to solve this situation becouse arm boot only in UEFI not BIOS standard.

State of art of eggs on arm64 #

To test eggs against arm64 I’m using Proxmox VE, configurated via command line to support processor arm64 via qemu.

Depiste the hidden possibility it work enought well and lead me progress on support this two architectures (armel and arm64).

Actually we are in eggs 8.0.6 and eggs is installable on both the architectures and run well, but again distant to effective reproduction of the system, becouse we need to create uefi boot for iso and wait the support of krill to install on iso too.

Wanting help #

It is long time I’m working alone, when started I was not sure to be successfull in create eggs. Now eggs exist and probably it is the most advanced software in the master/remaster field.

You can use it with a lot of distros and architectures and be able to install with the fantastic GUI calamares installer or with krill in CLI environments.

There is the possibility - and really quite near - to be able to start our method of “reproduction” in arm64 too. Think to the rasberry world or similar hardware.

Again, peoples from funtoo asked me if it is possible to bring eggs in funtoo. The answer was yes, but we must change something - the class called pacman - but, now, entirely based on apt.

But to realize that We need a community of developers, with different interests, distros and hardware.

That’s why I’m bothering you now, there is a real possibility of having a standard linux “reproduction” method for all systems and distros or at least, for most of them.


Piero Proietti




Krill is a Linux CLI system installer - still in development - that claims to be compatible with the great Calamares.

I’m trying to use Calamares’ configuration files and “steal” what I can, from idea to code.

Of course it won’t be the same thing - Krill is a different species - but it wants to be nice enough to users, just like Calamares is, and usable in desktop computers < 2 GB and any CLI-only system.

krill 0.0.2

krill 0.0.1

Krill is written in typescript and will be released ad Debian package.

Help #

If you are interested to this project, and want to contribuite, please don’t esitate to contact me.




New ideas are boiling in the pot, I’m trying to improve the eggs interface using react but always staying within the CLI.

If any of you is able to help me in this task will be certainly welcome. What is required is some experience in react that I personally lack.


Thanx to our friends from TeLOS Linux i recently discover Jitsi Meet and fall in love immidiatly, so actually you can contact me at PenguinsEggsMeeting. Of course, I’m not always on line, but can be interesting for you and me this possibility to meet in conference, share the desktop, in a so easy form.


Last but not least, from the actual version 7.8.47 the new Ubuntu 21.04 hirsute come in the supported versions. You can find the resulting iso in the ubuntu section of our project.

eggs 7.8.43

It’s long time I don’t write here about versions.

I choose usually to make little improvments and release immidiatly and was a good way.

But now I’m trying to bring eggs to be compliant with Debian packagement system, I thought it was a joke. It isen’t!

So lately I had major troubles in packaging than in add news feathures, but finally I can say it work, it almost work.

I managed to had same time ago a flag in produce, called –final. I think to change this flag in future and choose –release. The scope of –final is to configure calamare to remove himself, eggs and all the dependecies from the system installed.

Initially I don’t like so much this, becouse in same way is a stop to the reproduction, but I’m a pratical man and I realize who peoples need, expecially peoples who take so much cure in build little or large systems. Lately a friend from Canada is working in a iso 14 GB compressed and, someone from India, surpass him! This also lead me also to use zstd - where possible - for fast compression, and revisited eggs info to check the situation before to produce and varius checks, in produce, made before to start disk compression.

Well we have this working, simply eggs produce –release let you to have a clean installation, removing eggs, calamares and their dependecies and select for max compression.

It’s short to say but it was a long history.

eggs calamares #

This command install, remove and configure calamares GUI installer used to install the live.

Install and removing calamares from eggs #

I was used with LXDE or cinnamon before, for long time I didn’t use KDE, LXQT and so on. Calamares is not a KDE project, but its fundaments are based on it. From the first times I installed it I saw it was necessary also to install two others libraries qml-module-qtquick2 and qml-module-qtquick-controls, running mostly in in gnome2, gnome3 it was not a problem to uninstall them and give an apt autoremove, until the day I realize who removing this libray remove all LXQT and problably KDE too!

It was a big problem, I think who probably someone - using eggs - had this problem… I really sorry for that. Pardon!

From this version, finally I don’t remove this libraries and KDE and LXQT are safe.

eggs produce #

Produce, probably is the most important command of eggs and the command with more options.

eggs produce
the system produce an egg: iso image of your system

$ eggs produce

-b, --basename=basename basename
-f, --fast fast compression
-h, --help show CLI help
-m, --max max compression
-n, --normal normal compression
-p, --prefix=prefix prefix
-s, --script script mode. Generate scripts to manage iso build
-v, --verbose verbose
-y, --yolk -y force yolk renew
--addons=addons addons to be used: adapt, ichoice, pve, rsupport
--release release: configure GUI installer to remove eggs and calamares after installation
--theme=theme theme for livecd, calamares branding and par

flag –release #

I introduced a new flag in produce, the flag –release.

Really is an old/new flag, the original name was sterilize (because it remove the reproductive system during the installation) and lately was called –final.

eggs is a specialized software, not really for common use, I expect who eggs’s users are deeply involved in Linux and want customize their systems for many purpouses: from share with friends to share with the community, so I choose to write a program more for developers than final users. For this people –release sound as release the system: compress it at the max and remove any sign of the live system after the system is installed.

flag –addons take place of –adapt, –ichoice, –pve, –rsupport #

To let to customize a bit the resulting iso in the time I had themes and addons.

Themes are of course themes, now with theme you can customize the result of your boot in livecd, the branding of calamares and the partions schema. (mostly this feathures are, of course, based on the great flexibility of calamares), eggs just try to arrange a tool who use this great project and ler You to customize your effort).

Addons are at the moment, just coming from eggs - from me - and are links to adapt resolution in VM, to an local proxmox-ve server - to realize a proxmox customizate workstation and server - mostly for developers and me! ichoice let tho choice the installer of the system. Most peoples will prefere calamres installer and are right, but in machine short of RAM, install with cli-installer can be an option, and sometime, to only possible option if not change hardware. –addons rsupport bring a link to dwangent, who need to be installed before. This can be a pratical way to help users also from the live.

Customizing live system and calamares theme #

I want to write more about create and customize themes in next days.


Alla ricerca dell'arca perduta...

Da un paio di giorni - ormai una settimana fa - sto cercando di far funzionare versioni “antiche” Debian con eggs.

Per il momento mi è riuscito di arrivare sino a Debian stretch ed ad Ubuntu xenial, niente da fare invece con Debian jessie che, pure avrei in animo di rendere compatibile.

Il tutto è nato dal tentativo - non riuscito - di installare una distro moderna pur se leggera su un vecchio pc con arhitettura amd64 e “solo” due gigabyte di RAM.

Lo avevo preparato bene, forse quattro o cinque anni fa, con Debian jessie e cinnammon e l’avevo rimesso in moto cercando di installare qualcosa di più aggiornato.

L’intenzione era quella di installare So.Di.Linux Orizzonti 2025 per un ragazzo che va o dovrebbe andare a scuola. So.Di.Linux è una distribuzione basata su Linux Mint con mate come interfaccia grafica, in teoria avrebbe dovuto girare con due GB in pratica era impossibile da installare con Calamares, poca memoria RAM

Ho ovviato al problema installando con l’installer a riga di comando, ovviamente si è installato ma sono incappato in una scheda grafica nvidia vecchia e non più aggiornata e sono stato costretto a desistere.

Precedentemente sulla macchina era installato Debian jessie con una delle prime versioni di cinnamon ed era discretamente usabile. Ancora di più lo sarebbe stato installandoci xfce, mate, lxqt, etc.

Questo mi ha portato a ripensare alle versioni supportate, sinora avevo sempre cercato di andare avanti senza mai voltarmi le spalle e rendendo incompatibili con eggs versioni vecchie, ma tutto sommato, ancora utilizzabili di Debian ed ubuntu,

Compatibilità di eggs #

Debian #

  • Debian 8 jessie OK, ma senza la compressione fast (zstd), no calamares (vedi nota)
  • Debian 9 stretch OK, ma senza la compressione fast (zstd), no calamares (vedi nota)
  • Debian 10 buster OK
  • Debian 11 bullseye OK

Devuan #

  • Devian beowulf OK

Ubuntu #

  • Ubuntu xenial OK, ma senza la compressione fast (zstd), no calamares (vedi nota)
  • Ubuntu bionic OK
  • Ubuntu focal OK
  • Ubuntu groovy OK

Derivate #

Naturalmente è possibile rimasterizzare anche le derivate dalle distribuizioni sopra menzionate: LinuxMint dalla versione tricia (basata su bionic) a quelle odierne (ulyana ed ulyssa), deepin, netrunner-core e netrunner-xoxo, ed innumerevoli altre.

Nota su Debian 9 stretch (*) #

In questa versione non è possibile utilizzare l’algoritmo zstd per la compressione fast, procedere con compressione normale.

Nota su Debian 8 jessie (**) #

Su Debian 8 jessie non è possibile utilizzare eggs per la mancanza di overlayfs nel kernel 3.16.x tale caratteristica è resente solo dalla versione 3.19 del kernel. Ho dovuto quindi sostituire il kernel originale con altro di provenienza ubuntu in versione 3.19, in effetti avevo precedentemente installato un kernel bpo debian, questo permetteva la generazione della iso ma purtroppo aveva dei problemi a convivere con la restante parte di jessie.

A questo punto, risolto il problema di overlayfs lato kernel che mi impediva di creare la iso, mi sono scontrato con il fatto che i pacchetti live di jessie utilizzano aufs e non overlayfs, per cui la iso era perfettamente avviabile ma non riusciva comunque a montare filesystem.squashfs.

Ho risolto, installando live-boot dalla versione stretch, finalmente abbiamo la nostra live avviabile.

I pacchetti di strecth installati sono questi:

live-boot_20170112_all.deb live-boot-initramfs-tools_20170112_all.deb

Rimaneva però un ulteriore problema, il pacchetto eggs utilizza un pacchetto npm che va compilato e che si rilevava incompatibile con la versione di libstdc++

E’ stato, quindi, stato necessario ricompilare il pacchetto eggs su jessie e, finalmente, TUTTO FUNZIONA!

In attesa di sostituire il pacchetto drivelist di eggs con altro, vi segnalo che se in questo momento aggiornate eggs con la versione standard eggs non riuscirà ad installare la iso.


Dress the naked

In this video I will give a demonstration of creation a remix starting from almost nothing - my remixes called naked - who consists in the clean debian netinstall plus addiction of eggs.

Can be interesting not only for desktop remixes but for server remixes too.

I hope you’ll enjoy it.

I can’t make this videos in english, but if You are interest to publish similar demonstrations in english or others languages, I will be happy to collaborate with you. Please, contact me at:

Perri's Brewery

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 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

Perri's Brewery

Updated eggs, revised commands and drop eggs i386

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,


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.


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.


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.


Video: #



Video: #

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 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.