Lenovo Tablet Üzerinde Termux
Android üzerinde tam tekmilli Unix olabilir mi? Olabilir. Termux ile mümkün. Daha önce bir Samsung telefon üzerinde Termux nasıl kurulur yazmıştık [1]. Şimdi aynı işlemi bir Lenovo tablet için deneyelim. Amacımız numpy, scipy, emacs ve flask gibi programları, paketleri işletebilmek olacak.
Termux'un Android üzerinde işlemediği hakkında bazı şikayetler var,
bunlar Android versiyon 12 için. Fakat yaygın kullanımdaki
versiyonların çoğunluğu 10 ve altında, bu sürümler için Termux problem
çıkartmamalı, problem varsa erişilemeyen dosya servisi problemi
olabilir, tekrar denemek problemi çözebilir, ya da gerektiği yerde
LDFLAGS
kullanımı (altta), ve python paketleri sıfırdan derlemek
yerine mevcut derlenmiş programları kullanmak seçenek olabilir.
Kuruluş
Google Play Store'daki Termux problem çıkartabilir. En iyisi [2] adresinden apk dosyasını indirip kurmak. İndirilip ya dosyaya tıklanır, ya da System | About Phone | Build number'a birkaç kere tıklandıktan sonra geliştirici mod'una geçip Developer Options altında USB Debugging hazır hale getirilir, ve Ubuntu dizüstünde
sudo apt install adb
ile Android'e USB kablosu üzerinden erişilebilen bir ortam kurmuş oluruz ve
adb install com.termux_117.apk
ile apk kurulumu yapabilir, yani üstteki dizüstünde işletilecek ve kurulum Android tablet üzerinde yapılacak.
Termux kurulduktan sonra Android üzerinde
termux-setup-storage
yapmak iyi olur. Bu $HOME
altında bir storage
dizini
oluşturuyor. Dizin içinde Android'in bildik downloads
dcim
gibi
dizinlerine sembolik bağlantılar var.
Dizüstünden direk USB kablosu ile dosya da gönderilebilir, mesela
adb push filanca.tar.gz /storage/emulated/0/Download/
Bazı durumlarda faydalı olabilir, bunu da paylaşalım.
Tablet üzerindeki Termux komut satırında ekran klavyesi ile komutlar girilebilir. Bluetooth klavyesi olanlar onu da kullanabilir. Ekran altındaki Ctrl, ESC gibi tuşların ekrandan basılmasını sağlayan kısmı iptal etmek için Ses Açmak + q tuşları yeterli. Şimdi Termux'a kurulabilen ek programlara gelelim.
pkg upgrade
yapmak iyidir, herşey güncellenir. Arada soru sorar, bunları ENTER ile geçeriz.
Alttaki paketler üzerinde pkg install
.
python3 git openssh build-essential python-numpy emacs libxml2 libxslt
cmake freetype binutils file libxapian recoll boost gettext
Bazen kurulum patlayabilir, birkaç deneme problemi çözer. Üsttekiler
tamamsa matplotlib
üzerinde pkg install
denenmeli. Eğer yardımcı
paketlerde problem çıkarsa bunları ayrı ayrı başına
LDFLAGS="-L/system/lib64" CFLAGS="-I/data/data/com.termux/files/usr/include" pip install
ekleyerek pip
ile kurmayı deneyebiliriz.
Dikkat: Kurulum tüm sistem bazında yapılıyor, hala bir izole [4] ortam
yaratmadık. Buradaki sebep `python-numpy
kurulumunun sistem bazlı
olması, diğer baz paketler de onu temel alarak yapılırsa bazlı işler
daha rahatlaşıyor, bu durumda temel paketler sistem bazlı
oluyor. Fakat problem değil, bir kez temel paketler kurulunca, artık
izole ortamlar mevcut olan paketler için sistem bazlı olana referans
yapabilir, ek pip install
paketleri hala ayrı izole ortamda
kalabilir.
pip3 install virtualenv
Ve env3
adlı ilk ortamımızı yaratalım,
virtualenv --system-site-packages -p /data/data/com.termux/files/usr/bin/python3 env3
Sistem referansı --system-site-packages
ile yapıldı.
Artık source env3/bin/activate
ile yeni ortama girilebilir.
Ek kurulumlar bu ortam icinde pip
ile,
pip install Pillow bs4 flask folium geopy ipython
Tuş Değişimi
Control tuşu Trust Bluetooth klavyelerinde rahat erişilen yerde değil, Vim, Emacs kullanıcıları bu tuşu çok kullanır, CAPS tuşunu CTRL yapabiliriz, ek olarak benim tercihim SPACE yanındaki Command yazan tuşu Left Alt yapmak. Bunun için Android seviyesinde değişiklik lazım. Şu [3] uygulama ile web üzerinde isteğe göre üretilen bir .apk bu değişimi yapabiliyor. APK üretimi arka planda derleme ile üretiliyor muhakkak, bu .apk indirilip kurulunca (Android uyarılarını dikkate almayız) tuş değişimi olur. Web sitesinde tanımları liste bazlı seçebiliriz, bahsettiğim Command (ki sisteme Meta Left olarak gözüküyor) Alt Left bağlantısı yapmak alttaki şekilde.
Bu tanım daha sonra yaratılacak .apk içine koyulacak, Download tuşuna tıklayınca apk alınır. Uygulamaya güvenmeyenler aynı sayfadaki bağlantıdan kaynak koduna gidip Android kodunu derleyebilir.
Apk kurulduktan sonra tabii klavye seçiminin yeni programı görmesi lazım; Android'de System | Languages & Input | Physical keyboard (mesela bir bluetooth klavye) seçtikten sonra Physical Keyboard altında bir layout seçimi var, buraya girip listeden "ExKeyMo Layout" seçmek lazım.
Emacs
Emacs başlatmak için $HOME
altında .emacs
yazılır, tabii ev dizini
Termux'ta farklı bir yerde, /data/data/com.termux/files/home
altında,
fakat cd
hala direk buraya gider. Benim standart .emacs
dosyam
(load-file "/falan/filan/emacs-ayarlar-1.el")
gibi tek bir satırdan ibarettir. Tüm ayarlar load-file
ile yüklenen
ikinci .el
dosyasındadır.
Nihayet Termux ekranından emacs -nw
ile favori editörümüzü başlatıyoruz,
Bazı .bashrc
ayarları
alias env3='source $HOME/Documents/env3/bin/activate'
alias emnw='source $HOME/Documents/env3/bin/activate; emacs -nw '
alias gp='git push origin master'
alias ga="git add . "
Görüldüğü gibi $HOME/Documents/env3
içinde bir izole Python 3 ortamı
var, editör başlatmadan önce onu başlatıyoruz, böylece orada kurulmuş
tüm paketler editör içindeki komutlar tarafından görülebiliyor.
Kaynaklar
[1] Android Uzerinde Linux - Termux, Samsung J6
[2] F-Droid Termux
[3] exkeymo
[4] virtualenv, Python İzole, Sanal Çalışma Alanı (Python Virtual Environment)
Yukarı