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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
eggs produce
the system produce an egg: iso image of your system

USAGE
$ eggs produce

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

bullseye

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.

jessie

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: piero.proietti@gmail.com

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

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.

mom

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

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

dad

mom

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

mom

dad

Some videos are in our channel

Index #

Italiano #

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

#

English #

english

Two graphical interfaces for eggs #

In an attempt to simplify the use and learning of eggs I have created two useful interfaces that - being penguins - have been named mom and dad.

mom #

mom is a simple bash script that runs on both GUI and CLI systems.

It provides a visual guide to various commands, the selection of commands and their startup, thus allowing an easier approach to eggs.

mom, it should never be called with the root user.

dad #

dad, instead, is always used with sudo and leads us directly to the creation of our iso.

I leave the task of better illustrating the two interfaces to the movie below. (Subtitles are available in Italian, English, Portuguese and Spanish).

#

Portuguese (BR) #

portugues

Duas interfaces gráficas para eggs #

Numa tentativa de simplificar o uso e o aprendizado do eggs, percebi duas interfaces úteis que - sendo pingüins - foram nomeadas mom (mãe) e dad (pai).

mom #

mom é um simples roteiro de bash que roda em ambos os sistemas GUI e CLI.

Permite ter um guia visual dos vários comandos, a seleção dos mesmos e seu lançamento, permitindo - então - uma aproximação mais fácil dos ovos.

mom, ela nunca deve ser chamada com o usuário root.

dad #

O dad, ao invés disso, é sempre usado com sudo e nos leva diretamente à criação de nossa iso.

Deixo a tarefa de ilustrar melhor as duas interfaces para o filme abaixo. (As legendas estão disponíveis em italiano, inglês, português e espanhol).

#

Espanol #

espanol

Dos interfaces gráficas para los huevos #

En un intento de simplificar el uso y aprendizaje de los huevos me he dado cuenta de dos útiles interfaces que - siendo pingüinos - han sido nombrados mamá y papá.

mamá #

mamá es un simple script bash que se ejecuta tanto en sistemas GUI como CLI.

Permite tener una guía visual de los distintos comandos, la selección de los mismos y su lanzamiento, permitiendo - entonces - un acercamiento más fácil a los huevos.

Mamá, nunca debe ser llamado con el usuario raíz.

Dad #

papá, en cambio, siempre se usa con el sudo y nos lleva directamente a la creación de nuestra iso.

Dejo la tarea de ilustrar mejor las dos interfaces de la película a continuación. (Los subtítulos están disponibles en italiano, inglés, portugués y español).

#

autocomplete

autocomplete

Index #

Italiano #

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.

1
2
3
4
5
6
7
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

1
eggs pr

seguito da tab, verranno mostrate le possibili opzioni:

1
2
3
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.

1
2
3
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:

1
2
3
4
5
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

1
eggs autocomplate bash

Che mostrerà la seguente schermata:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

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

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

English #

english

Autocomplete and command not found #

A modern cli application contains two useful features, autocomplete and command not found warning, followed by the suggestion of the nearest command.

eggs starting from version 7.7.0 contains both features, thanks to oclif-dev plugins with which it is developed.

The result of autocomplete is that by typing eggs followed by two tabs, you will be shown the available options.

1
2
3
4
5
6
7
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

while typing

1
eggs pr

followed by tab, the possible options will be shown:

1
2
3
artisan@demo:~$ eggs  pr
prerequisites produce
artisan@demo:~$ eggs pr

And so on for all commands.

On the other hand, the command not found function, if it detects an unknown command as input, will suggest the nearest command.

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

It is also possible to display all available flags for a given command:

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

Installation of autocomplete for the current user #

To benefit from the autocomplete feature, all we have to do is generate the configuration files. Command:

1
eggs autocomplate bash

That will show the following screen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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!

Copy the code to add autocomplete to your .bashrc profile

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

and launch it from the terminal.

At this point type eggs followed by two tabs and you’re done.

Installing eggs autocomplete for all users #

To use the eggs autocomplete for all users and, therefore, also for the live user of the liveCD, you need to copy the file ~/.cache/penguins-eggs/autocomplete/functions/bash/eggs.bash in /etc/bash_complete.d:

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

