mirror of
https://gitlab.com/erkanisik/yali-rs.git
synced 2026-07-31 03:09:00 +00:00
116 lines
6.2 KiB
Markdown
116 lines
6.2 KiB
Markdown
# 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.
|
||
|
||
- [Changelog](CHANGELOG.md)
|
||
- [English README](README_en.md)
|
||
|
||
## Özellikler
|
||
|
||
- **10 adımlı kurulum sihirbazı**: Hoş Geldiniz → Konum → Klavye → Ağ → Disk Bölümleme → Kullanıcılar → Bootloader → Ö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ı
|
||
│ │ ├── 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ı, otomatik oturum açma
|
||
7. **Bootloader** — GRUB aygıtı, zaman aşımı, parola, çekirdek parametreleri
|
||
8. **Özet** — Tüm seçimlerin gözden geçirilmesi
|
||
9. **Kurulum** — Slayt + ilerleme çubuğu + canlı log
|
||
10. **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.
|