Ubuntu 18.04 üzerine PostgreSQL 12 kurulumu

17 May

PostgreSQL veritabanı, Linux gibi tamamen ücretsizdir ve açık kaynak kodludur. Bu yazıda Linux Ubuntu 18.04 dağıtımı üzerine PostgreSQL kurulumu anlatılmaktadır.

Ubuntu 18.04 dağıtımı üzerine Postgresql 12 kurulumu yapmak için öncelikle repository paket versiyonunu kontrol etmek gerekmektedir. Repository paket kontrolünün nasıl yapıldığına bir önceki yazıdan ulaşabilirsiniz.

PostgreSQL Kurulumu

Ubuntu sürümünüzde bulunan PostgreSQL sürüm istediğiniz sürüm değilse, güncellemek için PostgreSQL Apt Repository kullanılabilir. Bunun için öncelikle yapılması gereken:

/etc/apt/sources.list.d/pgdg.list

dosyası oluşturmaktır. Bu dosyanın içerisine aşağıdaki satır eklenmelidir.

deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main

Daha sonra depo imzalama anahtarını (signing key) içe aktarılmalı ve paket listeleri güncellenmelidir.

sudo apt-get update

Artık ortam postgresql 12 yüklemesi için hazır durumdadır. Yükleme komutu:

sudo apt-get -y install postgresql-12 postgresql-client-12

Yükleme tamamlandığında, postgresql servisini başlatmak için gerekli komut:

sudo systemctl start postgresql

artık servis durumu kontrol edilebilir.

sudo systemctl status postgresql

PostgreSQL Bağlantısı

PostgreSQL kurulumu sonrasında Ubuntu kullanıcılarına postgres adında bir sistem kullanıcısı otomatik olarak oluşturulur. Başlangıçta, diğer kullanıcılar oluşturulana kadar bu kullanıcısı ile PostgreSQL’e bağlanmanız gerekir.

sudo su postgres

komutu ile postgres kullanıcısına geçilerek psql komutu çalıştırıldığında artık veritabanı komutlarını kullanabilirsiniz.

\l

komutu ile veritabanları listelenebilir.

\c postgres

komutu ile postgres veri tabanına bağlanabilirsiniz. (Kurulum sırasında postgres veritabanı otomatik olarak oluşturulur.)

Postgresql veritabanını konsol ortamından yönetmek biraz kullanışsızdır. Bunun yerine pgAdmin, Datagrip gibi araçlar tercih edilmelidir.

PostgreSQL Remote Ayarları

Postgresql sunucusu dışından bağlantı yapabilmek için uzak bağlantı ayarlarını yapmak gerekmektedir. Bu ayarlar aşağıdaki dosyada bulunmaktadır.

/etc/postgresql/12/main/postgresql.conf

Bu dosya vim editörü ile açılarak

listen_addresses = '*'

satırı açık konuma getirilmelidir.

Daha sonra,

etc/postgresql/12/main/pg_hba.conf

dosyasında ip tanımlaması yapılmalıdır. (hba: host based authentication)

  • “host   all   all   212.0.103.8/32   md5″ şeklinde ayarlama yaparsanız istediğiniz tek bir adresten erişim sağlayabilirsiniz. Bu ip dışından bağlantı sağlanamaz.
  • “host   all   all   0.0.0.0/0          md5″ şeklinde ayarlama yaparsanız herhangi bir ip üzerinden sunucuya bağlanabilirsiniz. Burada password authentication kimlik doğrulama yöntemi ve  md5 algoritması kullanılmıştır. (Postgresql veri tabanında ayrıca trust, ident, peer, GSSAPI, LDAP kimlik doğrulama yöntemleri de mevcuttur.)