At this point eggs autocomplete will be available for all users.

Portuguese (BR) #

portugues

Autocompletar e comando não encontrado #

Uma aplicação de linha de comando moderna contém duas características úteis, o autocompletar e o comando não encontrado aviso, seguido pela sugestão do comando mais próximo.

Eggs desde a versão 7.7.0 contém ambas as características, graças aos plugins oclif-dev com os quais é desenvolvido.

O resultado do autocompletar é que a digitação eggs seguida por duas abas mostrará as opções disponíveis.

1
2
3
4
5
6
7
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

durante a digitação

1
eggs pr

seguido de tabulação, as opções possíveis serão mostradas:

1
2
3
artisan@demo:~$ eggs  pr
prerequisites produce
artisan@demo:~$ eggs pr

E assim por diante para todos os comandos.

Por outro lado, se o comando não encontrado detecta um comando desconhecido, ele sugerirá o comando mais próximo.

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

Também é possível exibir todas as bandeiras disponíveis para um determinado comando:

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

Instalando o autocompletar para o usuário atual #

Para aproveitar o recurso de autocompletar, tudo o que precisamos fazer é gerar os arquivos de configuração, comandar

1
eggs autocomplete bash

Que mostrará a seguinte tela:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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!

copie o código para adicionar o autocompletar ao seu perfil .bashrc

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

e o execute a partir do terminal.

Agora digite eggs seguidos de duas abas e está pronto!

Instalação eggs autocomplete para todos os usuários #

Para utilizar os eggs autocomplete para todos os usuários e, portanto, também para o usuário vivo do liveCD, é necessário copiar o arquivo
~/.cache/penguins-eggs/autocomplete/functions/bash/eggs.bash in /etc/bash_complete.d:

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

Neste momento, os eggs autocomple estarão disponíveis para todos os usuários.

themes

roma

Index #

English #

english

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:

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

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

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

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

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

Italiano #

italiano

Dove risiedono i temi #

I temi sono un addon di eggs.

Essi sono visti da eggs in /etc/penguins-eggs.d/addons pur risiedendo in differenti posizioni a seconda del tipo di installazione e della architettura in uso.

Da questo link, vengono compilati e copiani nelle directory di pertinenza. Per calamares /etc/calamares/branding.

Non si deve, quindi, cambiare direttamente il branding di calamares in /etc/calamares, ma creare un addon in /etc/penguins-eggs.d/addons.

link /etc/penguins-eggs.d/addons #

In questa directory puoi trovare, appunto, gli addons di eggs. Al momento:

  • debian
  • deblinux
  • eggs
  • ufficiozero

All’interno di queste cartelle (vendor) ci sono gli addons veri e propri.

Ad esempio:

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

I temi #

Oggi parliamo solo di temi, ma lo stesso vale anche per gli altri tipi di addon.

Supponiamo che il nostro vendor sia l’utente tico. Creiamo, quindi, una cartella ~/tico nella nostra home.

Copiamo in questa il contenuto di /etc/penguins-eggs.d/eggs/theme.

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

A questo punto dobbiamo creare un collegamento simbolico in /etc/penguins-eggs.d/ per poter utilizzare il nostro nuovo tema.

Per prima cosa vediamo dove risiede effettivamente la cartella /etc/penguins-eggs/addons.

Per scoprirlo daremo semplicemente il comando:

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

scoprendo che, con installazione deb ed architettura amd64, questo è un link alla cartella:

/usr/lib/penguins-eggs/addons

Quindi, a questo punto possiamo creare un link al nostro progetto di tema:

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

Bene, abbiamo raggiunto il nostro scopo.

NB: A seguito dell’aggiornamento di eggs potremo perdere il link, cha andrà rifatto, ma non la nostra customizzazione.

Modifica del tema #

Possiamo modificare e conservare nella nostra home il nostro progetto di tema che sarà visto da eggs come /etc/penguins-eggs.d/addons/tico.

Ora possiamo iniziare a modificare il contenuto di ~/tico/theme.

La struttura del tema #

Nella cartella theme ci sono tre cartelle:

  • applications
  • artwork
  • branding

