Linux Snap ve Döngü Aygıtları

Merhabalar, uzun süredir bir yazı yayımlamadım. Bunun nedeni kendimi, bir yazı yazmak için konu belirlemek, bu konu üzerinde araştırma yapmak, neyi nasıl yazacağımı planlamak ve yazıyı oluşturmak gibi benim için uğraştırıcı bir süreci tamamlamak zorunda hissetmemden kaynaklanıyor. Bu yazıda bu süreci atlayıp detay araştırma yapmadan kısa bir araştırma sonucu elde ettiğim bilgileri aklıma ilk geldiği gibi yazacağım. Belki bundan sonra bu şekilde devam ederim.

Bu yazımın konusu yeni keşfettiğim bir sistem. Linux kullanıcıları her dağıtımın kendisine ait bir uygulama deposunun olduğunu ve uygulamaların bir çoğunun bu depo aracılığı ile kurulup güncellendiğini bilir. Çoğu zaman kullandığınız programın yeni versiyonunun kullandığınız dağıtımın deposuna girmesi yeni sürümün yayımlanmasında belli bir süre sonra gerçekleşir. Kimi dağıtım daha hızlı bir şekilde yeni versiyonu hazırlarken kimisi biraz daha yavaş olur. Her dağıtımın kurulum paketinin hazırlanması da farklılıklar gösterir. Bu durum linux dünyasında gereksiz bir yük oluşturmaktadır. Uygulamanın sahibinin uygulamayı yayımlaması yetmez birde farklı dağıtımlar için paketleri hazırlaması gerekir. Eğer bunu uygulama geliştiricisi yapmazsa bu görev dağıtım geliştiricilerine kalır. Yeni keşfettiğim sistem bu sorunun önüne geçmek için büyük fırsat. Bu sistemin adı Snapcraft.

Snapcraft

Snapcraft, tıpkı composer,npm ve bower gibi bir paket yöneticisi. Linux sistemler için geliştirilmiş uygulamaların kurulumu güncellenmesi ve sistemden kaldırılması işlemlerini kolaylıkla yapmamızı sağlıyor ve popüler Linux dağıtımları tarafından destekleniyor. Snap Destekleyen Dağıtımlar

Bir uygulama kurmak için aşağıdaki gibi bir komutu çalıştırmanız yeterli (önr. libreoffice kurulumu):

[bash]sudo snap install libreoffice[/bash]

herhangi bir uygulamayı güncellemek için :

[bash]sudo snap refresh libreoffice[/bash]

tüm uygulamaları güncellemek için herhangi bir uygulama ismi vermeden refresh parametresini çalıştırmanız yeterli. Bir uygulamanın snap paketi olup olmadığını kontrol etmek için find parametresini kullanabilirsiniz.

[bash]sudo snap find <uygulama adı>[/bash]

daha fazla komut için şu sayfayı inceleyebilirsiniz: https://www.ubuntu.com/desktop/snappy

Döngü Aygıtları

Snap ile bir uygulama kurduğunuzda dosya yöneticinize yeni aygıtlar eklendiğini göreceksiniz. Bu aygıtlar döngü aygıtları olarak isimlendirilmekte (/dev/loop). Snap ile bir uygulama kurulumu yaptığınızda bu uygulama bilgisayarınıza yeni bir aygıtmış gibi kurulmaktadır. Gördüğünüz bu döngü aygıtları kurduğunuz programlara ait dosyaların bulunduğu birer flash bellek gibi bilgisayarınıza bağlanmış halidir.

Görüntü kirliliğinin önüne geçmek için bu aygıtları dosya yöneticinizde gizleyebilirsiniz.

Döngü aygıtı gizle

Döngü aygıtları hakkında daha fazla bilgi için : https://www.wikiwand.com/en/Loop_device

Devam

Composer update hatası error:14090086

Composer php için hazırlanmış bir bağımlılık yönetim uygulamasıdır. Size projenize kolay bir şekilde kütüphaneleri ekleme ve güncelleme işlemlerinde kolaylık sağlar. Sürekli güncellenen açık kaynak kütüphaneleri projenizde kullanmak ve güncel tutmak istediğinizde en büyük yardımcınız composer olacaktır. Ben composer i laravel framework ile hazırladığım projelerimi  güncel tutmak için kullanıyorum. Bu yazıda composer kullanırken karşılaştığım bir sorunun çözümünü anlatacağım. Daha önce yaşadığım bu sorunu uzun araştırmalar sonrası çözmüştüm. Bu gün bilgisayarımı formatladıktan sonra karşılaştım ve tekara araştırma yapmak zorunda kaldım. Bir daha ki sefere aramamak için ve aynı sorunla karşılacak diğer geliştiricilerin faydalanması için çözümü burada yazmaya karar verdim.

Hata composer update yada composer self-update komutunu verdiğimizde kaşımıza çıkıyor. Karşımıza çıkan hata tam olarak şöyle:

[bash][ComposerDownloaderTransportException]
The “https://packagist.org/packages.json” file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed [/bash]

Bu hata bilgisayarımızda kurulu olan PHP nin openssl yapılandırmasından kaynaklanıyor. PHP ssl sertifikasını bulmak istediği yerde bulamadığı için karşımıza bu şekilde bir hata çıkıyor. Bu hatanın çözümü için ilk önce PHP nin ssl sertifikalarını nerede bulmak istediğini öğreniyoruz. Bunun için konsolda aşağıdaki komutu çalıştırıyoruz:

[bash]php -r “print_r(openssl_get_cert_locations());”[/bash]

komutun çıktısı aşağıdakine benzer olacaktır.

[bash]Array
(
[default_cert_file] => /usr/lib/ssl/cert.pem
[default_cert_file_env] => SSL_CERT_FILE
[default_cert_dir] => /usr/lib/ssl/certs
[default_cert_dir_env] => SSL_CERT_DIR
[default_private_dir] => /usr/lib/ssl/private
[default_default_cert_area] => /usr/lib/ssl
[ini_cafile] =>
[ini_capath] =>
)
[/bash]

İkinci adım olarak aşağıdaki komut ile sertifika dosyasını indiriyoruz.

[bash]wget http://curl.haxx.se/ca/cacert.pem[/bash]

Son olarak indirdiğimiz sertifika dosyasını PHP default_cert_file dizinine kopyalıyoruz(bu dizini bir önceki komut ile öğrendik).

[bash]sudo mv cacert.pem /usr/lib/ssl/cert.pem[/bash]

Son olarak ne olur ne olmaz diye apache sunucumuzu yeniden başlatıyoruz:

[bash]sudo service apache2 restart[/bash]

Artık proje dizininize gelip composer update komutunu verdiğinizde projenizin kütüphaneleri güncellenecektir. İyi çalışmalar.

Devam