|
3 hours ago | |
---|---|---|
.vscode | 1 month ago | |
addons | 1 week ago | |
assets | 2 weeks ago | |
bin | 2 months ago | |
conf | 2 weeks ago | |
documents | 1 day ago | |
g4 | 9 months ago | |
i386 | 1 month ago | |
manpages/doc/man | 1 week ago | |
perrisbrewery | 2 weeks ago | |
scripts | 3 hours ago | |
sourceforge | 1 day ago | |
src | 3 hours ago | |
submodules | 3 hours ago | |
test | 1 month ago | |
.editorconfig | 1 year ago | |
.eslintignore | 9 months ago | |
.eslintrc | 9 months ago | |
.gitignore | 1 week ago | |
.gitmodules | 8 hours ago | |
.gitpod.yml | 1 year ago | |
.npmignore | 3 years ago | |
.prettierrc | 7 months ago | |
LICENSE | 1 year ago | |
README.md | 1 day ago | |
changelog.md | 1 day ago | |
debug | 2 months ago | |
eggs | 2 months ago | |
package.json | 3 hours ago | |
test.ts | 10 months ago | |
tsconfig.json | 6 days ago |
penguins-eggs is a console utility, in active development, who let you to remaster your system and redistribuite it as iso images or from the lan via PXE remote boot.
The scope of this project is to implement the process of remastering your version of Linux, generate it as ISO image to burn on a CD/DVD or copy to a usb key to boot your system. You can also boot your egg - via remote boot - on your LAN. You can easily install your live system with gui calamares installer or eggs cli installer.
All it is written in pure typescript, so ideally can be used with differents Linux distros. Yes, there are big differences about package manager used, but not so much in the way to work of bash and in the various programs used to build the iso.
penguins-eggs, at the moment 2021 febrary is a mature tool and is extremely usefull, You can easily create your personal customized iso or your organization/school version of Linux and deploy it on your LAN, give it to your friends as usb key or publish yours eggs in the internet!
Try penguins-eggs yes, it is a console utility - no GUI - but don’t be scared, penguins-eggs is a console command - really very simple - if you are able to open a terminal, you can use it and yours final users will enjoy of full gui and pratical installer to install your livecd.
Starting with version 7.6.x an addons architecture was been added to eggs, that allows third parties to develop extensions. Note that we currently have an extension for the theme that includes both calamares branding and installer link and icon. In addition, also as addon has been developed others addons, to chosen hoosing between GUI or CLI installation, adapt video resolution, etc.
yolk so called - staying on the subject of eggs - is a local repository included in the livecd that contains a minimum of indispensable packages during installation. Thanks to yolk, you can safely install your system without the need o an active internet connection.
I recently added two lightweight helpers integrated with eggs: mom and dad. While mom is a bash script with whiptail - and guides the user to the various commands and documentation. Dad is a short way to creating the iso: all you have to do is type in sudo eggs dad and follow simple instructions.
Eggs is born on Debian strecth/buster, full support Debian bullseys, Devuan beowulf, Ubuntu focal, bionic and derivatives. I usually try it against Debian buster, Devuan beowulf, Linux Mint 19.3 tricia (bionic derivated) and Linux Mint 20 ulyana (focal derivated) before releases. I tried it successfully in LMDE 4 debbie, and deepin. Eggs, generally must work with all the derivates from that distros.
Some iso images remastered with eggs are in the sourceforge page of the project.
eggs is released as deb package and npm package. Most users need just deb version, if you already use nodejs the npm package can be installed too,
eggs is released deb packages for i386 and amd64 architectures. Due the characteristic of eggs, they can installed in Debian, Devuan or Ubuntu based distros, withouth worries about different versions, except for the architecture. Lately was added scripts for preinst, postinst, prerm and postrm not presents in the original.
This simplest way to install eggs is download the package eggs from sourceforge page of the project and install it
sudo dpkg -i eggs_7.7.33-1_amd64.deb
or, on a i386 system:
sudo dpkg -i eggs_7.7.33-1_i386.deb
The fastest way to use sudo eggs update and choose basket. Eggs let you to select the last 4 versions in the basket and install it.
sudo eggs update
Of course, if your distro include eggs in the repository, you can use apt too.
Note about deb packages You can use the same package for all distributions using deb, naturally choosing the appropriate architecture (i386/amd64).
If you have nodejs installed, you can install penguins-eggs with the utility npm (node package manager).
Simply copy and past the following lines:
sudo npm config set unsafe-perm true
sudo npm i penguins-eggs@latest -g
sudo eggs update
$ npm install -g penguins-eggs
$ eggs COMMAND
running command...
$ eggs (-v|--version|version)
penguins-eggs/7.8.45 linux-x64 node-v15.14.0
$ eggs --help [COMMAND]
USAGE
$ eggs COMMAND
...
eggs adapt
eggs autocomplete [SHELL]
eggs calamares
eggs config
eggs dad
eggs export:deb
eggs export:docs
eggs export:iso
eggs help [COMMAND]
eggs info
eggs install
eggs kill
eggs mom
eggs produce
eggs remove
eggs think
eggs tools:clean
eggs tools:locales
eggs tools:skel
eggs tools:stat
eggs tools:yolk
eggs update
eggs adapt
adapt monitor resolution for VM only
USAGE
$ eggs adapt
OPTIONS
-h, --help show CLI help
-v, --verbose
ALIASES
$ eggs adjust
See code: src/commands/adapt.ts
eggs autocomplete [SHELL]
display autocomplete installation instructions
USAGE
$ eggs autocomplete [SHELL]
ARGUMENTS
SHELL shell type
OPTIONS
-r, --refresh-cache Refresh cache (ignores displaying instructions)
EXAMPLES
$ eggs autocomplete
$ eggs autocomplete bash
$ eggs autocomplete zsh
$ eggs autocomplete --refresh-cache
See code: @oclif/plugin-autocomplete
eggs calamares
calamares or install or configure it
USAGE
$ eggs calamares
OPTIONS
-f, --final final: remove calamares and all it's dependencies after the installation
-h, --help show CLI help
-i, --install install calamares and it's dependencies
-r, --remove remove calamares and it's dependencies
-v, --verbose
--theme=theme theme/branding for eggs and calamares
EXAMPLES
~$ sudo eggs calamares
create/renew calamares configuration's files
~$ sudo eggs calamares -i
install calamares and create it's configuration's files
See code: src/commands/calamares.ts
eggs config
Configure eggs and install packages prerequisites to run it
USAGE
$ eggs config
OPTIONS
-c, --clean remove old configuration before to create
-h, --help show CLI help
-n, --nointeractive assume yes
-v, --verbose verbose
ALIASES
$ eggs prerequisites
EXAMPLE
~$ sudo eggs config
Configure eggs and install prerequisites
See code: src/commands/config.ts
eggs dad
ask help from daddy - configuration helper
USAGE
$ eggs dad
OPTIONS
-c, --clean remove old configuration before to create
-h, --help show CLI help
-v, --verbose
See code: src/commands/dad.ts
eggs export:deb
export deb/docs/iso to the destination host
USAGE
$ eggs export:deb
OPTIONS
-c, --clean remove old .deb before to copy
-h, --help show CLI help
--all export all archs
--amd64 export amd64 arch
--armel export armel arch
--i386 export i386 arch
See code: src/commands/export/deb.ts
eggs export:docs
remove and export docType documentation of the sources in the destination host
USAGE
$ eggs export:docs
OPTIONS
-h, --help show CLI help
See code: src/commands/export/docs.ts
eggs export:iso
export iso in the destination host
USAGE
$ eggs export:iso
OPTIONS
-c, --clean delete old ISOs before to copy
-h, --help show CLI help
See code: src/commands/export/iso.ts
eggs help [COMMAND]
display help for eggs
USAGE
$ eggs help [COMMAND]
ARGUMENTS
COMMAND command to show help for
OPTIONS
--all see all commands in CLI
See code: @oclif/plugin-help
eggs info
informations about system and eggs
USAGE
$ eggs info
OPTIONS
-c, --compressor compressors list
-h, --help show CLI help
-v, --verbose
EXAMPLE
$ eggs info
You will find here informations about penguin's eggs!
See code: src/commands/info.ts
eggs install
command-line system installer - the egg became a penguin!
USAGE
$ eggs install
OPTIONS
-c, --cli force use eggs CLI installer
-h, --help show CLI help
-v, --verbose verbose
ALIASES
$ eggs hatch
EXAMPLE
$ eggs install
Install the system using GUI or CLI installer
See code: src/commands/install.ts
eggs kill
kill the eggs/free the nest
USAGE
$ eggs kill
OPTIONS
-h, --help show CLI help
-v, --verbose verbose
EXAMPLE
$ eggs kill
kill the eggs/free the nest
See code: src/commands/kill.ts
eggs mom
ask for mommy - gui helper
USAGE
$ eggs mom
OPTIONS
-h, --help show CLI help
See code: src/commands/mom.ts
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 partitions
ALIASES
$ eggs spawn
$ eggs lay
EXAMPLES
$ sudo eggs produce
produce an ISO called [hostname]-[arch]-YYYY-MM-DD_HHMM.iso, compressed xz (standard compression).
If hostname=ugo and arch=i386 ugo-x86-2020-08-25_1215.iso
$ sudo eggs produce -v
same as previuos, but with --verbose output
$ sudo eggs produce -vf
same as previuos, compression zstd, lz4 or gzip (depend from system capability)
$ sudo eggs produce -vm
same as previuos, compression xz -Xbcj x86 (max compression, about 10%
more compressed)
$ sudo eggs produce -vf --basename leo --theme debian --addons adapt
produce an ISO called leo-i386-2020-08-25_1215.iso compression fast,
using Debian theme and link to adapt
$ sudo eggs produce -v --basename leo --theme debian --addons rsupport
produce an ISO called leo-i386-2020-08-25_1215.iso compression xz,
using Debian theme and link to dwagent
$ sudo eggs produce -v --basename leo --rsupport
produce an ISO called leo-i386-2020-08-25_1215.iso compression xz, using eggs
theme and link to dwagent
$ sudo eggs produce -vs --basename leo --rsupport
produce scripts to build an ISO as the previus example. Scripts can be found
in /home/eggs/ovarium and you can customize all you need
See code: src/commands/produce.ts
eggs remove
remove eggs and others stuff
USAGE
$ eggs remove
OPTIONS
-a, --autoremove remove eggs packages dependencies
-h, --help show CLI help
-p, --purge remove eggs configurations files
-v, --verbose verbose
EXAMPLES
$ sudo eggs remove
remove eggs
$ sudo eggs remove --purge
remove eggs, eggs configurations, packages prerequisites
See code: src/commands/remove.ts
eggs think
thinking a different approach to CLI...
USAGE
$ eggs think
OPTIONS
-h, --help show CLI help
-v, --verbose
See code: src/commands/think.ts
eggs tools:clean
clean system log, apt, etc
USAGE
$ eggs tools:clean
OPTIONS
-h, --help show CLI help
-v, --verbose verbose
ALIASES
$ eggs clean
See code: src/commands/tools/clean.ts
eggs tools:locales
install/clean locales
USAGE
$ eggs tools:locales
OPTIONS
-h, --help show CLI help
-r, --reinstall reinstall locales
-v, --verbose verbose
See code: src/commands/tools/locales.ts
eggs tools:skel
update skel from home configuration
USAGE
$ eggs tools:skel
OPTIONS
-h, --help show CLI help
-u, --user=user user to be used
-v, --verbose
ALIASES
$ eggs skel
EXAMPLE
$ eggs skel --user mauro
desktop configuration of user mauro will get used as default
See code: src/commands/tools/skel.ts
eggs tools:stat
get statistics from sourceforge
USAGE
$ eggs tools:stat
OPTIONS
-h, --help show CLI help
-m, --month current month
-y, --year current year
ALIASES
$ eggs stat
See code: src/commands/tools/stat.ts
eggs tools:yolk
configure eggs to install without internet
USAGE
$ eggs tools:yolk
OPTIONS
-h, --help show CLI help
-v, --verbose
EXAMPLE
$ eggs yolk -v
See code: src/commands/tools/yolk.ts
eggs update
update the penguin’s eggs tool
USAGE
$ eggs update
OPTIONS
-a, --apt if eggs package is .deb, update from distro repositories
-b, --basket if eggs package is .deb, update from eggs basket
-h, --help show CLI help
-n, --npm if eggs package is .npm, update from npmjs.com
-v, --verbose verbose
EXAMPLE
$ eggs update
update/upgrade the penguin's eggs tool
See code: src/commands/update.ts
No need other configurations, penguins-eggs are battery included or better, as in the real, live is inside! :-D
There is user’s manual and same other documentation in documents folder of this repository.
Contact me via gitter, or open an issue on github.
Copyright (c) 2017, 2020 Piero Proietti, dual licensed under the MIT or GPL Version 2 licenses.