Rehber Distrobox ile bütün dağıtımları Linux makinenizde kullanın!

Bugün sizlerle temel olarak Distrobox nasıl kullanılır buna bakacağız.

"Neden kullanayım ki? Ne işime yarayacak?" diyebilirsiniz.
Kullanmanız için çok nedeni var fakat biz bugün temel bir bölümünü göreceğiz. Hazırsanız başlayalım.

Öncelikle Distrobox kullanmak için Docker veya Podman'in sisteminizde kurulu olması gerek. Çünkü container sistemi ile çalışacağız. Benim bu noktada size tavsiyem Podman kullanmanızdır. Docker'ın yapabildiği işlemleri yapıyor ve bunun için root yetkileri gerekmiyor. Her şey kullanıcının $HOME dizini içerisinde gerçekleşiyor. Ayrıca Podman kullanmak için Docker'da olduğu gibi bir servis ayağa kaldırmanız gerekmiyor. Direkt kullanmaya başlıyorsunuz.

Şimdi sistemimizde Podman veya Docker yüklü, ne yapacağız? Elbette bir imaja ihtiyacımız var.
Burada çoğu Linux dağıtımı yer alıyor fakat siz dilerseniz Docker veya Podman kullanırken çektiğiniz Linux dağıtımlarının container imajını kullanabilirsiniz.
İmaj çekmek için:
Bash:
# Podman için
podman pull image_name

# Docker için
docker pull image_name
Mesela HubDocker üzerinden imaj çekmek istiyorsunuz fakat Podman bunu görmüyor. Bu imajları URL yoluyla çekmelisiniz. Mesela:
Kod:
podman pull docker.io/library/archlinux:latest
Çoğu imaj Podman tarafından tanınıyor. Bunun sayesinde URL ile fazla işiniz olmayacak.
Nelerin olduğunu görmek için /etc/containers/registries.conf.d/00-shortnames.conf dosyasına bakabilirsiniz.

Tamam, imajı çektik. Sırada ne var?
Uygulamaların arayüzüne erişmek için şu iki komutu çalıştırmanız daha iyi olur:
Bash:
xhost +si:localuser:$USERNAME
xhost +si:localuser:root

Sırada Distrobox kullanımı var. Temel kurulum bu komutta olduğu gibi. Buna --root eklerseniz root yetkileri olacağından Container sistemin neredeyse tüm kaynaklarına erişebilir olacak.
Bash:
# distrobox = Ana komutumuz.
# create = Distrobox containerı oluşturmak için kullanıyoruz.
# -n = --name kısaltmasıdır. Distrobox Containera ad verilir.
# -i = --image kısaltmasıdır. Kullanılacak imaj belirtilir.
# --home = Host sistem ile paylaşılacak olan konumu belirtir.
distrobox create -n distrobox_container_name -i image_name:tag --home /path/to/home/folder/container
# Opsiyonel:
distrobox create -n distrobox_container_name -i image_name:tag --home /path/to/home/folder/container --root

Ben kullanırken $HOME dizinime .distrobox klasörü oluşturup içerisine kuracağım container ismini girip klasörü o şekilde belirliyorum. Siz bunu dilediğiniz gibi değiştirebilirsiniz.

2022-12-06_00-55.png

2022-12-06_00-56.png


Bir hata olmadıysa bu şekilde kurulmuş olması gerek. Podman'i yükledikten hemen sonra bu adımları uyguluyorsanız ve hata aldıysanız sistemi yeniden başlatıp tekrar deneyin. Muhtemelen sorununuz çözülmüş olacak ve container oluşacaktır.

Daha sonra bu containerın içine giriyoruz. Komutu da vermiş zaten çıktımız.
Bash:
# enter = Distrobox komutunun giriş argümanı.
distrobox enter distrobox_container_name

2022-12-06_00-59.png


"Hocam kaldı bu böyle. Ne yapacağız?"
Distrobox size bir mesaj atmış. Dikkatli bakın:
Bash:
# Docker için
docker logs -f distrobox_container_name
# Podman için
podman logs -f distrobox_container_name
Bu şekilde container kurulum esnasında neler yapıyor bunlara bakabilirsiniz.

2022-12-06_01-01.png


Sondaki + set +x yazısını gördükten sonra burayı kapatabilirsiniz.
Bu arada, bu ikinci komutu ilk terminal açık durumdayken yazacaksınız. Diğer terminali kapatmayın.

