penguins-eggs 25.12.15 → 26.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oclif.manifest.json +192 -192
- package/README.md +109 -489
- package/README.pdf +3174 -19913
- package/addons/eggs/theme/applications/install-system.desktop +3 -9
- package/assets/calamares/install-system.sh +23 -22
- package/assets/penguins-krill.desktop +5 -23
- package/dist/classes/distro.js +2 -1
- package/dist/classes/incubation/incubator.js +21 -8
- package/dist/classes/ovary.d/create-xdg-autostart.d.ts +3 -3
- package/dist/classes/ovary.d/create-xdg-autostart.js +139 -149
- package/dist/classes/ovary.d/luks-home-support-systemd.d.ts +12 -0
- package/dist/classes/ovary.d/luks-home-support-systemd.js +70 -0
- package/dist/classes/ovary.d/luks-home-support.d.ts +1 -0
- package/dist/classes/ovary.d/luks-home-support.js +101 -24
- package/dist/classes/ovary.d/produce.js +2 -2
- package/dist/classes/ovary.d/user-create-live.js +6 -1
- package/dist/classes/ovary.d/xorriso-command.js +11 -21
- package/dist/classes/utils.js +3 -0
- package/dist/classes/xdg.d.ts +6 -1
- package/dist/classes/xdg.js +119 -108
- package/dist/commands/export/appimage.js +2 -1
- package/dist/commands/export/pkg.js +16 -8
- package/dist/commands/update.js +1 -1
- package/dist/krill/classes/prepare.d/users.js +6 -6
- package/dist/krill/classes/prepare.js +6 -2
- package/dist/krill/classes/sequence.d/remove-homecrypt-hack.d.ts +13 -0
- package/dist/krill/classes/sequence.d/remove-homecrypt-hack.js +65 -0
- package/dist/krill/classes/sequence.d.ts +2 -0
- package/dist/krill/classes/sequence.js +7 -2
- package/dist/krill/components/users.js +4 -4
- package/dist/krill/lib/get_userfullname.js +1 -1
- package/dist/krill/lib/get_username.js +3 -3
- package/package.json +16 -15
- package/perrisbrewery/template/dependencies.yaml +3 -0
package/README.md
CHANGED
|
@@ -21,13 +21,12 @@ It took years of work to create the penguins-eggs, and I also incurred expenses
|
|
|
21
21
|
<!-- toc -->
|
|
22
22
|
* [README](#readme)
|
|
23
23
|
* [Penguin's eggs are generated and new birds are ready to fly...](#penguin39s-eggs-are-generated-and-new-birds-are-ready-to-fly)
|
|
24
|
-
* [
|
|
24
|
+
* [penguins-eggs](#penguins-eggs)
|
|
25
25
|
* [Installation](#installation)
|
|
26
|
-
* [Introduction](#introduction)
|
|
27
|
-
* [Technology](#technology)
|
|
28
|
-
* [Features](#features)
|
|
29
|
-
* [Packages](#packages)
|
|
30
26
|
* [Usage](#usage)
|
|
27
|
+
* [The Aviary: Tools & Terminology](#the-aviary-tools--terminology)
|
|
28
|
+
* [Supported Distributions](#supported-distributions)
|
|
29
|
+
* [Links & Documentation](#links--documentation)
|
|
31
30
|
* [Commands](#commands)
|
|
32
31
|
* [GUI](#gui)
|
|
33
32
|
* [Book](#book)
|
|
@@ -42,504 +41,125 @@ It took years of work to create the penguins-eggs, and I also incurred expenses
|
|
|
42
41
|
- [FAQ](https://penguins-eggs.net/docs/faq)
|
|
43
42
|
- [Changelog](https://github.com/pieroproietti/penguins-eggs/blob/master/CHANGELOG.md#changelog)
|
|
44
43
|
|
|
45
|
-
# Presentation
|
|
46
|
-
**penguins-eggs** is a system cloning and distribution remastering tool primarily designed for Linux distributions.
|
|
47
44
|
|
|
48
|
-
|
|
45
|
+
# penguins-eggs
|
|
49
46
|
|
|
50
|
-
|
|
47
|
+
**penguins-eggs** (or simply `eggs`) is a console tool that allows you to remaster your system and redistribute it as live images on USB sticks or via PXE.
|
|
51
48
|
|
|
52
|
-
|
|
49
|
+
Think of it as a way to "hatch" a new system from an existing one. It is a system cloning and distribution remastering tool primarily designed for Linux. It allows users to create customized live ISO images or backups of a Linux system, replicating the setup easily.
|
|
53
50
|
|
|
54
|
-
|
|
51
|
+
### Key Capabilities
|
|
55
52
|
|
|
56
|
-
*
|
|
53
|
+
* **Distribution Remastering:** Craft your own Linux distro (or a spin of an existing one). Tweak an existing system, strip or add components, and package it as a new ISO.
|
|
54
|
+
* **System Backup & Cloning:** Create a snapshot of your current system, including installed packages and configurations.
|
|
55
|
+
* **Distro-Agnostic:** Works across **Debian, Devuan, Ubuntu, Arch, Fedora, AlmaLinux, Rocky, OpenSuSE, and Alpine**.
|
|
56
|
+
* **Fast & Efficient:** Uses `livefs` and `zstd` compression (up to 10x faster) to avoid copying the entire filesystem.
|
|
57
|
+
* **Secure:** Supports LUKS encryption for user data within the ISO.
|
|
57
58
|
|
|
58
|
-
|
|
59
|
+
---
|
|
59
60
|
|
|
60
61
|
# Installation
|
|
61
|
-
## AppImage
|
|
62
|
-
[](https://github.com/pieroproietti/penguins-eggs/releases)
|
|
63
62
|
|
|
63
|
+
There are three main ways to install `eggs`. Choose the one that fits your workflow.
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
### Method 1: The "Fresh Eggs" Script (Recommended)
|
|
66
|
+
This is the most practical way suitable for all [supported distros](https://github.com/pieroproietti/fresh-eggs/blob/main/SUPPORTED-DISTROS.md). It automatically configures necessary repositories (like NodeSource) and installs dependencies.
|
|
66
67
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
`eggs love` to get your system remastered as live ISO.
|
|
70
|
-
|
|
71
|
-
## Before trying the AppImage, depending on your distro, you need to install these packages:
|
|
72
|
-
* Alpine: `sudo apk add fuse`
|
|
73
|
-
* Arch/Manjaro: `sudo pacman -S fuse2`
|
|
74
|
-
* Debian/Devuan/Ubuntu: `sudo apt-get install fuse libfuse2`
|
|
75
|
-
* Fedora/RHEL: `sudo dnf install fuse fuse-libs`
|
|
76
|
-
* Opensuse: `sudo zypper install fuse fuse-libs`
|
|
77
|
-
|
|
78
|
-
## AppImage installation
|
|
79
|
-
penguins-eggs as an AppImage, it can be installed on all supported distributions. Download it from [github.com/pieroproietti](https://github.com/pieroproietti/penguins-eggs/releases) or on [appimage.github.io](https://appimage.github.io/penguins-eggs), then run the following commands:
|
|
80
|
-
```
|
|
81
|
-
$ chmod +x penguins-eggs-25.11.29-1-x86_64.AppImage
|
|
82
|
-
$ sudo ./penguins-eggs-25.11.29-1-x86_64.AppImage
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
Note that the AppImage version and the native version consist of exactly the same code and install/remove the same native dependencies on every distro.
|
|
86
|
-
|
|
87
|
-
## Native packages
|
|
88
|
-
**Try the new repos** for [Debian/Devuan/Ubuntu](https://github.com/pieroproietti/penguins-eggs/blob/master/DOCS/INSTALL-DEBIAN-DEVUAN-UBUNTU.md)[Fedora](https://github.com/pieroproietti/penguins-eggs/blob/master/DOCS/INSTALL-FEDORA.md), [Enterprise linux](https://github.com/pieroproietti/penguins-eggs/blob/master/DOCS/INSTALL-ENTERPRISE-LINUX.md) and [OpenSUSE](https://github.com/pieroproietti/penguins-eggs/blob/master/DOCS/INSTALL-OPENSUSE.md).
|
|
89
|
-
|
|
90
|
-
## penguins-eggs-25.7.x installation
|
|
91
|
-
`penguins-eggs-25.7.x` depends on `nodejs >18`, which is not directly available on all distros. We can rely on [nodesource](https://github.com/nodesource/distributions?tab=readme-ov-file#debian-and-ubuntu-based-distributions) for adding them.
|
|
92
|
-
|
|
93
|
-
### using fresh-eggs
|
|
94
|
-
It's the most pratical way and is suitable for all [supported distros](https://github.com/pieroproietti/fresh-eggs/blob/main/SUPPORTED-DISTROS.md).
|
|
95
|
-
|
|
96
|
-
[fresh-eggs](https://github.com/pieroproietti/fresh-eggs) configure automatically `nodesource` when need, and install the right package for your distro. Copy and paste, the follow commands:
|
|
97
|
-
```
|
|
98
|
-
git clone https://github.com/pieroproietti/fresh-eggs
|
|
68
|
+
```bash
|
|
69
|
+
git clone [https://github.com/pieroproietti/fresh-eggs](https://github.com/pieroproietti/fresh-eggs)
|
|
99
70
|
cd fresh-eggs
|
|
100
71
|
sudo ./fresh-eggs.sh
|
|
101
72
|
```
|
|
102
|
-
And follow instructions.
|
|
103
|
-
|
|
104
|
-
### using Eggo - The Simpler Installer for Penguins Eggs
|
|
105
|
-
From our friend [Brickboss](https://github.com/robert19066) come [eggo](https://github.com/robert19066/Eggo) a simple installer for penguins-eggs. [Instructions](https://github.com/robert19066/Eggo).
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
### Manual installation
|
|
109
|
-
|
|
110
|
-
### AlmaLinux, RockyLinux
|
|
111
|
-
Since penguins-eggs-25.7.14 rpm packages for Enterprise Linux [el9](https://penguins-eggs.net/basket/index.php/packages/el9) are availables.
|
|
112
|
-
|
|
113
|
-
### AlpineLinux
|
|
114
|
-
I maintain a package for Alpine Linux. Its repository is [penguins-alpine](https://github.com/pieroproietti/penguins-alpine) and related packages can be downloaded from [penguins-eggs.net](https://penguins-eggs.net/basket/index.php/packages/alpine) or the [sourceforge page](https://sourceforge.net/projects/penguins-eggs/files/Packages/alpine/).
|
|
115
|
-
|
|
116
|
-
### Arch
|
|
117
|
-
Just download and install penguins-eggs-25.x.x using [fresh-eggs](https://github.com/pieroproietti/fresh-eggs).
|
|
118
|
-
|
|
119
|
-
### Debian, Devuan, Ubuntu
|
|
120
|
-
Just download and install penguins-eggs-25.x.x using [fresh-eggs](https://github.com/pieroproietti/fresh-eggs).
|
|
121
|
-
|
|
122
|
-
#### Debian 10 Buster, Debian 11 Bullseye
|
|
123
|
-
Before to install `penguins-eggs-25.x.x`, add the repos from `nodesource`. Follow these [instructions](https://github.com/pieroproietti/penguins-eggs/issues/368) to get `nodejs>18` available.
|
|
124
|
-
|
|
125
|
-
#### Debian 9 Stretch, Ubuntu 18.04 Bionic
|
|
126
|
-
Use the package `penguins-eggs-25.x.x-bionic-x`, which is compiled against node16. Follow these [instructions](https://github.com/pieroproietti/penguins-eggs/issues/368#issuecomment-2169961955) to get `nodejs>16` available.
|
|
127
|
-
|
|
128
|
-
### Fedora
|
|
129
|
-
Since penguins-eggs-25.7.14 rpm packages for [fedora42](https://penguins-eggs.net/basket/index.php/packages/fedora) are availables.
|
|
130
|
-
|
|
131
|
-
### Manjaro
|
|
132
|
-
penguins-eggs is on Manjaro community repo, so just: `sudo pamac install penguins-eggs`.
|
|
133
|
-
|
|
134
|
-
### Openmanba
|
|
135
|
-
Openmamba is an italian distribution based on rpm and using dnf as package manager, it is really up-to-date, penguins-eggs is available as rpm package.
|
|
136
|
-
|
|
137
|
-
### OpenSUSE
|
|
138
|
-
Since penguins-eggs-25.7.14 rpm packages for [OpenSUSE](https://penguins-eggs.net/basket/index.php/packages/opensuse) are availables.
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
# Introduction
|
|
143
|
-
|
|
144
|
-
`penguins-eggs` is the package name of `eggs` a console tool, under continuous development, that allows you to remaster your system and redistribute it as live images on USB sticks or via PXE.
|
|
145
|
-
|
|
146
|
-
The concept behind Penguins’ Eggs stems from the idea of “reproduction” and “population selection” applied to operating systems. During the era of popular remastering programs like Remastersys and Systemback, both of which experienced maintenance issues and were eventually abandoned, the need for a new, modern tool became evident.
|
|
147
|
-
|
|
148
|
-
The inspiration for Penguins’ Eggs led to the development of a new tool written in a modern, cross-distribution language, utilizing its own packaging system.
|
|
149
|
-
|
|
150
|
-
Initially built with javascript and then switched to Typescript as the main development language, the design of the tool resembles an egg production process, consisting of operations such as produce to create the eggs and hatch to install them (I changed a bit later: from hatch to install, then to krill as a tribute to calamares tribes).
|
|
151
|
-
|
|
152
|
-
Other commands follow: like `kill` for removing produced ISOs, `calamares` for configuring the graphical installer, `mom` as interactive help, `dad` to configure eggs, `status`, `tools`, etc.
|
|
153
|
-
|
|
154
|
-
Considered a work-in-progress, the ultimate goal of Penguins Eggs is to allow the creation of live ISOs from an installed system and their use for system installations. It can be used both to create images on USB devices - even [Ventoy](https://www.ventoy.net/en/index.html) - and as a PXE server to distribute the image itself over a local network. Inspired by the behavior of the cuckoo bird, which depends on others to hatch its eggs.
|
|
155
|
-
|
|
156
|
-
Written primarily in TypeScript, Penguins’ Eggs is designed to be compatible with various Linux distributions, despite differences in package managers, file paths, and more.
|
|
157
|
-
|
|
158
|
-
The tool currently supports Debian, Devuan, Ubuntu, Arch, Manjaro, and their derivatives, across multiple architectures including amd64, i386, and arm64.
|
|
159
|
-
|
|
160
|
-
From the release of version 9.6.x, Penguins’ Eggs is available as a [Debian package](https://penguins-eggs.net/basket/index.php?p=packages%2Fdebs), then was extended to Arch Linux creating the relative [PKGBUILD](https://aur.archlinux.org/packages/penguins-eggs). Nowadays, eggs can remaster AlmaLinux, Fedora, openmamba, openSuSE, and RockyLinux too.
|
|
161
|
-
|
|
162
|
-
Penguins Eggs caters to a wide range of systems including PCs, older machines, and single-board ARM systems like the Raspberry Pi, across amd64, i386, and arm64 architectures.
|
|
163
|
-
|
|
164
|
-
For more information and updates, visit the [Penguins Eggs' official website](https://penguins-eggs.net).
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
> [!TIP]
|
|
168
|
-
> `eggs` is an actively developed console tool designed to help you customize and distribute your system as live images on USB sticks or through PXE. By using this tool, you can remaster your system according to your preferences.
|
|
169
|
-
|
|
170
|
-
> [!TIP]
|
|
171
|
-
> By default, `eggs` completely removes the system's data and users. However, it also offers the option to remaster the system while including the data and accounts of existing users. This can be done using the `--clone` flag. Additionally, you can preserve the users and files by storing them in an encrypted LUKS file within the resulting ISO file, which can be achieved with the `--cryptedclone` flag.
|
|
172
|
-
|
|
173
|
-
> [!TIP]
|
|
174
|
-
> The resulting live system can be easily installed using either the calamares installer or the internal TUI krill installer. Furthermore, using `krill`, you can easily get an unattended installation, utilizing `--unattended` and various [krill](#eggs-krill) flags.
|
|
175
|
-
|
|
176
|
-
> [!TIP]
|
|
177
|
-
> One interesting feature of `eggs` is its integration with the `penguins-wardrobe` This allows you to create or utilize scripts to switch between different configurations. For example, you can start with a bare version of the system, featuring only a command-line interface (CLI), and then easily transition to a full graphical user interface (GUI) or server configurations.
|
|
178
|
-
|
|
179
|
-
> [!NOTE]
|
|
180
|
-
> For more information and customization options, you can explore `penguins-wardrobe`. a related project. You can fork it and adapt it to meet your specific needs.
|
|
181
|
-
|
|
182
|
-
See [penguins-wardrobe](https://github.com/pieroproietti/penguins-wardrobe), fork it, and adapt it to your needs.
|
|
183
|
-
|
|
184
|
-
# Technology
|
|
185
|
-
`eggs` is primarily written in TypeScript and is designed to be compatible with various Linux distributions. While there may be differences in package managers, paths, and other aspects, the underlying programs used to build the live system are generally the same.
|
|
186
|
-
|
|
187
|
-
Currently, `eggs` supports several Linux distributions, including [AlmaLinux](https://almalinux.org/), [Arch](https://archlinux.org/), [Debian](https://www.debian.org/), [Devuan](https://www.devuan.org/), [LinuxMint](https://www.linuxmint.com/), [Manjaro](https://manjaro.org/), [openmamba](https://openmamba.org/), [openSuSE](https://www.opensuse.org/), [Ubuntu](https://ubuntu.com/), [RockyLinux](https://rockylinux.org/) and [derivatives](./conf/derivatives.yaml).
|
|
188
|
-
|
|
189
|
-
It also caters to different architectures, namely `amd64`, `i386`, and `arm64`.
|
|
190
|
-
|
|
191
|
-
Starting from version 9.6.x, `penguins-eggs` is released as a Debian package, available for amd64, i386, and arm64 architectures. This allows it to support a wide range of PCs, including older machines, as well as single-board ARM systems like the Raspberry Pi. You can learn more about this release in the article titled Triple Somersault! [Triple somersault!](https://penguins-eggs.net/blog/triple-somersault).
|
|
192
|
-
|
|
193
|
-
For more information on the supported distributions and architectures, you can visit the blog [blog](https://penguins-eggs.net/blog/distros-that-can-be-remastered-with-eggs).
|
|
194
|
-
|
|
195
|
-
Additionally, you can find examples of remastered ISO images created with `eggs` on the project's SourceForge page [sourceforge page of the project](https://sourceforge.net/projects/penguins-eggs/files/ISOS/).
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
# Features
|
|
199
|
-
Penguins-eggs is a versatile tool that offers an array of features and benefits for Linux users. Whether you want to create an installable ISO from your current Linux system or explore various customization options,
|
|
200
|
-
|
|
201
|
-
Penguins-eggs has got you covered. To get started with Penguins-eggs, you'll need to install it on your Linux distribution. The tool supports a wide range of Linux distributions and their major derivatives, including Arch, Debian, Devuan, Manjaro, Ubuntu, and more. Additionally, you can easily add support for additional derivatives, expanding the tool's capabilities even further.
|
|
202
|
-
|
|
203
|
-
1. Fast and Efficient
|
|
204
|
-
Penguins-eggs is designed to be fast and efficient. Unlike traditional methods that involve copying the entire file system, Penguins-eggs utilizes livefs, which allows for instant acquisition of the live system. By default, the tool.
|
|
205
|
-
|
|
206
|
-
2. Supports Compression Algorithm
|
|
207
|
-
Employs the zstd compression algorithm, significantly reducing the time required for the process, often up to 10 times faster. When creating an installable ISO.
|
|
208
|
-
|
|
209
|
-
3. Supports Clone
|
|
210
|
-
Penguins-eggs provides various options to suit your needs. With the --clone flag, you can preserve the data and accounts of unencrypted users, ensuring a seamless experience for users accessing the live system. Moreover, you can opt for a crypted clone, where user data and accounts are saved in an encrypted LUKS volume within the ISO image, enhancing security and privacy.
|
|
211
|
-
|
|
212
|
-
4. Cuckoo and PXE boot
|
|
213
|
-
In addition to ISO creation, Penguins-eggs offers a unique feature called Cuckoo. By starting Cuckoo from the live system, you can set up a PXE boot server, making it accessible to all computers on the network. This functionality opens up possibilities for network booting and streamlined deployment. Penguins Eggs Linux ushers in a new era of innovation and convenience with its groundbreaking default feature, Cuckoo live network boot, which transforms any computer running Penguins Eggs into a PXE (Preboot eXecution Environment) boot server. This revolutionary paradigm of network booting and seamless deployment underscores Penguins Eggs Linux’s commitment to redefining the parameters of accessibility and efficiency within the realm of Linux distributions.
|
|
214
|
-
|
|
215
|
-
5. Supports Both TUI/GUI Installer
|
|
216
|
-
To simplify the installation process, Penguins-eggs provides its own system installer called krill. This installer is particularly useful when a GUI (Graphical User Interface) is not available, allowing for installation in various situations. However, if you are using a desktop system, Penguins-eggs recommends and configures the calamares GUI installer, ensuring a seamless and user-friendly experience.
|
|
217
|
-
Penguins Eggs Linux spearheads a transformative revolution in the realm of system installation with the incorporation of its TUI (Text-based User Interface) / GUI (Graphical User Interface) installer, setting a new standard of versatility and accessibility within the landscape of Linux distributions.
|
|
218
|
-
|
|
219
|
-
6. Repository Lists
|
|
220
|
-
One of the key advantages of Penguins-eggs is its commitment to utilizing only the original distro's packages. This means that no modifications are made to your repository lists, ensuring a safe and reliable environment. Penguins-eggs prioritizes maintaining the integrity and authenticity of your Linux distribution.
|
|
221
|
-
|
|
222
|
-
7. Wardrobe
|
|
223
|
-
To enhance customization options, Penguins-eggs introduces the concept of Wardrobe. With Wardrobe and its various components, such as costumes, you can easily organize and manage your customizations, samples, and more. This feature enables a streamlined and efficient workflow, allowing you to tailor your Linux system to your preferences.
|
|
224
|
-
|
|
225
|
-
8. Supporting Multiple Distributions
|
|
226
|
-
Eggs supporting multiple distributions and their derivatives
|
|
227
|
-
Supports: Alpine, Arch, Debian, Fedora, Devuan, Manjaro, Ubuntu,
|
|
228
|
-
and major derivatives like: Linuxmint, KDE neon, EndeavourOS, Garuda, etc. You can easily add more derivatives.
|
|
229
|
-
|
|
230
|
-
10. Supports Hardware Architectures
|
|
231
|
-
supports a wide range of hardware architectures.
|
|
232
|
-
Supports: i386, amd64 and arm64 architecture, from old PCs, and common PCs to single board computers like Raspberry Pi 4/5
|
|
233
|
-
|
|
234
|
-
11. Supports privacy and security
|
|
235
|
-
Safe: only use the original distro's packages, without any modification in your repository lists. Penguins Eggs Linux embarks on a steadfast commitment to user security and system integrity through its default practice of exclusively utilizing original distributions’ packages without any modifications in the repository lists. This resolute dedication to maintaining the pristine authenticity of packages reinforces Penguins Eggs’ fundamental ethos of safety and reliability, fostering an environment characterized by unwavering trust in the integrity of the software ecosystem.
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
## Wardrobe, Themes, and Addons
|
|
239
|
-
In April 2022, the `wardrobe` command was introduced to `eggs`. This addition serves as a comprehensive tool to assist and streamline the process of creating a customized version of Linux, starting from a command-line interface (CLI) system. I have embraced wardrobe for all my editions to enhance convenience, enabling me to better organize, consolidate, and manage my work effectively.
|
|
240
|
-
To add a unique touch to my customizations, I have assigned bird names to each edition. Except for the "naked" edition, there are various options available, including "Colibri," "eagle," "duck," "owl," and "chicks" under the bookworm and plastilinux distributions. [bookworm](https://sourceforge.net/projects/penguins-eggs/files/ISOS/debian/bookworm/) and [plastilinux](https://sourceforge.net/projects/penguins-eggs/files/ISOS/plastilinux/).Furthermore, under Waydroid on the eggs' SourceForge page, you can find "wagtail" and "warbier."
|
|
241
|
-
I have high hopes that people will take an interest in wardrobe and consider forking the main repository to incorporate their own customizations. By collaborating, we can achieve significant progress that would be challenging for a single developer to accomplish. If you would like to delve deeper into the wardrobe, I recommend reading the [Penguins Eggs' blog](https://penguins-eggs.net/blog/wardrobe-colibri-duck-eagle-and-owl/). post titled Wardrobe: Colibri, Duck, Eagle, and Owl, which provides further insights into its features and benefits.
|
|
242
|
-
Furthermore, addons, predominantly themes, have been organized under the vendor's folder in the penguin's wardrobe. I encourage utilizing your wardrobe for all your customization needs to maintain consistency and organization throughout your work.
|
|
243
|
-
|
|
244
|
-
> [!NOTE]
|
|
245
|
-
> For detailed instructions on using a wardrobe, please consult the wardrobe users' guide [wardrobe users' guide](https://penguins-eggs.net/docs/Tutorial/wardrobe-users-guide).
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
## System Cloning and Data Handling
|
|
249
|
-
When creating a live distribution of your system using eggs produce, you must decide how to handle user data. You have three primary approaches: Default (Clean), Direct Clone, and Encrypted Clone.
|
|
250
|
-
|
|
251
|
-
### 1. Default Mode (Clean System)
|
|
252
|
-
Command: `eggs produce`
|
|
253
|
-
|
|
254
|
-
This is the default mode. It completely removes all user data and personal settings from the live distribution.
|
|
255
|
-
|
|
256
|
-
Best for: Creating a distributable ISO to share with others or creating a clean "factory reset" image.
|
|
257
|
-
|
|
258
|
-
Privacy: Maximum. No private data remains in the live system.
|
|
259
|
-
|
|
260
|
-
### 2. Clone (Unencrypted)
|
|
261
|
-
Command: `eggs produce --clone`
|
|
262
|
-
|
|
263
|
-
This command creates an exact replica of your current system, saving both system files and user data directly into the ISO.
|
|
264
|
-
|
|
265
|
-
Behavior: If someone obtains this ISO, they can boot it and immediately access your files, browsing history, and settings without a password.
|
|
266
|
-
|
|
267
|
-
Best for: Personal backups where the physical media (USB/DVD) remains in your secure possession.
|
|
268
|
-
|
|
269
|
-
Privacy Warning: Low. Data is not encrypted. Do not share this ISO publicly if it contains sensitive information.
|
|
270
|
-
|
|
271
|
-
### 3. Encrypted Clone (Secure Backup)
|
|
272
|
-
Commands: `eggs produce --homecrypt` / `eggs produce --fullcrypt`
|
|
273
|
-
|
|
274
|
-
These options save your data within the ISO but protect it inside a LUKS (Linux Unified Key Setup) volume.
|
|
275
|
-
|
|
276
|
-
Behavior: Your user data is included but is not visible or accessible in the live system session. Even if a third party obtains the ISO, they cannot access the data without the LUKS passphrase.
|
|
277
|
-
|
|
278
|
-
Best for: Secure backups or transporting your environment across different machines.
|
|
279
|
-
|
|
280
|
-
> [NOTE] Availability and Scope
|
|
281
|
-
|
|
282
|
-
> eggs produce --homecrypt: Available for most distributions using either native penguins-eggs packages or the AppImage. It protects sensitive data under /home and system accounts.
|
|
283
|
-
|
|
284
|
-
> `eggs produce --fullcrypt`: Supported only on Debian Trixie and Devuan Excalibur, and exclusively when using native eggs packages. Unlike homecrypt, this option does not limit protection to /home, but encrypts the entire system.
|
|
285
|
-
|
|
286
|
-
| Command | Data Included? | Encryption | Visible on Live System? | Use Case |
|
|
287
|
-
| :--- | :--- | :--- | :--- | :--- |
|
|
288
|
-
| `eggs produce` | No | N/A | No | Public Distribution / Clean Install |
|
|
289
|
-
| `eggs produce --clone` | **Yes** | No | **Yes** | Personal Unsecured Backup |
|
|
290
|
-
| `eggs produce --homecrypt` | **Yes** (/home) | **Yes (LUKS)** | Yes | Secure Backup of User Data |
|
|
291
|
-
| `eggs produce --fullcrypt` | **Yes** (Full) | **Yes (LUKS)** | Yes | Maximum Security Backup (Debian/Devuan only) |
|
|
292
73
|
|
|
293
|
-
|
|
294
|
-
|
|
74
|
+
### Method 2: AppImage (Universal)
|
|
75
|
+
Download the latest AppImage from [Releases](https://github.com/pieroproietti/penguins-eggs/releases).
|
|
295
76
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
## Cuckoo
|
|
302
|
-
Just like the cuckoo bird lays its eggs in the nests of other birds, the Eggs project introduces a similar concept in the form of a self-configuring PXE service. This service allows you to boot and install your ISO on networked computers that are not originally configured for your specific ISO.
|
|
303
|
-
With the command `cuckoo` you can deploy a newly created ISO on an already installed system, or you can live to boot the ISO itself. This means that you can either install your ISO on existing systems or directly run the ISO without the need for a permanent installation.
|
|
304
|
-
|
|
305
|
-
> [!TIP]
|
|
306
|
-
> By leveraging the cuckoo command, the Eggs project provides a convenient method for deploying and testing your ISO on a variety of networked computers, expanding the possibilities for system installations and evaluations.
|
|
307
|
-
|
|
308
|
-
## Mom and Dad
|
|
309
|
-
I have introduced two helpful built-in assistants: Mom and Dad. Mom, based on the easybashgui [easybashgui](https://github.com/BashGui/easybashgui) script, serves as a comprehensive guide, providing explanations of various commands and documentation. This ensures that users have access to clear instructions and information as they navigate through Eggs' functionalities.
|
|
310
|
-
On the other hand, Dad serves as a convenient shortcut for properly configuring Eggs. By simply typing ```sudo eggs dad``` and following the straightforward instructions, users can quickly configure Eggs to meet their specific requirements. For even faster configuration, utilizing the command ```sudo eggs dad -d``` allows for a complete reset of the configuration, loading default settings, and deleting any created ISOs.
|
|
311
|
-
Once Eggs is properly configured, generating your live environment becomes a breeze. Just type ```sudo eggs produce``` to effortlessly generate your live ISO. With this streamlined workflow, Eggs empowers users to efficiently create customized live environments tailored to their needs. Whether you rely on Mom's guidance or Dad's configuration shortcuts, Eggs offers a user-friendly experience for ISO creation and customization.
|
|
312
|
-
|
|
313
|
-
## Yolk
|
|
314
|
-
Yolk is a local repository that is bundled within the LiveCD of Eggs. This repository contains a carefully curated selection of essential packages required for installation. Yolk serves as a valuable resource, as it allows you to install your system confidently, even without an active internet connection.
|
|
315
|
-
By including Yolk in the LiveCD, Eggs ensures that all the necessary packages are readily available during the installation process. This eliminates the dependency on an internet connection, making it possible to install your system in offline environments or situations where internet access is limited or unavailable.
|
|
316
|
-
Yolk acts as a safety net, providing the minimum set of indispensable packages required for a successful installation. This guarantees a smooth and reliable installation experience, regardless of the availability of an internet connection. With Yolk by your side, you can confidently proceed with system installations, knowing that the essential packages are at your disposal.
|
|
317
|
-
|
|
318
|
-
# Packages
|
|
319
|
-
Eggs offers support for a variety of packages. Specifically, for Debian, Devuan, and Ubuntu, Eggs utilizes .deb packages that are compatible with both amd_64 and i386 architectures. This ensures seamless integration with these distributions, allowing users to easily install and utilize Eggs' features.
|
|
320
|
-
On the other hand, Arch and ManjaroLinux have their own packaging system known as PKGBUILDs. Eggs is designed to work harmoniously with these distributions, leveraging the specific packaging structure provided by PKGBUILDs. This ensures that Eggs can seamlessly integrate into Arch and ManjaroLinux environments, providing users with a consistent and optimized experience.
|
|
321
|
-
By adapting to the packaging systems used by different distributions, Eggs ensures compatibility and ease of use across a wide range of Linux environments. Whether you're using Debian, Devuan, Ubuntu, Arch, or ManjaroLinux, Eggs is equipped to support your preferred distribution, enabling you to make the most of its features and functionalities.
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
## Debian families
|
|
325
|
-
Eggs caters to the Debian family of distributions, offering a seamless installation experience through deb packages.
|
|
326
|
-
|
|
327
|
-
These deb packages are available for multiple architectures, including amd64, i386, and arm64.
|
|
328
|
-
|
|
329
|
-
The availability of `penguins-eggs` as a deb package simplifies the installation process for users of Debian-based distributions. Whether you are running a 64-bit (amd64) or 32-bit (i386) architecture, or even an arm64 architecture, Eggs has you covered. This ensures that users across a wide range of Debian-based systems can easily download, install, and utilize Eggs' features.
|
|
330
|
-
|
|
331
|
-
By providing deb packages for various architectures, Eggs promotes accessibility and inclusivity, allowing users on different hardware platforms to benefit from its functionality. Whether you're using a traditional desktop computer or an ARM-based device, Eggs ensures compatibility and a consistent experience across the Debian family of distributions.
|
|
332
|
-
|
|
333
|
-
The packages can be installed on Debian, Devuan, or Ubuntu-based distributions without the need to worry about the specific version. Whether you're using Buster, Bullseye, Bookworm, Trixie, Chimaera, Daedalus, Focal, Jammy or Noble, `eggs` is reported to work across these versions. However, it's important to ensure compatibility with the respective processor architecture.
|
|
334
|
-
|
|
335
|
-
Ubuntu bionic cannot install nodejs >16, so I packaged a specific version for bionic, still largely used.
|
|
336
|
-
|
|
337
|
-
The packages `penguins-eggs` provided include standard scripts for `preinst`, `postinst`, `prerm`, and `postrm`. These scripts play a crucial role in the installation and management of the packages. The preinst script is executed before the package is installed, allowing for any necessary preparations or configurations. The postinst script is executed after the package installation, enabling additional setup or customization. Similarly, the prerm script is executed before the package is removed, while the postrm script is executed after the package removal.
|
|
338
|
-
|
|
339
|
-
In addition to the scripts, `penguins-eggs` package also include man pages, bash-completion and other.
|
|
340
|
-
|
|
341
|
-
man pages serve as documentation for the installed packages, providing detailed information on their usage, configuration options, and other relevant details. The inclusion of man pages ensures that users have access to comprehensive documentation, enabling them to effectively utilize and manage the Eggs packages.
|
|
342
|
-
|
|
343
|
-
Overall, Eggs' packages offer a comprehensive and user-friendly experience, with standard scripts and detailed documentation, making installation and management hassle-free on Debian, Devuan, and Ubuntu-based distributions.
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
### Install eggs
|
|
347
|
-
There are multiple methods available, lately I prefer `fresh-eggs` way, working for all the supported distros: Arch, Debian, Devuan, Manjaro, Ubuntu and derivatives.:
|
|
348
|
-
|
|
349
|
-
```
|
|
350
|
-
git clone https://github.com/pieroproietti/fresh-eggs
|
|
351
|
-
cd fresh-eggs
|
|
352
|
-
sudo ./fresh-eggs.sh
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
`fresh-eggs` on Debian families add automatically the `penguins-eggs-ppa` repository and, when need, add `nodesource` repository. On Arch, `chaotic-aur` repo will be added.
|
|
356
|
-
|
|
357
|
-
This let to install, update, remove `penguins-eggs` like a native package.
|
|
358
|
-
|
|
359
|
-
#### Debian families
|
|
360
|
-
`penguins-eggs-25.x.x` depend on `nodejs >18`, not directly available in all the distros. We can rely on [nodesource](https://github.com/nodesource/distributions?tab=readme-ov-file#debian-and-ubuntu-based-distributions) adding them.
|
|
361
|
-
|
|
362
|
-
##### Download and install penguins-eggs packages
|
|
363
|
-
To install Eggs, the simplest method is to download the package `penguins-eggs` from the project's SourceForge page [package eggs](https://penguins-eggs.net/basket/index.php?p=packages%2Fdebs) and install it on your system.
|
|
364
|
-
|
|
365
|
-
After downloading the appropriate package, based on your system's architecture, you can proceed with the installation. If you are using an amd64 system, run the following command in the terminal:
|
|
366
|
-
|
|
367
|
-
```sudo dpkg -i penguins_eggs_25.x.x-1_amd64.deb```
|
|
368
|
-
|
|
369
|
-
For i386 systems, the command would be:
|
|
370
|
-
```sudo dpkg -i penguins_eggs_25.x.x-1_i386.deb```
|
|
371
|
-
|
|
372
|
-
Executing these commands will initiate the installation process and install Eggs on your system.
|
|
373
|
-
Once Eggs is successfully installed, you have the option to enhance its functionality by adding the penguins-eggs-ppa repository. This repository provides additional tools and features for Eggs. To add the penguins-eggs-ppa repository, run the following command in the terminal:
|
|
374
|
-
```sudo eggs tools ppa --install```
|
|
375
|
-
This command will add the penguins-eggs-ppa repository to your system, allowing you to access updated versions of Eggs and additional tools provided by the repository.
|
|
376
|
-
By following these steps, you can easily install Eggs, add the penguins-eggs-ppa repository, [penguins-eggs-ppa](https://pieroproietti.github.io/penguins-eggs-ppa), and unlock further capabilities and enhancements for your Eggs installation.
|
|
377
|
-
|
|
378
|
-
##### Using penguins-eggs-ppa
|
|
379
|
-
For derivatives of Debian, Devuan, and Ubuntu, such as Linuxmint, LMDE, etc., `fresh-eggs` will typically work as well. However, if needed, you can manually add the penguins-eggs-ppa repository by copying and pasting the following two lines into a terminal:
|
|
380
|
-
|
|
381
|
-
```
|
|
382
|
-
curl -fsSL https://pieroproietti.github.io/penguins-eggs-ppa/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/penguins-eggs.gpg
|
|
383
|
-
echo "deb [arch=$(dpkg --print-architecture)] https://pieroproietti.github.io/penguins-eggs-ppa ./" | sudo tee /etc/apt/sources.list.d/penguins-eggs.list > /dev/null
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
After adding the repository, update your package repositories and install Eggs by running the following command:
|
|
77
|
+
**Prerequisites:** Depending on your distro, you may need FUSE:
|
|
78
|
+
* **Debian/Ubuntu:** `sudo apt-get install fuse libfuse2`
|
|
79
|
+
* **Arch:** `sudo pacman -S fuse2`
|
|
80
|
+
* **Fedora:** `sudo dnf install fuse fuse-libs`
|
|
387
81
|
|
|
82
|
+
**Run:**
|
|
83
|
+
```bash
|
|
84
|
+
chmod +x penguins-eggs-*.AppImage
|
|
85
|
+
sudo ./penguins-eggs-*.AppImage
|
|
388
86
|
```
|
|
389
|
-
|
|
390
|
-
```
|
|
391
|
-
|
|
392
|
-
Executing these commands will update your package sources and install Eggs on your system.
|
|
87
|
+
*The AppImage will automatically configure itself as `/usr/bin/eggs`.*
|
|
393
88
|
|
|
89
|
+
### Method 3: Native Packages
|
|
90
|
+
If you prefer native package managers, specific repositories are available.
|
|
394
91
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
> [!TIP]
|
|
402
|
-
> This command will check for updates for all installed packages, including Eggs, and upgrade them to their latest versions if available.
|
|
92
|
+
| Family | Instructions |
|
|
93
|
+
| :--- | :--- |
|
|
94
|
+
| **Debian/Ubuntu** | [Install Guide](https://github.com/pieroproietti/penguins-eggs/blob/master/DOCS/INSTALL-DEBIAN-DEVUAN-UBUNTU.md) / [PPA Info](https://pieroproietti.github.io/penguins-eggs-ppa) |
|
|
95
|
+
| **Arch/Manjaro** | Available in **AUR** and **Manjaro Community**. Use `yay penguins-eggs` or `pamac install penguins-eggs`. |
|
|
96
|
+
| **Fedora/RHEL** | [Fedora Guide](https://github.com/pieroproietti/penguins-eggs/blob/master/DOCS/INSTALL-FEDORA.md) / [Enterprise Linux](https://github.com/pieroproietti/penguins-eggs/blob/master/DOCS/INSTALL-ENTERPRISE-LINUX.md) |
|
|
97
|
+
| **Alpine** | Available in the [penguins-alpine](https://github.com/pieroproietti/penguins-alpine) repo. |
|
|
403
98
|
|
|
404
|
-
|
|
405
|
-
> On the other hand, if you have not added the `penguins-eggs-ppa` repository, you can manually upgrade Eggs by downloading the new version from the SourceForge page [here](https://penguins-eggs.net/basket/index.php?p=packages%2Fdebs). Once you have downloaded the appropriate package for your system architecture, follow these steps:
|
|
99
|
+
---
|
|
406
100
|
|
|
407
|
-
|
|
408
|
-
```
|
|
409
|
-
sudo gdebi penguins_eggs_25.x.x-1_amd64.deb
|
|
410
|
-
```
|
|
411
|
-
or for i386 systems:
|
|
412
|
-
```
|
|
413
|
-
sudo dpkg -i penguins_eggs_25.x.x-1_i386.deb
|
|
414
|
-
```
|
|
415
|
-
|
|
416
|
-
2. In case of any missing dependencies, you can resolve them by running the following command:
|
|
417
|
-
```
|
|
418
|
-
sudo apt install -f
|
|
419
|
-
```
|
|
420
|
-
This will automatically install any required dependencies for Eggs.
|
|
421
|
-
> [!TIP]
|
|
422
|
-
> By following these instructions, you can upgrade Eggs either through the penguins-eggs-ppa repository or by manually downloading and installing the latest version from the SourceForge page. Ensure that you choose the appropriate method based on your current setup to keep Eggs up to date with the latest enhancements and bug fixes.
|
|
423
|
-
|
|
424
|
-
## Arch families
|
|
425
|
-
Eggs has been available in the Arch User Repository (AUR) for quite some time, thanks to the support of the Arch Linux community. Although I was initially unaware of its presence, I am now directly maintaining the AUR version of [penguins-eggs](https://aur.archlinux.org/packages/penguins-eggs). Additionally, I am actively participating in the Manjaro Community Repository, specifically for the [penguins-eggs](https://gitlab.manjaro.org/packages/community/penguins-eggs) package.
|
|
426
|
-
|
|
427
|
-
Being present in the AUR signifies that Eggs is available for Arch Linux users to easily install and manage through their package managers. The AUR is a community-driven repository that allows users to contribute and maintain packages that are not officially supported by Arch Linux. By maintaining the AUR version of penguins-eggs, I can ensure that Arch Linux users have access to the latest updates and improvements for Eggs.
|
|
428
|
-
|
|
429
|
-
> [!TIP]
|
|
430
|
-
> Furthermore, my participation in the Manjaro Community Repository demonstrates my commitment to providing support for Eggs on the Manjaro distribution. Manjaro is a popular Arch-based Linux distribution known for its user-friendly approach and community-driven development. By actively contributing to the Manjaro Community Repository, I can ensure that Eggs remains compatible and well-integrated with the Manjaro ecosystem.
|
|
431
|
-
|
|
432
|
-
> [!TIP]
|
|
433
|
-
> In summary, Eggs is available in the AUR and is directly maintained by me. Additionally, I am actively involved in the Manjaro Community Repository to provide support for Eggs on the Manjaro distribution. This ensures that users of Arch Linux and its derivatives, such as Manjaro, can easily access and benefit from using Eggs in their systems.
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
### Arch
|
|
437
|
-
To install penguins-eggs on Arch Linux, there are multiple methods available. One option is to install it directly from the Arch User Repository (AUR) by adding the `chaotic-AUR` repository. Here's how you can do it:
|
|
438
|
-
|
|
439
|
-
1. Add the Chaotic-AUR repository to your system. You can find the repository at [https://aur.chaotic.cx/](https://aur.chaotic.cx/).
|
|
440
|
-
|
|
441
|
-
2. After adding the Chaotic-AUR repository, open a terminal and run the following command to install penguins-eggs using `pacman`:
|
|
442
|
-
```
|
|
443
|
-
sudo pacman -Sy penguins-eggs
|
|
444
|
-
```
|
|
445
|
-
This command will synchronize the package databases and install penguins-eggs on your system.
|
|
446
|
-
|
|
447
|
-
Alternatively, you can use a utility called `fresh-eggs`. This script will add the AUR repository and install penguins-eggs on your system.
|
|
448
|
-
|
|
449
|
-
It's possible too to use the popular AUR helper tool called `yay`. Simply run the following command:
|
|
450
|
-
```
|
|
451
|
-
yay penguins-eggs
|
|
452
|
-
```
|
|
453
|
-
`yay` will handle the installation process for you, including any necessary dependencies.
|
|
454
|
-
|
|
455
|
-
If you prefer to build from source, you can download the sources from the AUR repository. Here are the steps:
|
|
456
|
-
|
|
457
|
-
1. Clone the `penguins-eggs` repository from the AUR:
|
|
458
|
-
```
|
|
459
|
-
git clone https://aur.archlinux.org/packages/penguins-eggs
|
|
460
|
-
```
|
|
101
|
+
# Usage
|
|
461
102
|
|
|
462
|
-
|
|
463
|
-
```
|
|
464
|
-
cd penguins-eggs
|
|
465
|
-
```
|
|
103
|
+
Once installed, simply run `eggs` to see the available commands.
|
|
466
104
|
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
105
|
+
### Basic: Create a Clean ISO
|
|
106
|
+
This creates a distributable live ISO *without* user data. Perfect for sharing your custom distro.
|
|
107
|
+
```bash
|
|
108
|
+
sudo eggs produce
|
|
470
109
|
```
|
|
471
|
-
> [!TIP]
|
|
472
|
-
> This command will compile the source code, create a package, and install it on your system.
|
|
473
|
-
These methods provide various ways to install penguins-eggs on Arch Linux, allowing you to choose the one that suits your preferences and workflow.
|
|
474
110
|
|
|
111
|
+
### Cloning: Backup Your System
|
|
112
|
+
To keep your user data, configurations, and files:
|
|
475
113
|
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
This command will fetch the package from the Manjaro community repository and install it on your system.
|
|
114
|
+
| Goal | Command | Description |
|
|
115
|
+
| :--- | :--- | :--- |
|
|
116
|
+
| **Standard Clone** | `eggs produce --clone` | Copies user data unencrypted. **Do not share publicly.** |
|
|
117
|
+
| **Home Encryption** | `eggs produce --homecrypt` | Encrypts `/home` data inside the ISO using LUKS. |
|
|
118
|
+
| **Full Encryption** | `eggs produce --fullcrypt` | Encrypts the entire system (Debian/Devuan only). |
|
|
482
119
|
|
|
483
|
-
|
|
120
|
+
### Compression Options
|
|
121
|
+
* `--pendrive`: Optimized for USBs (zstd level 15).
|
|
122
|
+
* `--standard`: Uses `xz` compression.
|
|
123
|
+
* `--max`: Maximum compression (`xz -Xbcj`).
|
|
484
124
|
|
|
485
|
-
|
|
486
|
-
```
|
|
487
|
-
git clone https://gitlab.manjaro.org/packages/community/penguins-eggs/
|
|
488
|
-
```
|
|
125
|
+
---
|
|
489
126
|
|
|
490
|
-
|
|
491
|
-
```
|
|
492
|
-
cd penguins-eggs
|
|
493
|
-
```
|
|
127
|
+
# The Aviary: Tools & Terminology
|
|
494
128
|
|
|
495
|
-
|
|
496
|
-
```
|
|
497
|
-
makepkg -srcCi
|
|
498
|
-
```
|
|
499
|
-
> [!TIP]
|
|
500
|
-
> This command will compile the source code, create a package, and install it on your system.
|
|
129
|
+
`penguins-eggs` uses a bird-themed naming convention for its internal tools:
|
|
501
130
|
|
|
502
|
-
|
|
131
|
+
* **Wardrobe:** A tool to organize customizations, scripts, and themes. It allows you to switch between configurations (e.g., from a bare CLI system to a full GUI). See [penguins-wardrobe](https://github.com/pieroproietti/penguins-wardrobe).
|
|
132
|
+
* **Cuckoo:** A PXE boot server feature. It allows you to boot your generated ISO on other computers over the local network without needing a USB drive.
|
|
133
|
+
* **Yolk:** A local repository bundled inside the ISO containing essential packages, allowing offline installation.
|
|
134
|
+
* **Krill:** The internal CLI/TUI system installer. Essential for server installs or when no GUI is available.
|
|
135
|
+
* **Calamares:** The industry-standard GUI installer, automatically configured by `eggs` for desktop environments.
|
|
136
|
+
* **Mom & Dad:**
|
|
137
|
+
* `eggs mom`: Interactive help and documentation assistant.
|
|
138
|
+
* `eggs dad`: Configuration wizard. Run `sudo eggs dad -d` to reset configuration.
|
|
503
139
|
|
|
504
|
-
|
|
505
|
-
> Whether you choose to install penguins-eggs using `pamac` or by manually building it from source, you can enjoy the benefits of this package on your Manjaro Linux system.
|
|
140
|
+
---
|
|
506
141
|
|
|
142
|
+
# Supported Distributions
|
|
507
143
|
|
|
508
|
-
|
|
509
|
-
Once the package has been installed, you can have the new ```eggs``` command. Typing ```eggs``` will get the list of commands, and typing ```eggs produce --help``` will get the eggs produce command help screen. You can also use the command autocomplete with the TABS key, you will get the possible choices for each command. In addition, there is a man page, so by typing ```man eggs``` you will get that help as well. You can also use the ```eggs mom``` command that interactively allows you to consult the help for all commands and online documentation.
|
|
144
|
+
`eggs` is designed to be distro-agnostic. It respects the original package manager and repository lists.
|
|
510
145
|
|
|
511
|
-
|
|
512
|
-
|
|
146
|
+
* **Debian Family:** Debian, Devuan, Ubuntu, Linux Mint, Kali, KDE Neon, Pop!_OS.
|
|
147
|
+
* **Arch Family:** Arch Linux, Manjaro, Biglinux, EndeavourOS, Garuda.
|
|
148
|
+
* **RPM Family:** Fedora, AlmaLinux, Rocky Linux, OpenSUSE.
|
|
149
|
+
* **Others:** Alpine Linux.
|
|
513
150
|
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
sudo eggs produce
|
|
517
|
-
```
|
|
518
|
-
This command will generate a live system without any user data included.
|
|
151
|
+
> [!NOTE]
|
|
152
|
+
> For a complete and updated list, please consult [SUPPORTED-DISTROS](https://github.com/pieroproietti/fresh-eggs/blob/main/SUPPORTED-DISTROS.md).
|
|
519
153
|
|
|
520
|
-
|
|
521
|
-
```
|
|
522
|
-
sudo eggs produce --clone
|
|
523
|
-
```
|
|
524
|
-
This command will produce a live system that includes user data without encryption.
|
|
154
|
+
---
|
|
525
155
|
|
|
526
|
-
|
|
527
|
-
```
|
|
528
|
-
sudo eggs produce --cryptedclone
|
|
529
|
-
```
|
|
530
|
-
This command will generate a live system with encrypted user data.
|
|
156
|
+
# Links & Documentation
|
|
531
157
|
|
|
532
|
-
|
|
533
|
-
|
|
158
|
+
* **Official Website:** [penguins-eggs.net](https://penguins-eggs.net)
|
|
159
|
+
* **Blog & News:** [The Triple Somersault](https://penguins-eggs.net/blog/triple-somersault)
|
|
160
|
+
* **SourceForge ISOs:** [Download Examples](https://sourceforge.net/projects/penguins-eggs/files/ISOS/)
|
|
161
|
+
* **User Guide:** [Wardrobe User Guide](https://penguins-eggs.net/docs/Tutorial/wardrobe-users-guide)
|
|
534
162
|
|
|
535
|
-
```
|
|
536
|
-
sudo eggs produce
|
|
537
|
-
sudo eggs produce --pendrive
|
|
538
|
-
sudo eggs produce --standard
|
|
539
|
-
sudo eggs produce --max
|
|
540
|
-
```
|
|
541
|
-
> [!TIP]
|
|
542
|
-
> This command will apply differents compression to the ISO file, resulting in a smaller file size or in a longer process. Consult [Penguins Eggs' official guide](https://penguins-eggs.net/docs/Tutorial/eggs-users-guide) for more detailed informations.
|
|
543
163
|
# Commands
|
|
544
164
|
<!-- commands -->
|
|
545
165
|
* [`eggs adapt`](#eggs-adapt)
|
|
@@ -592,7 +212,7 @@ EXAMPLES
|
|
|
592
212
|
$ eggs adapt
|
|
593
213
|
```
|
|
594
214
|
|
|
595
|
-
_See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
215
|
+
_See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/adapt.ts)_
|
|
596
216
|
|
|
597
217
|
## `eggs autocomplete [SHELL]`
|
|
598
218
|
|
|
@@ -656,7 +276,7 @@ EXAMPLES
|
|
|
656
276
|
sudo eggs calamares --remove
|
|
657
277
|
```
|
|
658
278
|
|
|
659
|
-
_See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
279
|
+
_See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/calamares.ts)_
|
|
660
280
|
|
|
661
281
|
## `eggs config`
|
|
662
282
|
|
|
@@ -683,7 +303,7 @@ EXAMPLES
|
|
|
683
303
|
sudo eggs config --clean --nointeractive
|
|
684
304
|
```
|
|
685
305
|
|
|
686
|
-
_See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
306
|
+
_See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/config.ts)_
|
|
687
307
|
|
|
688
308
|
## `eggs cuckoo`
|
|
689
309
|
|
|
@@ -704,7 +324,7 @@ EXAMPLES
|
|
|
704
324
|
sudo eggs cuckoo
|
|
705
325
|
```
|
|
706
326
|
|
|
707
|
-
_See code: [src/commands/cuckoo.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
327
|
+
_See code: [src/commands/cuckoo.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/cuckoo.ts)_
|
|
708
328
|
|
|
709
329
|
## `eggs dad`
|
|
710
330
|
|
|
@@ -733,7 +353,7 @@ EXAMPLES
|
|
|
733
353
|
sudo dad --default
|
|
734
354
|
```
|
|
735
355
|
|
|
736
|
-
_See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
356
|
+
_See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/dad.ts)_
|
|
737
357
|
|
|
738
358
|
## `eggs export appimage`
|
|
739
359
|
|
|
@@ -759,7 +379,7 @@ EXAMPLES
|
|
|
759
379
|
$ eggs export pkg --all
|
|
760
380
|
```
|
|
761
381
|
|
|
762
|
-
_See code: [src/commands/export/appimage.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
382
|
+
_See code: [src/commands/export/appimage.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/export/appimage.ts)_
|
|
763
383
|
|
|
764
384
|
## `eggs export iso`
|
|
765
385
|
|
|
@@ -784,7 +404,7 @@ EXAMPLES
|
|
|
784
404
|
$ eggs export iso --clean
|
|
785
405
|
```
|
|
786
406
|
|
|
787
|
-
_See code: [src/commands/export/iso.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
407
|
+
_See code: [src/commands/export/iso.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/export/iso.ts)_
|
|
788
408
|
|
|
789
409
|
## `eggs export pkg`
|
|
790
410
|
|
|
@@ -811,7 +431,7 @@ EXAMPLES
|
|
|
811
431
|
$ eggs export pkg --all
|
|
812
432
|
```
|
|
813
433
|
|
|
814
|
-
_See code: [src/commands/export/pkg.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
434
|
+
_See code: [src/commands/export/pkg.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/export/pkg.ts)_
|
|
815
435
|
|
|
816
436
|
## `eggs export tarballs`
|
|
817
437
|
|
|
@@ -835,7 +455,7 @@ EXAMPLES
|
|
|
835
455
|
$ eggs export tarballs --clean
|
|
836
456
|
```
|
|
837
457
|
|
|
838
|
-
_See code: [src/commands/export/tarballs.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
458
|
+
_See code: [src/commands/export/tarballs.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/export/tarballs.ts)_
|
|
839
459
|
|
|
840
460
|
## `eggs help [COMMAND]`
|
|
841
461
|
|
|
@@ -878,7 +498,7 @@ EXAMPLES
|
|
|
878
498
|
sudo eggs kill
|
|
879
499
|
```
|
|
880
500
|
|
|
881
|
-
_See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
501
|
+
_See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/kill.ts)_
|
|
882
502
|
|
|
883
503
|
## `eggs krill`
|
|
884
504
|
|
|
@@ -919,7 +539,7 @@ EXAMPLES
|
|
|
919
539
|
sudo eggs install --chroot
|
|
920
540
|
```
|
|
921
541
|
|
|
922
|
-
_See code: [src/commands/krill.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
542
|
+
_See code: [src/commands/krill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/krill.ts)_
|
|
923
543
|
|
|
924
544
|
## `eggs love`
|
|
925
545
|
|
|
@@ -945,7 +565,7 @@ EXAMPLES
|
|
|
945
565
|
$ eggs auto
|
|
946
566
|
```
|
|
947
567
|
|
|
948
|
-
_See code: [src/commands/love.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
568
|
+
_See code: [src/commands/love.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/love.ts)_
|
|
949
569
|
|
|
950
570
|
## `eggs mom`
|
|
951
571
|
|
|
@@ -965,7 +585,7 @@ EXAMPLES
|
|
|
965
585
|
$ eggs mom
|
|
966
586
|
```
|
|
967
587
|
|
|
968
|
-
_See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
588
|
+
_See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/mom.ts)_
|
|
969
589
|
|
|
970
590
|
## `eggs produce`
|
|
971
591
|
|
|
@@ -1018,7 +638,7 @@ EXAMPLES
|
|
|
1018
638
|
sudo eggs produce --basename=colibri
|
|
1019
639
|
```
|
|
1020
640
|
|
|
1021
|
-
_See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
641
|
+
_See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/produce.ts)_
|
|
1022
642
|
|
|
1023
643
|
## `eggs setup install`
|
|
1024
644
|
|
|
@@ -1039,7 +659,7 @@ EXAMPLES
|
|
|
1039
659
|
sudo eggs setup purge # purge all configurations, autocomplete, man, etc installed from penguins-eggs AppImage
|
|
1040
660
|
```
|
|
1041
661
|
|
|
1042
|
-
_See code: [src/commands/setup/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
662
|
+
_See code: [src/commands/setup/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/setup/install.ts)_
|
|
1043
663
|
|
|
1044
664
|
## `eggs setup purge`
|
|
1045
665
|
|
|
@@ -1060,7 +680,7 @@ EXAMPLES
|
|
|
1060
680
|
sudo eggs setup purge # purge all configurations, autocomplete, man, etc installed from penguins-eggs AppImage
|
|
1061
681
|
```
|
|
1062
682
|
|
|
1063
|
-
_See code: [src/commands/setup/purge.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
683
|
+
_See code: [src/commands/setup/purge.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/setup/purge.ts)_
|
|
1064
684
|
|
|
1065
685
|
## `eggs status`
|
|
1066
686
|
|
|
@@ -1081,7 +701,7 @@ EXAMPLES
|
|
|
1081
701
|
$ eggs status
|
|
1082
702
|
```
|
|
1083
703
|
|
|
1084
|
-
_See code: [src/commands/status.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
704
|
+
_See code: [src/commands/status.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/status.ts)_
|
|
1085
705
|
|
|
1086
706
|
## `eggs tools clean`
|
|
1087
707
|
|
|
@@ -1103,7 +723,7 @@ EXAMPLES
|
|
|
1103
723
|
sudo eggs tools clean
|
|
1104
724
|
```
|
|
1105
725
|
|
|
1106
|
-
_See code: [src/commands/tools/clean.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
726
|
+
_See code: [src/commands/tools/clean.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/tools/clean.ts)_
|
|
1107
727
|
|
|
1108
728
|
## `eggs tools repo`
|
|
1109
729
|
|
|
@@ -1129,7 +749,7 @@ EXAMPLES
|
|
|
1129
749
|
sudo eggs tools repo --remove
|
|
1130
750
|
```
|
|
1131
751
|
|
|
1132
|
-
_See code: [src/commands/tools/repo.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
752
|
+
_See code: [src/commands/tools/repo.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/tools/repo.ts)_
|
|
1133
753
|
|
|
1134
754
|
## `eggs tools skel`
|
|
1135
755
|
|
|
@@ -1153,7 +773,7 @@ EXAMPLES
|
|
|
1153
773
|
sudo eggs tools skel --user user-to-be-copied
|
|
1154
774
|
```
|
|
1155
775
|
|
|
1156
|
-
_See code: [src/commands/tools/skel.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
776
|
+
_See code: [src/commands/tools/skel.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/tools/skel.ts)_
|
|
1157
777
|
|
|
1158
778
|
## `eggs tools stat`
|
|
1159
779
|
|
|
@@ -1179,7 +799,7 @@ EXAMPLES
|
|
|
1179
799
|
$ eggs tools stat --year
|
|
1180
800
|
```
|
|
1181
801
|
|
|
1182
|
-
_See code: [src/commands/tools/stat.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
802
|
+
_See code: [src/commands/tools/stat.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/tools/stat.ts)_
|
|
1183
803
|
|
|
1184
804
|
## `eggs tools yolk`
|
|
1185
805
|
|
|
@@ -1200,7 +820,7 @@ EXAMPLES
|
|
|
1200
820
|
sudo eggs tools yolk
|
|
1201
821
|
```
|
|
1202
822
|
|
|
1203
|
-
_See code: [src/commands/tools/yolk.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
823
|
+
_See code: [src/commands/tools/yolk.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/tools/yolk.ts)_
|
|
1204
824
|
|
|
1205
825
|
## `eggs update`
|
|
1206
826
|
|
|
@@ -1221,7 +841,7 @@ EXAMPLES
|
|
|
1221
841
|
$ eggs update
|
|
1222
842
|
```
|
|
1223
843
|
|
|
1224
|
-
_See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
844
|
+
_See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/update.ts)_
|
|
1225
845
|
|
|
1226
846
|
## `eggs version`
|
|
1227
847
|
|
|
@@ -1267,7 +887,7 @@ EXAMPLES
|
|
|
1267
887
|
$ eggs wardrobe get your-wardrobe
|
|
1268
888
|
```
|
|
1269
889
|
|
|
1270
|
-
_See code: [src/commands/wardrobe/get.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
890
|
+
_See code: [src/commands/wardrobe/get.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/wardrobe/get.ts)_
|
|
1271
891
|
|
|
1272
892
|
## `eggs wardrobe list [REPO]`
|
|
1273
893
|
|
|
@@ -1296,7 +916,7 @@ EXAMPLES
|
|
|
1296
916
|
$ eggs wardrobe list --distro arch
|
|
1297
917
|
```
|
|
1298
918
|
|
|
1299
|
-
_See code: [src/commands/wardrobe/list.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
919
|
+
_See code: [src/commands/wardrobe/list.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/wardrobe/list.ts)_
|
|
1300
920
|
|
|
1301
921
|
## `eggs wardrobe show [REPO]`
|
|
1302
922
|
|
|
@@ -1326,7 +946,7 @@ EXAMPLES
|
|
|
1326
946
|
$ eggs wardrobe show accessories/
|
|
1327
947
|
```
|
|
1328
948
|
|
|
1329
|
-
_See code: [src/commands/wardrobe/show.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
949
|
+
_See code: [src/commands/wardrobe/show.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/wardrobe/show.ts)_
|
|
1330
950
|
|
|
1331
951
|
## `eggs wardrobe wear [REPO]`
|
|
1332
952
|
|
|
@@ -1357,7 +977,7 @@ EXAMPLES
|
|
|
1357
977
|
sudo eggs wardrobe wear wagtail/waydroid
|
|
1358
978
|
```
|
|
1359
979
|
|
|
1360
|
-
_See code: [src/commands/wardrobe/wear.ts](https://github.com/pieroproietti/penguins-eggs/blob/
|
|
980
|
+
_See code: [src/commands/wardrobe/wear.ts](https://github.com/pieroproietti/penguins-eggs/blob/v26.1.3/src/commands/wardrobe/wear.ts)_
|
|
1361
981
|
<!-- commandsstop -->
|
|
1362
982
|
|
|
1363
983
|
# GUI
|