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
- π 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
βββ 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, Nobara, CentOS, RHEL, Rocky, AlmaLinux, OpenSUSE
βββ gentoo/
β βββ install.sh # Gentoo Linux
βββ alpine/
β βββ install.sh # Alpine Linux
βββ void/
β βββ install.sh # Void Linux
βββ nixos/
βββ install.sh # NixOS
- Ubuntu (all versions)
- Debian (stable, testing, unstable)
- Linux Mint
- Elementary OS
- Pop!_OS
- Kali Linux
- Parrot Security OS
- Arch Linux
- Manjaro
- EndeavourOS
- ArcoLinux
- Garuda Linux
- Artix Linux
- Fedora
- Nobara Linux
- CentOS
- Red Hat Enterprise Linux (RHEL)
- Rocky Linux
- AlmaLinux
- OpenSUSE
- Gentoo Linux - Source-based compilation
- Alpine Linux - Lightweight musl-based distribution
- Void Linux - Rolling release with runit
- NixOS - Declarative configuration
# 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.shIf you want to force a specific distribution:
# For Ubuntu/Debian
./distributions/debian/install.sh ubuntu
# For Arch Linux
./distributions/arch/install.sh arch
# For Fedora
./distributions/redhat/install.sh fedoraImportant
Distribution not detected: If the script fails to identify your Linux distribution, the installation will terminate immediately with an error code.
Warning
Automatic detection failure can occur on custom or very recent distributions.
Recommended solutions:
-
Compatibility verification
# Check your distribution cat /etc/os-release -
Forced installation for compatible distributions
# 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
-
Technical support
Note
Create a GitHub issue with the following information:
- Output of
cat /etc/os-release - Kernel version (
uname -r) - Complete error messages
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 -x ./install.sh- System tools: git, curl, wget, htop, tree, unzip
- Shell: zsh with Oh My Zsh
- System information: neofetch
- Node.js via NVM (version 22)
- Python 3 with pip
- Compilers: gcc, make, build-essential
- Git with interactive configuration
- Editor: Visual Studio Code
- Browsers: Firefox, Chrome
- Media: VLC
- Communication: Discord
- Productivity: LibreOffice
- Graphics: GIMP
- Flatpak with Flathub
- Snap (Ubuntu)
- AUR helpers (Arch - yay)
- Official and third-party repository configuration
- PPA and external repository support
- Installation via APT, Flatpak and Snap
- Optimized Pacman configuration
- AUR helper installation (yay)
- Service management with systemd
- Automatic cleanup of orphaned packages
- RPM Fusion configuration
- EPEL repository management
- SELinux support
- Firewalld configuration
- Portage optimization (MAKEOPTS, USE flags)
- Overlay management with Layman
- OpenRC services
- Optimized parallel compilation
- Glibc compatibility for applications
- Lightweight package management
- OpenRC services
- Musl libc optimizations
- Optimized XBPS configuration
- Runit services
- Multilib and non-free repositories
- Intelligent cache management
- Declarative configuration
- Home-manager setup
- Flakes support
- Automatic garbage collection
The script offers several levels of customization:
- Package category selection
- Individual application choices
- System service configuration
- Distribution-specific optimizations
- Pre-defined environment variables
- Default configuration scripts
- Automatic post-installation cleanup
- Log file:
installation.login the script directory - Color codes for better readability
- Complete error handling with rollback
- Progress bars for long operations
- Privilege verification: The script refuses to run as root
- User input validation
- Repository signature verification
- Automatic backup of system configurations
- Active internet connection
- Sudo privileges for the user
- Bash 4.0+ minimum
- Supported Linux distribution
Contributions are welcome! Here's how to contribute:
- Fork the project
- Create a feature branch (
git checkout -b feature/new-distribution) - Commit your changes (
git commit -m 'Add support for XYZ') - Push to the branch (
git push origin feature/new-distribution) - Create a Pull Request
- Create a folder in
distributions/family-name/ - Create an
install.shscript based on existing templates - Add detection in the main script
- Test on the target distribution
This project is licensed under MIT. See the LICENSE file for more details.
| Author |
|---|
@notfound |
- π Complete security audit with detailed report and enhanced configuration
- π‘οΈ Security scripts:
security-audit.shfor automated system checks - π Improved detection tests with
test-detection.shfor multi-distribution validation - π Migration script
migrate.shfor 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
- β¨ 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
- π Initial version for Arch and Debian
- π¦ Basic installation with some applications
- π Basic ZSH configuration
- 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
In case of problems:
- Check the
installation.logfile - Review existing GitHub issues
- Create a new issue with the error log
- Specify your exact distribution and version
β Don't hesitate to star the project if it was useful to you!