2022-12-06_01-04.png


Şu an $HOME dizinim container ile paylaşılıyor. Container bu dosyalara erişebilir vaziyette.
Peki şimdi ne yapalım? Hemen birkaç ayarlama elbette.

2022-12-06_01-08.png

Container sizin varsayılan kabuğunuza göre kabuk seçip indiriyor. Örneğin benim varsayılan kabuğum zsh olduğu için varsayılan olarak zsh kurdu.
Ve gördüğünüz üzere RPM kullanan Fedora 37 Container Image karşınızda!

Container sisteminin en büyük avantajlarından biri yüksek kaynak tüketimine sahip olmaması. Sizin kullandığınız Linux kerneli ile sistem çalışıyor. Gördüğünüz üzere neofetch çıktısında kernel sürümü Zen Kernel olarak gözüküyor.

Mesela şimdi Fedora üzerinden Chromium çalıştıralım.

2022-12-06_01-23.png


Gördüğünüz gibi Chromium, Fedora içinden çalışıyor.
Bu Chromium'u ana makine üzerinden erişilebilir hâle getirebilirsiniz. Ayrıca terminale gerek kalmadan direkt uygulama görünümünde.
Container içinde çalıştıracağımız komut:
Bash:
# -a = Dışarı aktaracağımız komutu belirtiyoruz.
distrobox-export -a command_name

2022-12-06_01-28.png


Ve bu şekilde dışarı aktarmış olduk. Bu aktarmalar $HOME/.local/share/applications dizinine kaydediliyor. Oradan kontrol edebilirsiniz.

2022-12-06_01-30.png


Gördüğünüz gibi bu şekilde.
"Ben artık görmek istemiyorum. Ne yapacağım?"
Ya bu dosyayı silersiniz ya da Container içine gelip:
Bash:
# -d = --delete kısaltmasıdır. Kaldırmak için kullanılır.
distrobox-export -a command_name -d

2022-12-06_01-32.png


Komutu girdikten sonra artık gördüğünüz gibi dosya burada bulunmuyor.
Container kurulum aşamasında komutun sonuna --root argümanını eklerseniz çoğu çalışmayan uygulama çalışmaya başlayacaktır.
Mesela nmap programı. Eğer --root argümanı olmadan alacağınız hata şudur:

2022-12-06_01-41.png

Gördüğünüz gibi. Ama kurulumda --root argümanını eklerseniz bu hatayı almazsınız ve dümdüz taramaya başlar.

Ayrıca şöyle bir tüyo vereyim. Container içerisinden oyun oynayabilirsiniz. Teknik olarak mümkün.

2022-12-06_01-45.png


Yine bu Container içerisinde Arch Linux var. İstersem Kali Linux toollarını dilediğim gibi kullanabilirim, istersem oyun oynayabilirim. Dead Cells çalışıyor. Herhangi bir FPS kaybı söz konusu değil.

2022-12-06_01-48_1.png


Şu şekilde göstermiş olayım.
Steam üzerinden Black Mesa oynamayı denedim ama açılıyor gibi gözüküp açılmıyordu. Onu mecburen ana sisteme taşıdım.

Sizde kullandığınız dağıtımlar içerisinde çeşitli dağıtımların kaynağını bu şekilde kullanabilir ve faydalanabilirsiniz.
Bu proje hakkında okumanız gereken birkaç adres bırakıyorum. Daha fazla bilgi mevcut çünkü. Yeni şeyler öğrenip amaçlarınız doğrultusunda kullanabilirsiniz böylece.

Bir başka rehberde görüşmek üzere, kendinize iyi bakın.
 
Son düzenleme:
Bugün sizlerle temel olarak distrobox nasıl kullanılır buna bakacağız.

"Neden kullanayım ki? Ne işime yarayacak?" diyebilirsiniz.
Kullanmanız için çok nedeni var fakat biz bugün temel bir bölümünü göreceğiz. Hazırsanız başlayalım.

Öncelikle distrobox kullanmak için docker veya Podman'in sisteminizde kurulu olması gerek. Çünkü container sistemi ile çalışacağız. Benim bu noktada size tavsiyem podman kullanmanızdır. Docker'ın yapabildiği işlemleri yapıyor ve bunun için root yetkileri gerekmiyor. Her şey kullanıcının $HOME dizini içerisinde gerçekleşiyor. Ayrıca podman kullanmak için Docker'da olduğu gibi bir servis ayağa kaldırmanız gerekmiyor. Direkt kullanmaya başlıyorsunuz.

