Uygulama yönetimi — mhmt uygulama
MHMT Linux'ta isteğe bağlı uygulamalar tek bir katalogdan kurulur ve kaldırılır. Aynı katalog üç yerde kullanılır:
| Nerede | Ne zaman | Ne yapar |
|---|---|---|
| Kurucunun Uygulamalar ekranı | Kurulum sırasında | Seçilenler yeni sisteme kurulur |
| Menüdeki Uygulamalar penceresi | Kurulumdan sonra | İşaretle/kaldır, değişiklik uygulanır |
mhmt uygulama komutu (İngilizcesi mhmt app) |
Kurulumdan sonra, terminalde | Liste, ara, kur, kaldır |
Üçü de aynı kodu çalıştırır: pencere ve kurucu sonunda mhmt uygulama komutunu çağırır. Bir uygulama nereden kurulursa kurulsun, diğer ikisinde "kurulu" görünür.
mhmt komutunun her alt komutunun Türkçe ve İngilizce adı aynı işi yapar; çıktı sistem dilindedir (Türkçe sistemde Türkçe, diğerlerinde İngilizce). Eski mhmt-uygulama komutu da çalışır; mhmt uygulama ile aynıdır.
| Türkçe | İngilizce | İş |
|---|---|---|
mhmt uygulama liste |
mhmt app list |
Katalog ve durum |
mhmt uygulama ara <sözcük> |
mhmt app search <word> |
Ad, açıklama, paket adında arama |
mhmt uygulama kur … |
mhmt app install … |
Kurma |
mhmt uygulama kaldir … |
mhmt app remove … |
Kaldırma |
mhmt guncelle |
mhmt update |
apt + Flatpak + aygıt yazılımı güncellemesi (§7) |
mhmt destek |
mhmt support |
Sorun bildirimi için bilgi arşivi (§7) |
mhmt surum |
mhmt version |
Sürüm |
mhmt yardim |
mhmt help |
Yardım |
Sekme tuşu alt komutları ve uygulama kimliklerini tamamlar (sudo mhmt uygulama kur st<Tab> → steam). Root gereken komutlar sudosuz yazılırsa kendini sudo ile yeniden başlatır.
İlgili kararlar: #40 (Flathub uygulamaları), #44 (katalog ve kurucu ekranı), #46 (Debian uygulamaları ISO'da), #47 (katalog genişletme), #48 (mhmt komutu, Ubuntu). Kontrat: 02-mimari.md, mhmt-app-cli ve mhmt-app-uygulamalar.
1. Kullanıcı için
Listeyi görmek
mhmt uygulama liste
Örnek çıktı:
Oyun (oyun)
steam Steam Debian kurulu
heroic Heroic Games Launcher Flatpak sırada
discord Discord Flatpak kurulu değil
Sütunlar: kimlik (komutta yazılan), ad (ekranda görünen), kaynak, durum. Parantezdeki oyun grubun kimliğidir.
Durumlar:
kurulu— Debian öğesinin bütün paketleri kurulu ya da Flatpak sistemde var.sırada— Flatpak istendi, internet bekleniyor (aşağıda §3).kurulu değil
Kurmak
sudo mhmt uygulama kur steam discord # tek tek
sudo mhmt uygulama kur oyun # bütün grup
sudo mhmt uygulama kur -y gimp # onay sormadan
Komutta kimlik, grup kimliği (Türkçe oyun ya da İngilizce games), paket adı (virt-manager) ya da Flathub kimliği (com.discordapp.Discord) yazılabilir; paket adı ve Flathub kimliği katalogdaki öğeye çevrilir, böylece 32 bit desteği gibi işler yine yapılır. Ekrandaki ad yazılmaz: boşluk, büyük harf ve "+" içerir ("Virtual Machine Manager" → virtmanager). Kimlikler kalıcıdır; ad değişse de kimlik değişmez. Kimliği bilmiyorsan: mhmt uygulama ara sanal.
Kaldırmak
sudo mhmt uygulama kaldir discord
- Debian öğesi: paketler
apt-get purgeile silinir, ardından artık gereksiz bağımlılıklar içinautoremoveçalışır. - Flatpak öğesi: sıradaysa sıradan çıkar, kuruluysa
flatpak uninstallile silinir.
kaldır (ı ile) da çalışır.
Pencereden
Menü → Uygulamalar (Sistem kategorisi):
- Bütün katalog tek listede görünür. Kurulu ve sıradakiler işaretli gelir.
- İşaret ekleyince kurar, işareti kaldırınca kaldırır.
- Tamam'a basınca parola sorulur ve işlem bir Konsole penceresinde görünür. Pencere iş bitince açık kalır; hata varsa okunabilsin diye.
Doğrudan apt / Flatpak ile
Katalog zorunlu değil. Her paket her zamanki yoldan da kurulabilir:
sudo apt install virt-manager
flatpak install flathub com.discordapp.Discord
Bu yoldan kurulan bir uygulama katalogda varsa liste onu yine kurulu gösterir, çünkü durum sistemden okunur.
Katalogun farkı şu üç şeyi kendisi yapmasıdır:
- Steam ve Wine için 32 bit mimariyi açar.
- NVIDIA varsa 32 bit sürücü kütüphanesini ekler.
- Lisans sorularını önceden yanıtlar (Microsoft yazı tipleri, Wireshark).
Güncelleme
| Kaynak | Nasıl güncellenir |
|---|---|
[Debian] |
Sistem güncellemesiyle: Discover ya da sudo apt update && sudo apt full-upgrade |
[Flatpak] |
Discover ya da flatpak update |
Hepsini tek seferde güncellemek için: sudo mhmt guncelle (§7).
2. Kaynaklar: [Debian] ve [Flatpak]
[Debian] |
[Flatpak] |
|
|---|---|---|
| Nereden | Debian trixie depoları (+ MHMT deposu) | Flathub |
| Kurulumda internet | Gerekmez: paketler ISO'da (karar #46) | Gerekir: ilk internette iner |
| Kurulumdan sonra | apt kaynakları (internet) | Flathub (internet) |
| Kum havuzu | Yok, sistem paketi | Var (izinler: Flatseal) |
Neden bazıları Flatpak: Bazı uygulamalar Debian'da yok ya da çok eski (Discord, Spotify, VS Code, Chrome). Bazılarının lisansı ISO'ya gömülmeye izin vermiyor (Chrome, Discord). Bazılarının Flathub paketi programı kurulum sırasında üreticiden indiriyor (Brave). Bu yüzden Flatpak'lar ISO'ya girmez.
iso: true öğeleri (Chromium, OBS Studio, qBittorrent gibi varsayılan işaretli Debian uygulamaları) canlı imajda zaten kuruludur. Kurucuda işareti kaldırılırsa kurulumun sonunda yeni sistemden kaldırılır.
3. Akış ayrıntısı
3.1 Debian öğesi kurulurken
sudo mhmt uygulama kur steam sırasıyla şunları yapar:
- Seçim. Kimlikler ve grup kimlikleri katalogdan çözülür. Bilinmeyen ad varsa hiçbir şey yapmadan çıkar.
- Yetki. Root değilse
sudoile tekrar çalıştırılacak komutu yazıp çıkar. - 32 bit (
i386: trueöğeler: Steam, Wine). - Wine seçiliyse
wine32:i386eklenir. - Sistemde
nvidia-driver-libskuruluysanvidia-driver-libs:i386eklenir. Steam istemcisi 32 bittir; NVIDIA kapalı sürücüsünde Mesa'nın 32 bit GL'i işe yaramaz. - i386 mimarisi kapalıysa
dpkg --add-architecture i386ile açılır. - Lisans yanıtları. Öğenin
debconfsatırlarıdebconf-set-selectionsile önceden verilir. Kurulum soru sorup takılmaz. apt-get update --error-on=any. Bir kaynağa bile ulaşılamazsa kurulum yapılmaz, çünkü eksik indeksle yarım kurulum olur. Bu adımda i386'yı kendisi açtıysa geri kapatır ve "Sonradan: sudo mhmt uygulama kur …" komutunu yazar.apt-get install. Çözülemezse hiçbir şey kurulmaz. i386'yı kendisi açtıysa yine geri alır.
Çıkış kodu: hepsi kurulduysa 0, apt adımı başarısızsa 1.
3.2 Flatpak öğesi kurulurken
- Flathub kimliği (
com.discordapp.Discord) sıra dosyasına yazılır:/var/lib/mhmt/flatpak/sirada. - Daha önce kurulup kaldırıldıysa "kuruldu" kaydından silinir; açıkça istendiği için yeniden kurulur.
- Normal sistemde kurucu betik hemen çalışır:
/usr/libexec/mhmt-flatpak/mhmt-flatpak-kur. - İnternet varsa uygulama hemen iner.
- Yoksa sırada kalır ve §3.3'teki tetiklerle kurulur.
3.3 Flatpak sırası (mhmt-config-flatpak)
mhmt-flatpak-kur iki listeyi birleştirir:
/usr/share/mhmt/flatpak/varsayilan.list— her kurulumda gelenler. Şu an boş; varsayılanlar kurucu ekranında işaretli gelir./var/lib/mhmt/flatpak/sirada— kullanıcının ya da kurucunun istedikleri.
/var/lib/mhmt/flatpak/kuruldu dosyasında olanları atlar. Böylece kullanıcının sonradan kaldırdığı bir uygulama bir daha kendiliğinden gelmez.
dl.flathub.org çözülemiyorsa sessizce çıkar. Her başarılı kurulumdan sonra sonra.d/<kimlik> betiği varsa çalışır; örneğin VS Code'un sistem derleyicilerine ulaşma izni ve varsayılan ayarları buradan gelir.
Ne zaman çalışır:
| Tetik | Ne zaman |
|---|---|
mhmt-flatpak-kur.timer |
Açılıştan 2 dk sonra, sonra her 30 dk'da bir |
NetworkManager dispatcher (90-mhmt-flatpak) |
Ağ bağlandığı anda, sırada iş varsa (mhmt-config-flatpak 0.3.0, b51'de yok) |
mhmt uygulama kur |
Kurulumdan sonra elle istenince, hemen |
Canlı USB oturumunda (boot=live) hiç çalışmaz.
Elle tetiklemek ve günlüğe bakmak için:
sudo systemctl start mhmt-flatpak-kur.service
journalctl -u mhmt-flatpak-kur
cat /var/lib/mhmt/flatpak/sirada /var/lib/mhmt/flatpak/kuruldu
3.4 Kurucuda (Calamares)
netinstall (Uygulamalar ekranı)
│ seçilen her uygulama = adını taşıyan sahte paket ("Steam")
▼
mhmt-roles-select packages'tan önce
│ netinstall'ın eklediği sahte paketleri packageOperations'tan çıkarır,
│ adı katalogdan kimliğe çevirir → mhmtApps
│ işareti kaldırılmış iso öğeleri → mhmtAppsRemove
▼
packages (sahte paketleri hiç görmez)
▼
sources-media ISO deposu hedefe bağlanır: file:/run/live/medium trixie main
mhmt-nvidia NVIDIA algılanırsa sürücü
mhmt-roles hedefte (chroot):
│ mhmt uygulama kaldir -y --kurucu <mhmtAppsRemove>
│ mhmt uygulama kur -y --kurucu <mhmtApps>
▼
sources-media-unmount ISO deposu satırı silinir
--kurucu kipindeki farklar:
apt-get updatebaşarısız olsa da kuruluma devam eder. İnternet yoksa Debian depoları okunamaz ama ISO deposu okunmuştur. Katalogdaki Debian uygulamaları ve bütün bağımlılıkları (i386 dahil) oradadır (karar #46).- Flatpak'lar hemen kurulmaz. Chroot'ta systemd yoktur; sıraya yazılırlar ve yeni sistemin ilk internetinde iner.
- Kaldırmada
autoremoveyapılmaz. Canlı imajdan gelen başka paketlere dokunulmaz. - Hata kurulumu durdurmaz. Bir şey kurulamazsa canlı oturumda bir uyarı penceresi açılır ve sonradan kurma komutu gösterilir.
Satırın içi: Uygulama ekranında bir satır açılınca altında uygulamanın adı görünür. Bu, Calamares'in "paket" satırıdır. b51'de burada mhmt-app:steam yazıyordu; installer-branding 0.5.2'den itibaren ad yazıyor.
4. Katalog dosyası
/usr/share/mhmt/uygulamalar/katalog.json (kaynak: packages/mhmt-app-cli/katalog.json)
{"gruplar": [
{"id": "oyun", "ad": "Oyun", "aciklama": "Steam ve Wine 32 bit mimariyi açar",
"ogeler": [
{"id": "steam", "ad": "Steam", "aciklama": "Steam ve oyun kolu desteği",
"apt": ["steam-installer", "steam-devices"], "i386": true},
{"id": "discord", "ad": "Discord", "aciklama": "Oyuncu sohbeti",
"flatpak": "com.discordapp.Discord"}
]}
]}
| Alan | Zorunlu | Anlamı |
|---|---|---|
id |
evet | Komutta yazılan kimlik. Küçük harf, boşluksuz, değiştirilmez |
ad |
evet | Ekranda görünen ad, katalogda benzersiz. Ad standardı aşağıda |
ad_en |
hayır | İngilizce ad; yalnız ad dile göre değişiyorsa (Microsoft fonts) |
aciklama |
evet | Kısa açıklama (Türkçe) |
aciklama_en |
evet | Kısa açıklama (İngilizce) |
apt |
biri | Debian trixie paketleri listesi |
flatpak |
biri | Flathub uygulama kimliği |
varsayilan |
hayır | Kurucuda işaretli gelir |
iso |
hayır | Canlı imajda kurulu gelir. Paketleri live-build/config/package-lists/mhmt.list.chroot'ta da olmalı |
i386 |
hayır | 32 bit mimari gerekir (Steam, Wine) |
debconf |
hayır | Kurulumdan önce verilecek debconf-set-selections satırları |
dagitim |
hayır | Başka dağıtımdaki karşılık (aşağıda) |
Her öğede apt ya da flatpak alanlarından biri olmalı ("biri" bunu anlatır). Gruplarda da id_en, ad_en, aciklama_en zorunlu (oyun → games).
Dağıtım karşılığı (dagitim): apt/flatpak alanları Debian trixie içindir. Başka dağıtımda paket yoksa ya da farklıysa karşılık yazılır; aranma sırası sürüm adı (noble), dağıtım (ubuntu), türediği dağıtımlar:
{"id": "chromium", ..., "apt": ["chromium", "chromium-l10n"],
"dagitim": {"ubuntu": {"flatpak": "org.chromium.Chromium"}}}
{"id": "ghcli", ..., "apt": ["gh", "lazygit"], "dagitim": {"noble": {"apt": ["gh"]}}}
Karşılık apt ya da flatpak taşıyorsa öğenin kaynağının yerine geçer; null o dağıtımda öğeyi gizler. Derleme tools/katalog-denetle.py ile alanları, benzersizliği ve İngilizce metinleri denetler; eksik varsa durur.
Ad standardı:
- Ürünün kendi yazdığı ad, büyük-küçük harf dahil:
mpv,darktable,ONLYOFFICE. - Komut adı değil ürün adı:
Virtual Machine Manager. - Birden çok araç
+ile birleşir:GameMode + MangoHud + GOverlay. - Ek bilgi parantezde:
WhatsApp (ZapZap). - Ürün olmayan öğe Türkçe adlandırılır:
Temel geliştirme araçları. - Kaynak etiketi ada yazılmaz; ekranlar kendisi ekler.
Katalog değişince
- Öğe eklenir ya da düzeltilir.
- Debian öğesi için paketin trixie'de olduğunu doğrula:
apt-cache policy <paket>(build VM). - Flatpak öğesi için kimliğin Flathub'da olduğunu doğrula:
https://flathub.org/apps/<kimlik>. - Ubuntu 24.04 ve 26.04'te paket adı aynı mı, snap'e mi yönlendiriyor: farklıysa
dagitimkarşılığı yazılır. packages/mhmt-app-cli/debian/changelog'a yeni sürüm yazılır. Yayınlanmış sürüm değişmez.- Kurucu ekranı katalogdan üretildiği için
mhmt-config-installer-brandingchangelog'u da yükselir. vm/publish-packages.ps1 -Publicile paketler yayınlanır. Kurulu sistemlere apt güncellemesiyle yeni katalog gelir.- Bir sonraki ISO'da yeni Debian öğeleri ISO deposuna da girer (hook
0400-mhmt-uygulama-deposu).
5. Dosyalar
| Yol | Paket | İçerik |
|---|---|---|
/usr/bin/mhmt |
mhmt-app-cli | Komut |
/usr/lib/mhmt/python/mhmt_cli/ |
mhmt-app-cli | Komutun modülleri (uygulama, guncelle, destek, dil, katalog) |
/usr/bin/mhmt-uygulama |
mhmt-app-cli | Eski ad: mhmt uygulama |
/usr/share/mhmt/uygulamalar/katalog.json |
mhmt-app-cli | Katalog |
/usr/share/bash-completion/completions/mhmt |
mhmt-app-cli | Sekme tamamlaması |
/usr/bin/mhmt-uygulamalar |
mhmt-app-uygulamalar | Menüdeki pencere (kdialog, yalnız KDE) |
/usr/libexec/mhmt-flatpak/mhmt-flatpak-kur |
mhmt-config-flatpak | Flatpak sırasını kurar |
/usr/lib/NetworkManager/dispatcher.d/90-mhmt-flatpak |
mhmt-config-flatpak | Ağ gelince tetikler |
/usr/share/mhmt/flatpak/sonra.d/ |
mhmt-config-flatpak | Kurulum sonrası betikler |
/var/lib/mhmt/flatpak/sirada, kuruldu |
(durum) | Sıra ve kurulmuş kayıtları |
/usr/bin/mhmt-rol |
mhmt-config-apt | Eski komut, uyumluluk için: mhmt-rol kur oyun = mhmt uygulama kur oyun |
6. Sorun giderme
| Belirti | Neden / çözüm |
|---|---|
| "bilinmeyen öğe, grup ya da paket" | Ekrandaki ad yazılmış ya da uygulama katalogda yok; mhmt uygulama ara <sözcük> |
| "depolarda bulunamayan paketler" | Ubuntu'da paket universe/multiverse'te olabilir: sudo add-apt-repository multiverse; Debian'da depo kaynaklarını kontrol et |
| "paket kaynaklarına ulaşılamadı; şunlar kurulmadı" | İnternet yok ya da bir depo erişilemiyor; sudo apt update çıktısına bak, sonra komutu tekrar çalıştır |
Flatpak sırada kalıyor |
İnternet yok ya da Flathub erişilemiyor; journalctl -u mhmt-flatpak-kur, elle: sudo systemctl start mhmt-flatpak-kur.service |
| Kaldırdığım Flatpak geri geldi | Gelmemeli (kuruldu kaydı); geldiyse kaydı ve sirada dosyasını kontrol et |
| Steam açılmıyor, 32 bit hatası | dpkg --print-foreign-architectures içinde i386 olmalı; NVIDIA'da nvidia-driver-libs:i386 (Ubuntu'da libnvidia-gl-<sürüm>:i386) kurulu olmalı |
| Kurulumda "bir kısmı kurulamadı" penceresi | Sistem kuruldu, eksikler pencerede yazan komutla sonradan kurulur; kurucu günlüğü canlı oturumda /root/.cache/calamares/session.log |
7. Diğer alt komutlar
mhmt guncelle / mhmt update
sudo mhmt guncelle # her adımda onay sorar
sudo mhmt guncelle -y # sormadan
Sırayla çalışır; bir adım hata verirse diğerleri yine çalışır:
apt-get updateveapt-get full-upgrade: sistem ve[Debian]uygulamaları.flatpak update: sistem kurulumu;sudoile çağıranın kendi (--user) Flatpak'ları da.snap refresh: yalnız snap varsa (Ubuntu).fwupdmgr update: aygıt yazılımı (BIOS/UEFI, SSD, dock vb.), yalnız fwupd kuruluysa.
Sonunda adım adım özet yazılır. Yeni çekirdek kurulduysa ya da sistem "yeniden başlatma gerekli" diyorsa uyarır.
mhmt destek / mhmt support
mhmt destek # kullanıcı olarak: kendi günlüklerin
sudo mhmt destek # sistem günlüklerinin tamamı
Ev klasörüne mhmt-destek-<tarih>.tar.gz yazar. İçinde:
sistem.txt: sürüm, derleme no, çekirdek, açılış parametreleri, başarısız servisler.donanim.txt: işlemci, bellek, PCI/USB aygıtları ve sürücüleri, diskler (seri no ve UUID yok), model.grafik.txt: Secure Boot, NVIDIA, DKMS, OpenGL.paketler.txt: MHMT paketleri, depolar, Flatpak'lar, katalog durumu.ag.txt: NetworkManager durumu, depo ve Flathub ad çözümlemesi.gunluk.txt: bu ve önceki açılışın uyarı/hataları, Flatpak kurucu günlüğü.kurucu/: kurucu günlüğü (varsa).
Hiçbir yere gönderilmez. Arşive girmeden önce makine adı, kullanıcı adları, MAC adresleri ve makine kimliği maskelenir. Göndermeden önce açıp bakabilirsin.
8. Ubuntu'da
mhmt komutu ve Flatpak sırası Ubuntu 24.04 LTS (noble) ve 26.04 LTS (resolute) için de MHMT deposunda. Uygulamalar penceresi KDE ister (Kubuntu); diğer masaüstlerinde yalnız komut kurulur.
sudo install -d /etc/apt/keyrings
sudo curl -fsSLo /etc/apt/keyrings/mhmt-archive-keyring.asc https://repo.mehmetozkan.net/mhmt-archive-keyring.asc
. /etc/os-release
printf 'Types: deb
URIs: https://repo.mehmetozkan.net
Suites: %s
Components: main
Architectures: amd64
Signed-By: /etc/apt/keyrings/mhmt-archive-keyring.asc
' "$VERSION_CODENAME" | sudo tee /etc/apt/sources.list.d/mhmt.sources
sudo apt update
sudo apt install mhmt-app-cli # yalnız komut
sudo apt install mhmt-app-uygulamalar # Kubuntu: menüde "Uygulamalar" penceresi de
Ubuntu'da farklar:
- Kaynak etiketi
[Ubuntu]olur. - Chromium ve Thunderbird Ubuntu'da snap'e yönlendirildiği için Flathub'dan kurulur.
- Steam, Lutris ve Microsoft yazı tipleri
multiverse'tedir. Kapalıysamhmtbunu söyler:sudo add-apt-repository multiverse. - "Temel geliştirme araçları" MHMT meta paketi yerine aynı paketleri tek tek kurar.
- Grup açıklamaları ("Firefox her zaman kurulu") MHMT'ye özgü olduğu için gösterilmez.