(Postgre

Bu ayarların yapıldıktan sonra aktif olabilmesi için postgresql servisinin yeniden başlatılması gerekmektedir.

sudo systemctl restart postgresql

Artık veritabanına uzak bağlantı sağlanabilir.

Ubuntu repository paketi sürüm kontrolü

16 May

Window gibi işletim sistemlerinde, kullanmak istediğimiz programlar exe, msi gibi paketler halinde dağıtılırken, Ubuntu gibi sistemlerde, ihtiyacınız olan programlar ve kitaplıklar .deb dosyalarında paketlenir ve dağıtılır. Bu dosyalar indirilebilir veya CD ortamında size gelebilir.

Ubuntu gibi sistemlerde “repository” diye adlandırılan paket depoları mahiyetinde kullanılan sunucular bulunmaktadır. Bu depolarda bulunan paketlere genellikle Synaptic gibi araçlarla erişirsiniz. Bu araçlar, sisteminizde yüklü olan paketleri ve depoda yüklemeye hazır durumda bulunan paketlerin listeler.

Ubuntu kurulduğunda mevcut Synaptic repository listesinde, kullanıcılara gerekli olan  programların o güne kadar güncellenmiş sürümleri bulunmaktadır. Ancak programlar işletim sistemlerinden daha hızlı gelişim gösterebilmektedirler. Ubuntu ortamına kurulmak istenen bir program “apt-get install” komutu ile yüklenirse, listedeki son sürümü indirip yüklenir. Bu nedenle, bir programı yüklemeden önce versiyon kontrolü yapmak faydalı olabilir. Örneğin postgresql versiyon kontrolü için kullanılacak komut şu şekildedir:

apt-cache policy postgresql

Bu komut çalıştırıldığında, sistemdeki postgresql durumunu listeler.

  • Listede 3 farklı sürümden bahseder. Bunlar;  10.13-1.pgdg18.04, 10.12-0ubuntu0.18.04.1 ve  10.3-1. Ayrıca hangi depolardan geldiklerini de gösterir.
  • Installed (none) bilgisi bize sistemde yüklü bir postgresql kurulumu olmadığını gösterir.
  • Candidate bilgisi, şu anda apt-get install komutu çalıştırıldığında yüklenecek sürüm bilgisini verir.

Ubuntu yeni kullanıcı ekleme işlemleri

12 May

Ubuntu ortamında kullanılan “sudo” komutu, “super user do” anlamına gelmektedir. Yani sudo komutunu kullanmak için yönetici yetkilerine sahip olmak gerekmektedir. Bir kullanıcının super user olması için “sudo” grubuna dahil olması gerekmektedir. Öncelikle bir kullanıcı oluşturulması gerekmektedir.

1. Giriş

sudo yetkili kullanıcıların oluşturulabilmesi için öncelikle root kullanıcısı ile ya da root yetkili bir kullanıcı ile giriş yapmak gerekmektedir.

ssh root@server_ip_address

2. Kullanıcı hesabı oluştur

Yeni kullanıcı oluşturmak için adduser ve useradd komutları kullanılır.

useradd ve adduser komutları arasında ne fark var?

useradd , aslında sistemle derlenmiş yerel bir binary dosyadır. adduser ise arka tarafta useradd binary dosyasını kullanan bir perl script’tir.

2.1  adduser komutu ile kullanıcı ekle

Yeni kullanıcı oluşturma işlemi adduser komutu ile yapılmaktadır. Örneğin bucuncu adında bir kullanıcı oluşturmak için gerekli komut aşağıdaki şekildedir.

adduser bucuncu

Komut çalıştırıldığında aşağıdaki işlemler gerçekleştirilerek kullanıcı hesabı ve dosyaları oluşturulur.

root@localhost:~# adduser bucuncuAdding user `bucuncu’ …
Adding new group `bucuncu’ (1001) …
Adding new user `bucuncu’ (1001) with group `bucuncu’ …
Creating home directory `/home/bucuncu’ …
Copying files from `/etc/skel’ …
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for bucuncu
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y

Parolayı girdikten sonra, kullanıcı için otomatik olarak bir giriş dizini oluşturur, giriş dizinindeki birkaç yapılandırma dosyasını kopyalar ve yeni kullanıcının bilgilerini ayarlamanız istenir. Tüm bu bilgileri boş bırakmak istiyorsanız, varsayılanları kabul etmek için ENTER tuşuna basmanız yeterlidir..

adduser komutu, kullanıcı hesabının otomatik bir şekilde oluşturan, kullanıcı dostu bir komuttur.

2.2 useradd komutu ile kullanıcı ekleme

useradd komutu, parametreler kullanarak kullanıcı oluşturma işlemi için kullanılan komuttur.

useradd bucuncu -m -s /bin/bash -g users -G dbusers

Bu komut ile kullanıcı oluşturulurken, kullanıcı için gerekli olan tüm parametreler elle girilmelidir.

  • -m parametresi: –create-home anlamına gelir ve eğer daha önce oluşturulmamış ise home/bucuncu dizinini oluşturur.
  • -s parametresi: –shell anlamına gelir. Kullanıcının shell de oturum açması için gereklidir. Bu paramtreyi kullanmadan bir kullanıcı oluşturursanız, /etc/passwd içerisinde kullanıcıyı bucuncu:x:1000:1000::/home/bucuncu:/bin/sh şeklinde bulunur. Bu şekilde oturum açtığınızda terminalde yalnızca $: şeklinde bir terim görürsünüz. Eğer bu parametreyi kullanırsanız, /etc/passwd içerisinde kullanıcıyı bucuncu:x:1000:1000::/home/bucuncu:/bin/bash şeklinde görebilirsiniz. Bu şekilde oturum açtığınızda terminalde komut satırını bucuncu@localhost:~# şeklinde görebilirsiniz.
  • -g parametresi: –gid anlamınag elir. Yani grup id olarak adlandırılabilir.
  • -G parametresi: –groups anlamına gelir. Kullanıcıyı birden çok gruba eklemek için gereklidir.

useradd komutu için gerekli bütün parametrelere buradan ulaşabilirsiniz.

3. Kullanıcıyı sudo grubuna ekle

Ubuntu sistemlerinde varsayılan olarak, sudo grubunun üyelerine sudo erişim yetkisi verilir. sudo grubunda olmayan kullanıcılar sudo komutunu kullanamazlar. Çünkü sudo komutu yönetici yetkilerine sahip işlemler için gereklidir.Oluşturulan kullanıcıyı sudo grubuna eklemek için usermod komutu kullanılır.

usermod -aG sudo bucuncu

4. Yeni kullanıcı ile giriş yap

Oluşturulan yeni kullanıcı ile giriş yapmak için gerekli komut aşağıdaki şekildedir.

ssh bucuncu@localhost

5. Kullanıcı şifresini değiştir

Kullanıcı şifresini değiştirmek için:

sudo passwd bucuncu

komutu kullanılabilir. Komut çalıştığında iki defa yeni şifre girmeniz istenir.

Sonuç

Sudo yetkilerine sahip bir kullanıcı oluşturmayı görmüş olduk. Bu işlemi gerçekleştirirken  useradd ve adduser komutlarının kullanılabileceğini ve bu komutlar arasındaki farkları öğrenmiş olduk. Artık bu kullanıcı hesabıyla Ubuntu sunucunuza giriş yapabilir ve yönetici komutlarını çalıştırmak için sudo komutunu kullanabilirsiniz.

Linus Torvalds’ın Meşhur E-posta’sı

24 Nis

Linux işletim sisteminin temelini atan Linus Torvalds, bunu 28 yıl önce mütevazi bir e-posta ile “comp.os.minix” kullanıcı grubuna duyurdu.


Diğer programcılara bir e-posta göndererek ve yardımlarını istedi. O zamanlar, Linux’u GNU gibi büyük veya profesyonel olmayacak bir hobi projesi olarak tanımladı. Orijinal mail buradan ulaşarak okuyabilirsiniz.

Basit bir proje olarak başlatılan Linux projesi, bugün bilişim dünyasını çok önemli noktalara taşımıştır.

Bir sonraki yazıda görüşmek dileğiyle.

Ubuntu server üzerine RabbitMQ kurulumu

24 Ağu

RabbitMQ dağıtık uygulamaların (distributed application) oluşturulmasında ihtiyaç duyulan mesajlaşma kuyruğunu yöneten bir uygulamadır. Uygulamanın görevi günlük hayatımızda dolmuş ve otobüs duraklarına gelen müşterileri araçlara yönlendiren görevlilere(simsarlara) benzetildiğinden kısaca message broker(mesaj simsarı) olarak adlandırılmıştır.

RabbitMQ resmi sayfasında ürün özelliklerinden kısaca şu şekilde bahsedilmektedir.

  • Robust messaging for applications: Uygulamalarınız için sağlam bir mesajlaşma altyapısı.
  • Easy to use: Kullanımı kolay.
  • Runs all major operating systems: Yaygın kullanılan işletim sistemlerinin hepsinde çalışır.
  • Supports a huge number of developer platforms: Çok sayıda yazılım geliştirici platformunu destekler.
  • Open source and commercially supported: Açık kaynak ve ticari lisanslı seçenekleri destekler.

RabbitMQ uygulaması Erlang programlama dili ile geliştirilmiştir. Bu nedenle kurulum yapılacak olan sistemlerde öncelikle Erlang kodlarını çalıştırabilen altyapının kurulması gerekmektedir.

RabbitMQ Ubuntu Kurulumu

Ubuntu üzerinde kurulum gerçekleştirmek için apt komutu kullanılabilir. (Ubuntu 14.04 veya sonrası sürümlerde).

Öncelikle Ubuntu repository paket listelerini güncelleyerek en son paketlerin listesini elde ederek başlayabilirsiniz.

sudo apt-get update

Ardından RabbitMQ paketini indirerek kurulumu gerçekleştirebilirsiniz.

sudo apt-get install rabbitmq-server

RabbitMQ sürümünü öğrenmek için kullanılacak olan komut:

sudo rabbitmqctl status

Bu komut çalıştırıldığında gelen listede versiyon numarası bulunur.

{rabbit, “RabbitMQ”, 2.7.1}

Kurulum işlemi gerçekleştirildikten sonra RabbitMQ servisinin çalışır duruma getirildiğini görebilirsiniz.

sudo service –status-all

RabbitMQ mesajlarını görüntüleyebilmek için bir plugin geliştirilmiştir. Bu plugin sayesinde web arayüzü üzerinden mesajlaşma trafiğini izleyebilirsiniz. Plugin adı rabbitmq_management şeklindedir. Bu plugin aktif edilmeden kullanılamaz. Aktif etmek için kullanılacak komut:

sudo /usr/lib/rabbitmq/lib/rabbitmq_server-2.7.1/sbin/rabbitmq-plugins enable rabbitmq_management

Plugin konfigürasyonu değiştiği için rabbitmq-server servisinin yeniden başlatılması gerekmektedir.

sudo service rabbitmq-server restart

Bu işlemi gerçekleştirdikten sonra aktif RabbitMQ plugin listesini görüntüleyebilirsiniz.

 sudo /usr/lib/rabbitmq/lib/rabbitmq_server-2.7.1/sbin/rabbitmq-plugins list

rabbitmq-management

Artık web arayüzü aktif edilmiştir. Web arayüzüne erişim için internet tarayıcınızdan:

http://sunucunuzun-ip-adresi:55672/

RabbitMQ 2.7.1 sürümünde web arayüzü varsayılan olarak 55672 portundan aktif edilmektedir.

rabbitmq-management-web

Güncelleme: RabbitMQ 3.6.5 sonrası sürümlerde 15672 portundan aktif edilmektedir.

Apache Benchmark ab başarım ölçme aracı

30 Mar

Bu yazıda Aapche HTTP sunucusunun faydalı araçlarından biri olan ab (apache benchmarking tool) sunucu ölçümleme aracını incelemeye çalışacağız.

ab(ApacheBench) ölçümleme aracı, Linux veya Windows ortamında kurulu olan Apache sunucunuzun ek bir özelliğidir. Bu özellik sayesinde sunucunuzun stres altında nasıl cevaplar verdiğini inceleyebilirsiniz. Sunucunuza aynı anda istediğiniz kadar istek gönderebilirsiniz. Kaç kullanıcıdan sonra kriz durumunun oluşabileceğini test edebilirsiniz.

ab aracı, konsol ortamından komutlarla yönetilen bir araçtır. Şimdi örnek bir komutun nasıl kullanılacağını görmeye çalışalım. Örneğin HTTP sunucunuzda bulunan bir web sitenize aynı anda işleme sokulacak “c” tane işlemi “n” kez  gönderiyormuş gibi bir test etmeye çalışalım.

Örnek işlemi gerçekleştirdiğim sistem Linux Ubuntu server, Apache2 sürümüdür.

Örnek Komut: ab -n 50 -c 50 http://localhost/myweb/

  • n = 50 talep sayısı.
  • c = 50 tane aynı anda işleme sokulacak talep.

Kullanılacak parametreleri ve ne işe yaradıklarını görmek için buradan faydalanabilirsiniz.

ab (ApacheBenchmark)
ab (ApacheBenchmark) sonuçları

Sonuçları incelediğimizde, en uzun süren talebin 134ms olduğunu görüyoruz. Sonuç ekranında toplam transfer edilen veri miktarından süre bazlı istatistiklere kadar birçok bilgi bulunmaktadır.

ab aracı ne değildir?

ab bir hacking aracı değildir. Birilerinin sunucusunu komaya sokmak için kullanılan bir araç değildir. Dış dünyaya açılan sunucularda art arda gelen taleplerin başıboş talepler olduğunu anlayan güvenlik önlemleri mevcuttur. Normal olarak hiçbir insan aynı anda onlarca talep gönderemez. Ayrıca sunucuya gelen taleplerde bir anormallik olduğunu anlayan birimler IP adresinizden sizi tespit edebilirler.

ab aracı, kendi sisteminizi stres testlerinden geçirmek istediğinizde kullanabileceğiniz son derece kullanışlı ve faydalı bir araçtır. Değişik işlevler sunan parametreleriyle testlerimizi farklı varyasyonlarla gerçekleştirebilmemize olanak sağlar.

Windows 8.1 Update Sonrası VMware Network Sorunu

8 Mar

Bu yazıda beni saatlerce uğraştıran bir VMware network sorundan bahsetmek istiyorum. Linux ile ilgili  çalışmalarımı yapmak üzere Windows 8 yüklü makinemde VMware üzerinde Ubuntu işletim sistemini kurmuştum. Bir gün, windows 8 için güncelleme uyarısını aldım ve 8.1 dahil olmak üzere bütün güncelleştirmeleri yükledim. Aradan bir kaç gün geçti ve Linux üzerinde bir deneme yapmam gerekti. Sanal makineye çalıştırdığımda bir de ne göreyim, ağ bağlantısı sağlanamıyor uyarısı! Sanal makine ayarlarından Network Adapter sekmesindeki ayarlar aynı duruyor fakat ağ bağlantısı bir türlü sağlanmıyordu.

Virtual Mechine Settings
Virtual Mechine Settings

Windows ağ bağlantı ayarlarında da bir anormallik olmadığını gördüm. Sanal makine ayarlarında denemedik varyasyon bırakmadım fakat nafile. Bir türlü sorunu gideremedim. En sonunda VMware ana penceresinden Edit > Virtual Network Editor penceresi gözüme çarptı.

Virtual Network Editor
Virtual Network Editor

Bu pencerede VMnet1 ve VMnet8 tanımlanmış durumdaydı. Ancak VMnet0 Bridge Type tanımlı değildi. Pencerenin en altında bulunan Restore Default düğmesine tıkladım ve devam ettim. İşlem tamamlandığında Virtual Network Editor penceresi aşağıdaki gibi oldu.

Virtual Network Editor
Virtual Network Editor

Yeniden sanal işletim sistemini çalıştırdığımda ağ bağlantı sorunundan kurtulduğumu gördüm. İnternet bağlantısını başarılı bir şekilde sağlamıştım.

Bu sorunu Windows 8.1 update ile ilişkilendirmemin sebebi, diğer iki bilgisayarda da windows 8.1 update sonrası aynı sorunu yaşamış olmamdı. Windows 8.1 kurduktan sonda VMware kurulumu yapanlar böyle bir sorun yaşamayacaktır. Tekrar hatırlatmalıyım ki bu sorun VMware kurulu makinede 8.1 güncellemesi yaptıktan sonra oluştu.

Umarım faydası dokunur.

Ubuntu üzerinde Eclipse JEE menü sorunu

24 Kas

Ubuntu üzerinde java çalışmak isteyenlerin kurduğu Eclipse JEE versiyonu  üzerinde yaşayacakları bir sorunun çözümü üzerinde durmak istiyorum. Sanal makinemde kurulu olan ubuntu-13.10-desktop-amd64 sürümlü işletim sistemi üzerine Eclipse JEE versiyonunu kurarak işe başladım. Masaüstüne eclipse kısayolunu oluşturdum. Programı çalıştırdığımda aynı sorunla bende karşılaştım. Sorun, Eclipse açıldığında menülerin gözükmemesiydi.

Eclipse JEE
Eclipse JEE

Resimde de görüldüğü şekliyle üst(File, Edit,…) menü gelmemişti. İnternetten çözüm yollarını biraz araştırdıktan sonra sonuca ulaştım.

Öncelikler Terminal’i çalıştırarak Desktop dizinine geçtim. Yönetici yetkileri ile Eclipse masaüstü dosyasını açtım. Aşağıdaki komut ile masaüstü kısayolu dosyasını açabiliyoruz.

sudo gedit EclipseJEE.desktop

Eclipse Menu Onarımı
Eclipse Menu Onarımı

Açılan desktop dosyası içerisine şu komutu girdim: Ecex=env UBUNTU_MENUPROXY=0 /opt/eclipse-jee/eclipse

Dosyayı kaydedip programı yeniden çalıştırdığımda üst menü göründü.