mirror of
https://gitlab.com/erkanisik/yali-rs.git
synced 2026-07-30 18:59:02 +00:00
1161296d2742a42215d23964eb61d4137e3a397d
- InstallMessage: added SubProgress(f32) and CurrentFile(String) variants - GlobalState: added install_sub_progress field - UiSender: added sub_progress() and current_file() helpers - CopyFilesJob: now streams rsync stderr, parses xfr#/to-chk for progress, and sends SubProgress/CurrentFile messages to UI - execution.rs: displays secondary progress bar below the main one during rsync file copy, updates install_current_file in real-time - main.rs: handles new InstallMessage variants in auto-install mode
YALI (Yet Another Linux Installer) — Rust / egui
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.tomlile 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ı
tokioruntime'ında çalışır,mpsckanalı 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
# 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ışı
- Hoş Geldiniz — Dil seçimi, sistem kontrolleri, kurtarma modu
- Konum / Zaman — Saat dilimi seçimi (bölge/alan çift ComboBox), GeoIP, NTP veya manuel tarih/saat
- Klavye — Düzen/varyant seçimi, arama, canlı önizleme (setxkbmap)
- Ağ — WiFi tarama, bağlantı, proxy
- Disk Bölümleme — Otomatik (rehberli) veya manuel, LVM, LUKS
- Kullanıcılar — Hesap oluşturma, parola gücü göstergesi, root parolası
- Bootloader — GRUB aygıtı, zaman aşımı, parola, çekirdek parametreleri
- Görüntü Yöneticisi — SDDM/LightDM/GDM, masaüstü ortamı, otomatik oturum
- Özet — Tüm seçimlerin gözden geçirilmesi
- Kurulum — Slayt + ilerleme çubuğu + canlı log
- 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.