https://github.com/n0tfond/script
A little script for installation of package, avaible on Debian and Arch for the moment
https://github.com/n0tfond/script
archlinux debian installer script utilities utils
Last synced: 4 days ago
JSON representation
A little script for installation of package, avaible on Debian and Arch for the moment
- Host: GitHub
- URL: https://github.com/n0tfond/script
- Owner: N0tFond
- License: mit
- Created: 2025-05-02T02:14:01.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-07-01T21:53:52.000Z (7 months ago)
- Last Synced: 2025-07-27T19:12:59.900Z (6 months ago)
- Topics: archlinux, debian, installer, script, utilities, utils
- Language: Shell
- Homepage:
- Size: 23.4 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π Universal Linux Installer
A universal and optimized installation script for Linux distributions, supporting a wide range of distribution families with automatic detection.
[Version en franΓ§ais dans LISEZMOI.md](./LISEZMOI.md)
## β¨ Features
- π **Automatic detection** of Linux distribution
- π¦ **Multi-distribution support** with specialized scripts
- π― **Modular installation** with interactive package selection
- π οΈ **Optimized configuration** for each package manager
- π **Progress bars** and detailed logging
- π§ **Complete development environment**
- π **ZSH configuration** with Oh My Zsh
- π **Complete logging** for debugging
- π§Ή **Automatic system cleanup**
## ποΈ Project Structure
```
βββ install.sh # Main script with auto detection
βββ common/
β βββ functions.sh # Shared common functions
βββ distributions/
βββ debian/
β βββ install.sh # Ubuntu, Debian, Mint, Elementary, Pop!_OS, Kali
βββ arch/
β βββ install.sh # Arch, Manjaro, EndeavourOS, ArcoLinux, Garuda
βββ redhat/
β βββ install.sh # Fedora, CentOS, RHEL, Rocky, AlmaLinux, OpenSUSE
βββ gentoo/
β βββ install.sh # Gentoo Linux
βββ alpine/
β βββ install.sh # Alpine Linux
βββ void/
β βββ install.sh # Void Linux
βββ nixos/
βββ install.sh # NixOS
```
## π§ Supported Distributions
### Debian Family
- **Ubuntu** (all versions)
- **Debian** (stable, testing, unstable)
- **Linux Mint**
- **Elementary OS**
- **Pop!\_OS**
- **Kali Linux**
- **Parrot Security OS**
### Arch Family
- **Arch Linux**
- **Manjaro**
- **EndeavourOS**
- **ArcoLinux**
- **Garuda Linux**
- **Artix Linux**
### Red Hat Family
- **Fedora**
- **CentOS**
- **Red Hat Enterprise Linux (RHEL)**
- **Rocky Linux**
- **AlmaLinux**
- **OpenSUSE**
### Other Distributions
- **Gentoo Linux** - Source-based compilation
- **Alpine Linux** - Lightweight musl-based distribution
- **Void Linux** - Rolling release with runit
- **NixOS** - Declarative configuration
## π Quick Installation
### Simple Usage
```bash
# Clone the repository
git clone https://github.com/N0tFond/Script.git
cd Script
# Make the script executable
chmod +x install.sh
# Run the installation (script automatically detects your distribution)
./install.sh
```
### Specific Installation
If you want to force a specific distribution:
```bash
# For Ubuntu/Debian
./distributions/debian/install.sh ubuntu
# For Arch Linux
./distributions/arch/install.sh arch
# For Fedora
./distributions/redhat/install.sh fedora
```
## β οΈ Critical Warnings
> [!IMPORTANT]
> **Distribution not detected**: If the script fails to identify your Linux distribution, the installation will terminate immediately with an error code.
### οΏ½ Detection Problem Resolution
> [!WARNING]
> **Automatic detection failure** can occur on custom or very recent distributions.
**Recommended solutions:**
1. **Compatibility verification**
```bash
# Check your distribution
cat /etc/os-release
```
2. **Forced installation** for compatible distributions
```bash
# Debian-based distribution (Ubuntu, Mint, Elementary, etc.)
./distributions/debian/install.sh ubuntu
# Arch-based distribution (Manjaro, EndeavourOS, etc.)
./distributions/arch/install.sh arch
# Red Hat-based distribution (Fedora, CentOS, etc.)
./distributions/redhat/install.sh fedora
```
3. **Technical support**
> [!NOTE]
> Create a GitHub issue with the following information:
>
> - Output of `cat /etc/os-release`
> - Kernel version (`uname -r`)
> - Complete error messages
### π‘οΈ Security Recommendations
> [!CAUTION]
> **Mandatory testing**: Always test on a virtual machine before production deployment.
>
> - **Complete backup** of critical data
> - **System restore point** if available
> - **Sudo privileges verification** before execution
> - **Stable internet connection** required during installation
> [!TIP]
> **Debug mode**: Add `bash -x` for detailed diagnostics
>
> ```bash
> bash -x ./install.sh
> ```
## π¦ Installed Packages
### Base Packages
- **System tools**: git, curl, wget, htop, tree, unzip
- **Shell**: zsh with Oh My Zsh
- **System information**: neofetch
### Development Tools
- **Node.js** via NVM (version 22)
- **Python 3** with pip
- **Compilers**: gcc, make, build-essential
- **Git** with interactive configuration
### Applications
- **Editor**: Visual Studio Code
- **Browsers**: Firefox, Chrome
- **Media**: VLC, Spotify
- **Communication**: Discord
- **Productivity**: LibreOffice
- **Graphics**: GIMP
### Alternative Package Managers
- **Flatpak** with Flathub
- **Snap** (Ubuntu)
- **AUR helpers** (Arch - yay)
## π§ Features by Distribution
### Debian/Ubuntu
- Official and third-party repository configuration
- PPA and external repository support
- Installation via APT, Flatpak and Snap
### Arch Linux
- Optimized Pacman configuration
- AUR helper installation (yay)
- Service management with systemd
- Automatic cleanup of orphaned packages
### Fedora/RHEL
- RPM Fusion configuration
- EPEL repository management
- SELinux support
- Firewalld configuration
### Gentoo
- Portage optimization (MAKEOPTS, USE flags)
- Overlay management with Layman
- OpenRC services
- Optimized parallel compilation
### Alpine
- Glibc compatibility for applications
- Lightweight package management
- OpenRC services
- Musl libc optimizations
### Void Linux
- Optimized XBPS configuration
- Runit services
- Multilib and non-free repositories
- Intelligent cache management
### NixOS
- Declarative configuration
- Home-manager setup
- Flakes support
- Automatic garbage collection
## βοΈ Configuration Options
The script offers several levels of customization:
### Interactive Installation
- Package category selection
- Individual application choices
- System service configuration
- Distribution-specific optimizations
### Automated Configuration
- Pre-defined environment variables
- Default configuration scripts
- Automatic post-installation cleanup
## π Logging and Debugging
- **Log file**: `installation.log` in the script directory
- **Color codes** for better readability
- **Complete error handling** with rollback
- **Progress bars** for long operations
## π‘οΈ Security
- **Privilege verification**: The script refuses to run as root
- **User input validation**
- **Repository signature verification**
- **Automatic backup** of system configurations
## π¨ Prerequisites
- **Active internet connection**
- **Sudo privileges** for the user
- **Bash 4.0+** minimum
- **Supported Linux distribution**
## π€ Contributing
Contributions are welcome! Here's how to contribute:
1. **Fork** the project
2. **Create** a feature branch (`git checkout -b feature/new-distribution`)
3. **Commit** your changes (`git commit -m 'Add support for XYZ'`)
4. **Push** to the branch (`git push origin feature/new-distribution`)
5. **Create** a Pull Request
### Adding a New Distribution
1. Create a folder in `distributions/family-name/`
2. Create an `install.sh` script based on existing templates
3. Add detection in the main script
4. Test on the target distribution
## π License
This project is licensed under MIT. See the [LICENSE](LICENSE) file for more details.
| Author |
| :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:
| [
@notfound](https://github.com/N0tFond)
[](https://notfound-dev.vercel.app)
## π Changelog
### Version 3.0 (October 2025)
- π **Complete security audit** with detailed report and enhanced configuration
- π‘οΈ **Security scripts**: `security-audit.sh` for automated system checks
- π **Improved detection tests** with `test-detection.sh` for multi-distribution validation
- π **Migration script** `migrate.sh` for smooth version updates
- π **Multilingual documentation** with English README (`EN_README.md`)
- π§ **Centralized security configuration** via `security.conf`
- π§ͺ **Automated testing** to ensure cross-distribution compatibility
- π **Vulnerability detection** and security recommendations
- π **Performance metrics** and installation monitoring
- π οΈ **Optimized common functions** in `common/functions.sh`
### Version 2.0 (September 2024)
- β¨ Complete refactoring with modular architecture
- π Support for 7 Linux distribution families
- π Improved user interface with progress bars
- π§ Optimized configuration per distribution
- π Advanced logging and error handling
- π§Ή Intelligent automatic cleanup
- π― Modular and interactive installation
### Version 1.0 (May 2024)
- π Initial version for Arch and Debian
- π¦ Basic installation with some applications
- π Basic ZSH configuration
## β οΈ Warnings
- **Always test** on a virtual machine before production use
- **Backup** your important data before installation
- **Read** logs in case of errors to diagnose problems
- **Verify** compatibility with your specific distribution version
## π Support
In case of problems:
1. Check the `installation.log` file
2. Review existing GitHub issues
3. Create a new issue with the error log
4. Specify your exact distribution and version
---
**β Don't hesitate to star the project if it was useful to you!**