Şimdi sistemimizde podman veya docker yüklü, ne yapacağız? Elbette bir imaja ihtiyacımız var.
Burada çoğu Linux dağıtımı yer alıyor fakat siz dilerseniz docker veya podman kullanırken çektiğiniz Linux dağıtımlarının container imajını kullanabilirsiniz.
İmaj çekmek için:
Bash:
# Podman için.
podman pull image_name.

# Docker için.
docker pull image_name.
Mesela hubdocker üzerinden imaj çekmek istiyorsunuz fakat podman bunu görmüyor. Bu imajları URL yoluyla çekmelisiniz. Mesela:
Kod:
podman pull docker.io/library/archlinux:latest
Çoğu imaj podman tarafından tanınıyor. Bunun sayesinde URL ile fazla işiniz olmayacak.
Nelerin olduğunu görmek için /etc/containers/registries.conf.d/00-shortnames.conf dosyasına bakabilirsiniz.

Tamam, imajı çektik. Sırada ne var?
Uygulamaların arayüzüne erişmek için şu iki komutu çalıştırmanız daha iyi olur:
Bash:
xhost +si:localuser:$USERNAME
xhost +si:localuser:root

Sırada distrobox kullanımı var. Temel kurulum bu komutta olduğu gibi. Buna --root eklerseniz root yetkileri olacağından container sistemin neredeyse tüm kaynaklarına erişebilir olacak.
Bash:
# distrobox = Ana komutumuz.
# create = Distrobox containerı oluşturmak için kullanıyoruz.
# -n = --name kısaltmasıdır. Distrobox Containera ad verilir.
# -i = --image kısaltmasıdır. Kullanılacak imaj belirtilir.
# --home = Host sistem ile paylaşılacak olan konumu belirtir.
distrobox create -n distrobox_container_name -i image_name:tag --home /path/to/home/folder/container
# Opsiyonel:
distrobox create -n distrobox_container_name -i image_name:tag --home /path/to/home/folder/container --root

Ben kullanırken $HOME dizinime .distrobox klasörü oluşturup içerisine kuracağım container ismini girip klasörü o şekilde belirliyorum. Siz bunu dilediğiniz gibi değiştirebilirsiniz.

Eki Görüntüle 1594729
Eki Görüntüle 1594731

Bir hata olmadıysa bu şekilde kurulmuş olması gerek. Podman'i yükledikten hemen sonra bu adımları uyguluyorsanız ve hata aldıysanız sistemi yeniden başlatıp tekrar deneyin. Muhtemelen sorununuz çözülmüş olacak ve container oluşacaktır.

Daha sonra bu containerın içine giriyoruz. Komutu da vermiş zaten çıktımız.
Bash:
# enter = Distrobox komutunun giriş argümanı.
distrobox enter distrobox_container_name

Eki Görüntüle 1594734

"Hocam kaldı bu böyle. Ne yapacağız?"
Distrobox size bir mesaj atmış. Dikkatli bakın:
Bash:
# Docker için.
docker logs -f distrobox_container_name
# Podman için.
podman logs -f distrobox_container_name
Bu şekilde container kurulum esnasında neler yapıyor bunlara bakabilirsiniz.

Eki Görüntüle 1594735

Sondaki + set +x yazısını gördükten sonra burayı kapatabilirsiniz.
Bu arada, bu ikinci komutu ilk terminal açık durumdayken yazacaksınız. Diğer terminali kapatmayın.

Eki Görüntüle 1594737

Şu an $HOME dizinim container ile paylaşılıyor. Container bu dosyalara erişebilir vaziyette.
Peki şimdi ne yapalım? Hemen birkaç ayarlama elbette.

Eki Görüntüle 1594746
Container sizin varsayılan kabuğunuza göre kabuk seçip indiriyor. Örneğin benim varsayılan kabuğum zsh olduğu için varsayılan olarak zsh kurdu.
Ve gördüğünüz üzere RPM kullanan Fedora 37 container ımage karşınızda!

Container sisteminin en büyük avantajlarından biri yüksek kaynak tüketimine sahip olmaması. Sizin kullandığınız Linux Kernel'i ile sistem çalışıyor. Gördüğünüz üzere neofetch çıktısında kernel sürümü zen kernel olarak gözüküyor.