In applications troviamo semplicemente il link debian-install.desktop, in artwork l’icona debian-install.png mentre in branding troviamo il template per calamares.

Non mi dilungo su applications ed artwork, chi si occupa di rimasterizzazione se la caverà egregiamente. Parleremo invece di branding.

In branding sono presenti due file di testo ed alcune immagini.

  • branding.desc
  • show.qml

branding.desc è solamente un segnaposto, sarà costruito da zero direttamente da eggs.

show.qml, invece, è la nostra presentazione.

le varie immagini: welcome.png e slide1.png, etc sono invece le varie figure che scorrerenno durante l’installazione.

Potete cambiare tutto a vostro piacimento.

NB: Per informazioni, consultate la documentazione di calamares.

Uso del nostro tema #

Per usare il nostro tema tico, dovremo semplicemente specificare il flag –theme vendor in produce.

1
sudo eggs produce -vf --theme tico

Portuguese (BR) #

portugues

Onde residem os temas #

Os temas são um suplemento de eggs.

Eles são vistos por eggs em /etc/penguins-eggs.d/addons enquanto residem em locais diferentes, dependendo do tipo de instalação e da arquitetura em uso.

A partir deste link, eles são compilados e copiados para os diretórios relevantes. Para calamares /etc/calamares/branding.

Portanto, você não deve alterar diretamente a marca das lulas em /etc/calamares, mas criar um addon em /etc/penguins-eggs.d/addons.

link /etc/penguins-eggs.d/addons #

Neste diretório você pode encontrar, de fato, os suplementos de eggs. No momento:

  • debian
  • deblinux
  • eggs
  • ufficiozero

Dentro destas pastas (vendors) estão os próprios addons.

Por exemplo:

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

Temas #

Hoje estamos falando apenas de temas, mas o mesmo vale para os outros tipos de adições.

Vamos assumir que nosso fornecedor é o usuário tico. Vamos criar uma pasta ~/tico em nossa casa.

Copiamos o conteúdo de /etc/penguins-eggs.d/eggs/theme para este aqui.

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

Neste ponto, temos que criar um link simbólico em /etc/penguins-eggs.d/ para usar nosso novo tema.

Primeiro vamos ver onde realmente reside a pasta /etc/penguins-eggs/addons.

Para saber, basta dar o comando:

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

descobrindo que, com a instalação da deb e a arquitetura amd64, este é um link para a pasta:

/usr/lib/penguins-eggs/addons

Assim, neste momento, podemos criar um link para nosso projeto temático:

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

Bem, nós atingimos nosso objetivo.

NB: Após a atualização dos eggs podemos perder o elo, que precisará ser reconstruído, mas não nossa customização.

Mude o tema #

Podemos modificar e manter em nossa casa nosso projeto temático que será visto pelo eggs como /etc/penguins-eggs.d/addons/tico.

Agora podemos começar a modificar o conteúdo de ~/tico/tema.

A estrutura do tema #

Há três pastas na pasta temática:

  • applications
  • artwork
  • branding

Em applications nós simplesmente encontramos o link debian-install.desktop, em artwork encontramos o icon debian-install.png e em branding encontramos o modelo para lula.

Não me detenho em applications e artwork, aqueles que lidam com remasterização se sairão muito bem. Em vez disso, falaremos sobre branding.

Em branding há dois arquivos de texto e algumas imagens.

  • branding.desc
  • show.qml

O branding.desc é apenas um suporte de local, ele será construído a partir do zero diretamente do eggs.

show.qml, ao invés disso, é nossa apresentação.

as várias imagens: welcome.png e slide1.png, etc. são as várias figuras que irão rolar durante a instalação.

Você pode mudar tudo à sua vontade.

NB: Para informações, consulte a documentação de calamares.

Usando nosso tema #

Para utilizar nosso tema tico, teremos simplesmente que especificar a bandeira –theme tico.

1
sudo eggs produce -vf --theme tico

Tradução #

Traduzido com a versão gratuita do tradutor - www.DeepL.com/Translator

Se você quiser contribuir para a tradução para seu idioma, você pode baixar o conteúdo deste site com git. Corrigi-lo e enviá-lo ao autor piero.proietti.

Obrigado.