mirror of
https://gitlab.com/erkanisik/yali-rs.git
synced 2026-07-30 18:59:02 +00:00
modified: README.md
This commit is contained in:
@@ -1,3 +1,114 @@
|
||||
# YALI (Yet Another Linux Installer) Rewrite
|
||||
# YALI (Yet Another Linux Installer) — Rust / egui
|
||||
|
||||
Rust and egui based YALI which written python and qt originally. It is the installer that sets up the system by installing packages from the installation media (eg. CD, network, Internet) and carrying out the basic configuration. YALI is intended to be smooth in operation and fast in performance.
|
||||
Rust ve egui ile yeniden yazılmış **Pisi GNU/Linux** kurulum aracı. YALI, canlı ortamdan sistemi kurar, paketleri kurar ve temel yapılandırmayı gerçekleştirir. Orijinal Python/Qt sürümünün modern, hızlı ve bakımı kolay bir yeniden yazımıdır.
|
||||
|
||||
## Özellikler
|
||||
|
||||
- **11 adımlı kurulum sihirbazı**: Hoş Geldiniz → Konum → Klavye → Ağ → Disk Bölümleme → Kullanıcılar → Bootloader → Görüntü Yöneticisi → Özet → Kurulum → Bitir
|
||||
- **İki mod**: Grafik arayüz (varsayılan) ve cevap dosyasıyla otomatik kurulum (`--auto-install answer.toml`)
|
||||
- **Demo modu**: Sistem kontrollerini atlar, kurulumu simüle eder (`--demo`)
|
||||
- **Disk bölümleme**: Otomatik (GPT/MBR) veya manuel, LVM ve LUKS şifreleme desteği
|
||||
- **Ağ yapılandırması**: WiFi tarama (nmcli), proxy ayarları
|
||||
- **Önyükleyici**: GRUB aygıt/parola/zaman aşımı ayarları, çekirdek parametreleri
|
||||
- **Kurtarma modu**: Chroot, GRUB yeniden kurulumu, Pisi geçmişe dönme
|
||||
- **OEM modu**: Üretici ön kurulumu için ön tanımlı ayarlar
|
||||
- **Uluslararasılaştırma**: Türkçe ve İngilizce (rust-i18n ile TOML locale dosyaları)
|
||||
- **Markalama sistemi**: Çalışma zamanında yüklenebilir `branding.toml` ile logo, slayt, renk ayarları
|
||||
- **Tema**: Koyu/açık tema, atomik renk yönetimi, özel gradient butonlar
|
||||
- **Asenkron iş kuyruğu**: Tüm kurulum adımları ayrı `tokio` runtime'ında çalışır, `mpsc` kanalı ile UI güncellenir
|
||||
- **Sistem kontrolleri**: RAM, disk alanı, internet, UEFI, CPU, NVMe gibi 8 ön kontrol
|
||||
- **Slayt gösterisi**: 9 masaüstü ortamı için özel markalı slaytlar
|
||||
- **Demo oturum temizliği**: Canlı ortam artifact'lerini kaldırır, üretim deposu ekler
|
||||
|
||||
## Kullanım
|
||||
|
||||
```bash
|
||||
# Normal kurulum (root yetkisi gerekir)
|
||||
sudo cargo run --release
|
||||
|
||||
# Demo modu (root gerekmez)
|
||||
cargo run --release -- --demo
|
||||
|
||||
# Otomatik kurulum (cevap dosyası ile)
|
||||
sudo cargo run --release -- --auto-install answer.toml
|
||||
```
|
||||
|
||||
## Proje Yapısı
|
||||
|
||||
```
|
||||
├── src/
|
||||
│ ├── main.rs # Giriş noktası, eframe App, GUI düzeni
|
||||
│ ├── installer.rs # InstallerStep trait'i, GlobalState, WelcomeStep
|
||||
│ ├── funct.rs # Paylaşılan UI yardımcıları (form alanları, dil seçici)
|
||||
│ ├── branding.rs # Branding.toml yükleyici (logo, slayt, tema, OEM)
|
||||
│ ├── ui/
|
||||
│ │ ├── theme.rs # Renkler, fontlar, Visuals, section_heading, error/warning/success kutuları
|
||||
│ │ ├── buttons.rs # Gradient butonlar (primary, secondary, danger, vb.)
|
||||
│ │ ├── combobox.rs # ComboBox yardımcıları (show_combo_box, selectable_value)
|
||||
│ │ ├── combobox_stil.rs # ComboBox görsel sabitleri (weak_bg, border, text renkleri)
|
||||
│ │ ├── slideshow.rs # Otomatik ilerleyen slayt gösterisi
|
||||
│ │ └── error_screen.rs # Hata ekranı (log görüntüleyici, kopyala, yeniden dene)
|
||||
│ ├── steps/
|
||||
│ │ ├── location.rs # Konum/saat dilimi + tarih/saat
|
||||
│ │ ├── license.rs # Lisans sözleşmesi
|
||||
│ │ ├── keyboard.rs # Klavye düzeni/varyant seçimi
|
||||
│ │ ├── network.rs # Ağ yapılandırması (WiFi, proxy)
|
||||
│ │ ├── partition.rs # Disk bölümleme (otomatik + manuel + LVM)
|
||||
│ │ ├── users.rs # Kullanıcı hesabı oluşturma
|
||||
│ │ ├── bootloader.rs # GRUB yapılandırması
|
||||
│ │ ├── display_manager.rs # Görüntü yöneticisi ve masaüstü seçimi
|
||||
│ │ ├── summary.rs # Kurulum özeti
|
||||
│ │ ├── execution.rs # Kurulum yürütme (ilerleme çubuğu, log)
|
||||
│ │ ├── finish.rs # Tamamlanma ekranı
|
||||
│ │ ├── netinstall.rs # Ek paket grubu seçimi
|
||||
│ │ └── rescue.rs # Kurtarma modu (chroot, GRUB, Pisi takeback)
|
||||
│ ├── jobs/mod.rs # Asenkron iş kuyruğu ve tüm kurulum işleri
|
||||
│ └── autoinstall/
|
||||
│ ├── mod.rs # Cevap dosyası yükleme ve state uygulama
|
||||
│ └── checker.rs # Sistem ön kontrolleri
|
||||
├── locales/
|
||||
│ ├── tr.toml # Türkçe çeviriler
|
||||
│ └── en.toml # İngilizce çeviriler
|
||||
├── assets/
|
||||
│ ├── icons/ # UI ikonları (YALI_icon_LIGHT.svg, language-icon.svg, vb.)
|
||||
│ ├── flags/ # Ülke bayrakları (~250 SVG)
|
||||
│ └── *.png # Slayt ve logo görselleri
|
||||
├── branding.toml # Varsayılan markalama yapılandırması
|
||||
├── branding_en.toml # İngilizce markalama
|
||||
├── branding_tr.toml # Türkçe markalama
|
||||
└── answer-example.toml # Örnek cevap dosyası
|
||||
```
|
||||
|
||||
## Kurulum İş Akışı
|
||||
|
||||
1. **Hoş Geldiniz** — Dil seçimi, sistem kontrolleri, kurtarma modu
|
||||
2. **Konum / Zaman** — Saat dilimi seçimi (bölge/alan çift ComboBox), GeoIP, NTP veya manuel tarih/saat
|
||||
3. **Klavye** — Düzen/varyant seçimi, arama, canlı önizleme (setxkbmap)
|
||||
4. **Ağ** — WiFi tarama, bağlantı, proxy
|
||||
5. **Disk Bölümleme** — Otomatik (rehberli) veya manuel, LVM, LUKS
|
||||
6. **Kullanıcılar** — Hesap oluşturma, parola gücü göstergesi, root parolası
|
||||
7. **Bootloader** — GRUB aygıtı, zaman aşımı, parola, çekirdek parametreleri
|
||||
8. **Görüntü Yöneticisi** — SDDM/LightDM/GDM, masaüstü ortamı, otomatik oturum
|
||||
9. **Özet** — Tüm seçimlerin gözden geçirilmesi
|
||||
10. **Kurulum** — Slayt + ilerleme çubuğu + canlı log
|
||||
11. **Bitir** — Başarılı kurulum, yeniden başlat veya canlı masaüstüne dön
|
||||
|
||||
## Bağımlılıklar
|
||||
|
||||
| Bağımlılık | Sürüm | Amaç |
|
||||
|---|---|---|
|
||||
| `eframe` | 0.27 (wgpu) | egui çatısı, WebGPU çıktısı |
|
||||
| `egui_extras` | 0.27 (image, file, svg) | Görsel yükleme, dosya diyalogları, SVG |
|
||||
| `image` | 0.24 | PNG kod çözme |
|
||||
| `serde` / `toml` | 1.0 / 0.8 | Branding ve cevap dosyası serileştirme |
|
||||
| `zbus` | 4.0 | D-Bus iletişimi (COMAR) |
|
||||
| `tokio` | 1.0 (full) | Asenkron iş kuyruğu |
|
||||
| `sysinfo` | 0.30 | Sistem bilgisi (RAM, disk, OS) |
|
||||
| `rust-i18n` | 3.1 | Uluslararasılaştırma |
|
||||
| `chrono` | 0.4 | Tarih/saat işlemleri |
|
||||
|
||||
## Lisans
|
||||
|
||||
GNU General Public License v3.0
|
||||
|
||||
Bu proje Pisi GNU/Linux ekibi tarafından geliştirilmektedir.
|
||||
|
||||
Reference in New Issue
Block a user