Mesela şimdi Fedora üzerinden Chromium çalıştıralım.

Eki Görüntüle 1594754

Gördüğünüz gibi Chromium, Fedora içinden çalışıyor.
Bu Chromium'u ana makine üzerinden erişilebilir hâle getirebilirsiniz. Ayrıca terminale gerek kalmadan direkt uygulama görünümünde.
Container içinde çalıştıracağımız komut:
Bash:
# -a = Dışarı aktaracağımız komutu belirtiyoruz.
distrobox-export -a command_name.

Eki Görüntüle 1594755

Ve bu şekilde dışarı aktarmış olduk. Bu aktarmalar $HOME/.local/share/applications dizinine kaydediliyor. Oradan kontrol edebilirsiniz.

Eki Görüntüle 1594756

Gördüğünüz gibi bu şekilde.
"Ben artık görmek istemiyorum. Ne yapacağım?"
Ya bu dosyayı silersiniz ya da container içine gelip:
Bash:
# -d = --delete kısaltmasıdır. Kaldırmak için kullanılır.
distrobox-export -a command_name -d

Eki Görüntüle 1594757

Komutu girdikten sonra artık gördüğünüz gibi dosya burada bulunmuyor.
Container kurulum aşamasında komutun sonuna --root argümanını eklerseniz çoğu çalışmayan uygulama çalışmaya başlayacaktır.
Mesela nmap programı. Eğer --root argümanı olmadan alacağınız hata şudur:

Eki Görüntüle 1594759
Gördüğünüz gibi. Ama kurulumda --root argümanını eklerseniz bu hatayı almazsınız ve dümdüz taramaya başlar.

Ayrıca şöyle bir tüyo vereyim. Container içerisinden oyun oynayabilirsiniz. Teknik olarak mümkün.

Eki Görüntüle 1594761

Yine bu container içerisinde Arch Linux var. İstersem Kali Linux toollarını dilediğim gibi kullanabilirim, istersem oyun oynayabilirim. Dead Cells çalışıyor. Herhangi bir FPS kaybı söz konusu değil.

Eki Görüntüle 1594763

Şu şekilde göstermiş olayım.
Steam üzerinden Black Mesa oynamayı denedim ama açılıyor gibi gözüküp açılmıyordu. Onu mecburen ana sisteme taşıdım.

Sizde kullandığınız dağıtımlar içerisinde çeşitli dağıtımların kaynağını bu şekilde kullanabilir ve faydalanabilirsiniz.
Bu proje hakkında okumanız gereken birkaç adres bırakıyorum. Daha fazla bilgi mevcut çünkü. Yeni şeyler öğrenip amaçlarınız doğrultusunda kullanabilirsiniz böylece.

Bir başka rehberde görüşmek üzere, kendinize iyi bakın.

Archlinux da podman ile distrobox kullanmaktayım. Yüklediğim programları masaüstüne menüye export ediyorum. Buraya kadar her şey tamam LXDE masaüstü ortamını kurduktan sonra programlar açılmıyor. Terminal üzerinden de açılmamakta plasma ve Xfce4 de açılıyordu. Contenier olarak yüklediğim dağıtımların programlarını kullanamaktayım. Masaüstü ortamı değişmek istemiyorum LXDE öyle güzel çalışıyor ki çok uyumlu bunun dışında herhangi bir hata ile karşılaşmadım. LXDE de ne işlem yapmalıyım.
 
Archlinux da podman ile distrobox kullanmaktayım. Yüklediğim programları masaüstüne menüye export ediyorum. Buraya kadar her şey tamam LXDE masaüstü ortamını kurduktan sonra programlar açılmıyor. Terminal üzerinden de açılmamakta plasma ve Xfce4 de açılıyordu. Contenier olarak yüklediğim dağıtımların programlarını kullanamaktayım. Masaüstü ortamı değişmek istemiyorum LXDE öyle güzel çalışıyor ki çok uyumlu bunun dışında herhangi bir hata ile karşılaşmadım. LXDE de ne işlem yapmalıyım.

Distrobox içindeki dağıtımda, komutu girerek açmaya çalıştığınızda açılıyor mu?

Ayrıca, konteyneri root olarak oluşturduysanız yine sıkıntı yaşayabilirsiniz. Programın .desktop dosyasını manuel düzenlemeniz gerekiyor.
 

Yeni konular

Geri
Yukarı