Linux Mint 18.3 Xfce - PostgreSQL & pgAdmin4 Kurulumu
Merhabalar, bu yazımda Linux Mint 18.3 Xfce sisteminde PostgreSQL & pgAdmin4 kurulumunu ve kurulum sırasında karşılaşabileceğimiz bazı hataları çözüp program kurulumuna nasıl devam edeceğimizi anlatmaya çalışacağım.
PostgreSQL Install
1- sudo apt-get install postgresql postgresql-contrib2- service postgresql status
//Komutu ile postgresql durumunu kontrol ediyoruz.
3- sudo su postgres
//postgresql moduna geçtik.
4- psql
// Komutu ile postgres shell moduna geçtik.
5- postgres# \du
// Komutu ile veritabanı user'larını görebiliriz.
6- postgres# ALTER USER postgres WITH PASSWORD 'furkan123';
// Komutu ile var olan superuser postgres kullanıcısına furkan123 şifresini verdik.
7- postgres# CREATE USER user_1 WITH PASSWORD 'furkan123';
// Komutu ile yeni bir kullanıcı oluşturup bu kullanıcıya furkan123 şifresini verdik. "\du" komutu ile kullanıcılarımıza göz atabiliriz.
8- postgres# ALTER USER user_1 WITH SUPERUSER;
// Bu komut yeni oluşturduğumuz user_1 kullanıcısını superuser yaparak tüm hakları kullanmasını sağlar.
9- postgres# DROP USER user_1;
// Komutu oluşturduğumuz user_1 kullanıcısını siler.
pgAdmin4 Install
Kullanacağımız komutları sırasıyla linux terminalinde uygulayalım;
1- sudo apt install python-pip virtualenv libpq-dev
2- root olmadan : "cd /opt" dizinine giriyoruz.
3- /opt dizinin içinde iken : "sudo mkdir enviromentpy"
4- "sudo chown furkan:furkan enviromentpy" şeklinde dosya sahibini değiştirelim.
5- "cd enviromentpy" dizinine girelim.
6- "virtualenv pgadmin4" şeklinde sanal ortam oluşturuyoruz.
VirtualEnv, projelerinizde gerekli olan paketleri sistemden bağımsız bir şekilde kurup, kullanmanızı sağlayacak sanal ortam sağlayan bir yapıdır.
***virtualenv oluştururken aşağıdaki hatayı alırsak şu komutları uygulayalım;
**
(ERROR) OSError: Command /home/ubuntu/.virtua...skdeploy/bin/python2 - setuptools pkg_resources pip wheel failed with error code 1
Komutlar;
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
yukarıdaki komutları export ettikten sonra tekrar "vurtualenv pgadmin4" komutunu denediğimizde işlemin sonunda "Intalling setuptools, pkg_resources, pip, wheel... done." şeklinde çıktı veriyor ise virtualenv işlemi tamamlanmıştır.
Yüklenilen setuptools, pkg_resources, pip ve wheel hakkında bilgi verelim;
setuptools : Python standart kütüphane distutillerini (dağıtım yardımcı programlarını) geliştirerek Python projelerini paketlemeyi kolaylaştırmak için tasarlanmış bir paket geliştirme süreci kütüphanesidir.
pkg_resources : Python'daki paket veya sürüm bağımlılıklarını bulmak ve yönetmek için kullanılan bir modüldür. Sıkıştırılmış .egg dosyalarının içindekiler de dahil olmak üzere paketlenmiş dosyalara ve kaynaklara erişir.
pip : Python’da Pip paket yöneticisidir. Python’da modülleri uygulamalarınıza dahil edebilmeniz için kurduğunuz paket yöneticisi. Halihazırda kullanmanızı bekleyen binlerce python modülunuzu çok basit bir şekilde projenize entegre etmenizi sağlar.
whell : Python için yerleşik bir paket formatıdır. Bir whell özel olarak biçimlendirilmiş bir dosya adı ve .whl uzantılı ZIP biçimindeki bir arşivdir. *PEP 376 uyumlu bir yükleme için tüm dosyaları disk biçimine çok yakın bir şekilde içerecek şekilde tasarlanmıştır.
*PEP : Python Geliştirme Önerisi anlamına gelir. PEP, Python topluluğuna bilgi veren veya Python veya süreçleri veya ortamı için yeni bir özellik tanımlayan bir tasarım belgesidir. PEP, özelliğin kısa bir teknik spesifikasyonunu ve özellik için bir gerekçe sunmalıdır. PEP'lerin yeni yeni özellikler önermek, bir konudaki topluluğun girdisini toplamak ve Python'a giden tasarım kararlarını belgelemek için temel mekanizmalar olmasını istiyoruz. PEP yazarı, topluluk içinde fikir birliğine varmaktan ve muhalif fikirleri belgelemekten sorumludur.
"Intalling setuptools, pkg_resources, pip, wheel... done." çıktınısı aldıktan sonra devam ediyoruz;
7- /opt/enviromentpy dizinin içinde iken : "cd pgadmin4" dizinine geçiyoruz.
8- Burada "source bin/activate" komutunu çalıştırıyorum. Bu komutu çalıştırmak için geliştirme ortamı için oluşturduğum sanal klasör(pgadmin4) içerisinde olmam gerek.Zaten şuan proje dizinimin içindeyim. Eğer bu klasör içerisinde değilsem source pgadmin/bin/activate gibi bir komut yazmam gerekirdi.
Bu komutu yazdığınızda terminaliniz, parantez içerisinde (pgadmin4) yazan bir hale gelecek. Artık geliştirme ortamınız hazır. Artık burada pip ile istediğiniz paketi kurabilirsiniz. Burda kurduğunuz paketler bilgisayarınıza yüklenmez sadece bu projeye yüklenir ve projenizi sildiğinizde de bilgisayarınızdan silinmiş olur.
Eğer bu geliştirme ortamından çıkmak isterseniz de "deactivate" komutunu yazmamız yeterli.
"source bin/activate" yazdığımda terminalim son olarak şu şekilde görünecektir;
"(pgadmin) furkan@xcoder:/opt/enviromentpy/pgadmin4$"
9- Bu adımda ise "https://www.postgresql.org/ftp/pgadmin/pgadmin4/v3.3/pip/" adresinde bulunan "pgadmin4-3.3-py2.py3-none-any.whl" dosyasını bilgisarımıza indiriyoruz.
10- " cp ~/İndirilenler/pgadmin4-3.2-py2.py3-none-any.whl . " komutu ile indirmiş olduğumuz .whl uzantılı pgadmin4 arşivini, komutun sonuna ". (nokta)" koyarak bulunduğum dizine ( (pgadmin) furkan@xcoder:/opt/enviromentpy/pgadmin4$ ) kopyalamış oluyorum.
11- source bin/activate komutu sayesinde artık pip ile .whl uzantılı pgadmin4 paketini kurabiliyorum. Bunun için bulunduğum "(pgadmin) furkan@xcoder:/opt/enviromentpy/pgadmin4$" dizininde şu komutu çalıştırıyorum "pip install pgadmin4-3.2-py2.py3-none-any.whl" ve pgadmin paketim sanal dizinime kurulmuş oluyor.
Kurulan dosyalarımı görmek için "(pgadmin) furkan@xcoder:/opt/enviromentpy/pgadmin4$" dizininde "cd lib/python2.7/site-packages/pgadmin" diyerek .whl uzantılı arşivimin "pgadmin" isimli yeni klasöre kurulmuş olduğunu görüyoruz ve dosyaları ise "ll" komutu ile görebiliriz.
12- Bu adımda "(pgadmin) furkan@xcoder:/opt/enviromentpy/pgadmin/lib/python2.7/site-packages/pgadmin$" dizininde iken "cp config.py config_local.py" komutunu çalıştırıyoruz.
13- Son adımda ise "(pgadmin) furkan@xcoder:/opt/enviromentpy/pgadmin/lib/python2.7/site-packages/pgadmin$" dizininde iken "python pgAdmin4.py" komutunu yazarak, pgAdmin4'ü başlatmış oluyorum. İlk olarak bizden pgAdmin4 login ekranı için e-mail ve password girmemizi isteyecek. Bilgileri girdikten sonra browserımıza "localhost:5050" yazdıktan sonra pgAdmin4 arayüzü karşımıza gelmiş olacaktır.
"python pgAdmin4.py" komutundan sonra aşağıdaki hata karşımıza gelebilir;
PermissionError: [Errno 13] Permission denied: '/var/lib/pgadmin'"
bu şekilde bir hata ile karşılaşırsak, pgAdmin'in kurulumda bazı dizinleri oluşturamadığı anlamalıyız. Bizim yapmamız gereken oluşturulmamış olan bu dizinleri manuel olarak oluşturmak olacaktır. Bunun için aşağıdaki komutları terminalimizde uygulayalım;
sudo mkdir /var/lib/pgadmin
sudo mkdir /var/log/pgadmin
sudo mkdir /var/lib/pgadmin/sessions
sudo mkdir /var/lib/pgadmin/storage
sudo chmod 777 -R /var/log/pgadmin/
sudo chmod 777 -R /var/lib/pgadmin/
bu komutları uyguladıktan sonra artık python pgAdmin4.py komutunu sorunsuz bir şekilde çalıştırarak pgadmin arayüzüne erişebiliriz.
- Örneğin PHP ile PostgreSQL bağlantı sırasında Apache Server "Error : could not find driver" hatası verdiğide "sudo apt-get install php7.0-pgsql" komutu ile PHP 7 için postgresql paket bağımlılığı kurulmalıdır.
pgAdmin4 Start
* Bilgisayarımızı başka bir zamanda açtığımız zaman pgAdmin4'ü çalıştırmak istediğimizde sırası ile aşağıdaki komutları uygulayalım;
furkan@xcoder ~ $ cd /opt/environment/pgadmin4/lib/python2.7/site-packages/pgadmin4
furkan@xcoder /opt/environment/pgadmin4/lib/python2.7/site-packages/pgadmin4 $ export LC_ALL="en_US.UTF-8"
furkan@xcoder /opt/environment/pgadmin4/lib/python2.7/site-packages/pgadmin4 $ export LC_CTYPE="en_US.UTF-8"
furkan@xcoder /opt/environment/pgadmin4/lib/python2.7/site-packages/pgadmin4 $ virtualenv pgadmin/
furkan@xcoder /opt/environment/pgadmin4 $ source bin/activate
(pgadmin4) furkan@xcoder /opt/environment/pgadmin4 $ cd lib/python2.7/site-packages/pgadmin4
(pgadmin4) furkan@xcoder /opt/environment/pgadmin4/lib/python2.7/site-packages/pgadmin4 $ python pgAdmin4.py
Teşekkürler kardesim cok işime yaradı
YanıtlaSil