Ubuntu ARM32 üzerinde en son PostgreSQL (17.4) sürümünü başarıyla derleyip kurdum.

Bu makaledeki komutlar temel olarak PostgreSQL resmi belgelerinden alınmıştır. Bu makaledeki her komutu fiilen test ettim.

Başarıyla kurulabilen sistemi buradan görebilirsiniz PostgreSQL Yapı Çiftliği

PostgreSQL 17.4’ü Derleme ve Kurulum

1. Bir Dizin Oluşturun ve Dizine Girin

mkdir postgresql && cd postgresql
  • mkdir postgresql: postgresql adında yeni bir dizin oluşturur.
  • cd postgresql: Az önce oluşturulan postgresql dizinine girer.

2. PostgreSQL Kaynak Kodunu İndirin

wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
  • wget: Belirtilen URL’den bir dosya indirir.
  • https://..../postgresql-17.4.tar.bz2: PostgreSQL 17.4 sürümünün sıkıştırılmış kaynak kodu paketinin indirme bağlantısı. Bağlantı çalışmazsa, kendiniz yeni bir bağlantı bulabilirsiniz.

3. Kaynak Kodu Paketini Açın

tar xjf postgresql-17.4.tar.bz2
  • tar: .tar sıkıştırılmış dosyalarını işlemek için kullanılır.

  • xjf: tar dosyasını açmak için kullanılan seçenekler:

    • x: Dosyayı açar.
    • j: bzip2 sıkıştırma biçimini (.bz2) kullanır.
    • f: Açılacak dosyayı belirtir.
  • postgresql-17.4.tar.bz2: Açılacak dosyanın adı.

4. Açılan Kaynak Kodu Dizinine Girin

cd postgresql-17.4
  • Açılan PostgreSQL 17.4 kaynak kodu dizinine girer.

5. Bağımlılık Paketlerini Yükleyin

sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
  • sudo apt install: apt paket yöneticisini kullanarak paketleri yükler.
  • libssl-dev, libsystemd-dev, libxml2-dev, libreadline-dev: PostgreSQL derlemesi için gerekli geliştirme kütüphanelerini yükler; bunlar sırasıyla SSL kütüphanesi, Systemd kütüphanesi, XML kütüphanesi ve Readline kütüphanesidir.

6. Derleme Seçeneklerini Yapılandırın

./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
  • ./configure: PostgreSQL’in derleme ortamını hazırlar.
  • --prefix=/usr/local/pgsql: PostgreSQL’in kurulum dizinini /usr/local/pgsql olarak belirtir.
  • --with-openssl: OpenSSL desteğini etkinleştirir.
  • --with-libxml: XML desteğini etkinleştirir.
  • --with-systemd: Systemd desteğini etkinleştirir.

7. Kaynak Kodunu Derleyin

make -j$(nproc)
  • make: Derleme işlemini başlatır.
  • -j$(nproc): Derleme görevlerini paralel olarak yürütmek ve derleme sürecini hızlandırmak için nproc (sistemdeki CPU çekirdeklerinin sayısı) kullanır.

8. PostgreSQL’i Kurun

sudo make install
  • sudo make install: Yüklemeyi yönetici izinleriyle gerçekleştirmek için sudo kullanılır; make install, derlenen dosyaları sisteme, önceden ./configure komutunda belirtilen /usr/local/pgsql dizinine yükler.

9. Ortam Değişkenlerini Ayarlayın

Bir metin düzenleyici kullanarak 1. /etc/profile dosyasını düzenleyin:

sudo nano /etc/profile
  • sudo: Komutu süper kullanıcı (yönetici) ayrıcalıklarıyla çalıştırmayı belirtir. /etc/profile dosyasını değiştirmek yönetici ayrıcalıkları gerektirir.
  • nano: Bu, terminal ortamında dosyaları düzenlemek için yaygın olarak kullanılan bir metin düzenleyicisidir.
  • /etc/profile: Bu, sistem çapında ortam değişkenlerini ve başlatma yapılandırmasını ayarlamak için kullanılan global bir yapılandırma dosyasıdır. Tüm kullanıcılar sisteme giriş yaptıklarında bu dosyadaki ayarları yürütür.
  1. Ortam Değişkenlerini Ekleyin:
export PATH=/usr/local/pgsql/bin:$PATH
  • export: Geçerli ve alt işlemlerinde kullanılabilir hale getirmek için bir ortam değişkenini ayarlamak için kullanılır.
  • PATH: Bu, yürütülebilir dosyaların dizinlerinin bir listesini içeren bir ortam değişkenidir. Sistem, bir komutu yürütürken, komutu aramak için PATH değişkeninde listelenen dizinleri kullanır.
  • /usr/local/pgsql/bin: Bu, PostgreSQL veritabanının yürütülebilir dosyalarının dizinidir; bunu eklemek, bu dizindeki yürütülebilir dosyaların (örneğin, psql) sistem tarafından tanınacağı anlamına gelir.
  • :$PATH: Burada $PATH, zaten var olan yolu temsil eder ve yeni yol /usr/local/pgsql/bin var olan PATH‘in önüne eklenir. Bu şekilde, sistem önce yeni dizini kontrol edecek ve ardından var olan yolu kontrol edecektir.

Bu komutun amacı, PostgreSQL’in yürütülebilir dosyalarının dizinini sistemin ortam değişkeni PATH‘ine eklemektir; bu, PostgreSQL komutlarının (örneğin, psql) komut satırında doğrudan ve tam yolu sağlamaya gerek kalmadan çalıştırılabilmesini sağlar. Değiştirilen ayarlar tüm kullanıcılar için geçerli olacaktır.

PostgreSQL Veritabanını Başlatma

Bu komutlar, Linux sunucusunda PostgreSQL veritabanı sunucusunu manuel olarak yapılandırmak için kullanılır; buna PostgreSQL sistem kullanıcısı oluşturma, veritabanını başlatma, veritabanı hizmetini başlatma ve başlatıldığında otomatik olarak başlatılacak şekilde bir systemd hizmeti olarak kaydetme dahildir.

1. PostgreSQL Kullanıcısı Oluşturma

sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
  • sudo: Komutları süper kullanıcı ayrıcalıklarıyla yürütür.
  • useradd: Yeni bir kullanıcı oluşturur.
  • -m: Kullanıcının home dizinini oluşturur.
  • -U: Aynı ada sahip bir kullanıcı grubu da oluşturur.
  • -r: Bir sistem kullanıcısı oluşturur (sistem kullanıcısının UID’si 1000’den düşüktür, oturum açmak için kullanılmaz).
  • -d /var/lib/postgresql: Home dizinini /var/lib/postgresql olarak belirtir.
  • -s /bin/bash: Kabuğu /bin/bash olarak belirtir.
  • postgres: Kullanıcı adı.

Bu komut, PostgreSQL’e özel bir sistem kullanıcısı olan postgres‘i oluşturur.


2. PostgreSQL Dizininin Sahibini Değiştirme

sudo chown postgres /usr/local/pgsql
  • chown postgres /usr/local/pgsql: /usr/local/pgsql dizininin sahibini postgres kullanıcısı olarak değiştirir, böylece bu dizini okuyup yazabilir.

3. PostgreSQL Kullanıcısının Şifresini Ayarlama

sudo passwd postgres
  • passwd postgres: postgres kullanıcısının şifresini değiştirir.

4. PostgreSQL Kullanıcısına Geçme

su postgres
  • su postgres: PostgreSQL ile ilgili komutları kullanmak için postgres kullanıcısına geçer.

5. Veritabanını Başlatma

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
  • initdb -D /usr/local/pgsql/data: /usr/local/pgsql/data dizininde veritabanı depolamasını başlatır.

6. PostgreSQL Veritabanını Başlatma

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
  • postgres -D /usr/local/pgsql/data: Veritabanını postgres işlemiyle başlatır, veriler /usr/local/pgsql/data dizininde depolanır.

7. Başka Bir Terminal Oturumunda Veritabanına Girme

su postgres
/usr/local/pgsql/bin/psql
  • psql: PostgreSQL’in komut satırı etkileşimli aracı, veritabanı kabuğuna girer.

8. Veritabanı Kullanıcısının Şifresini Ayarlama

ALTER USER postgres WITH PASSWORD 'your_new_password';
  • Veritabanı kullanıcısı postgres‘in şifresini değiştirir.

9. systemd Hizmeti Oluşturma

sudo nano /etc/systemd/system/postgresql.service
  • nano /etc/systemd/system/postgresql.service: PostgreSQL’in bir hizmet olarak çalışabilmesi için systemd yapılandırma dosyasını düzenler.

Yapılandırma dosyasının içeriği:

[Unit]
Description=PostgreSQL server
#Documentation=man:postgres(1)
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
User=postgres
ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=infinity

[Install]
WantedBy=multi-user.target
  • Description=PostgreSQL server: Bu hizmetin PostgreSQL sunucusu olduğunu açıklar.
  • After=network-online.target: Ağ bağlantısı kullanılabilir hale geldikten sonra PostgreSQL’i başlatır.
  • User=postgres: postgres kullanıcısı olarak çalışır.
  • ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data: PostgreSQL sunucusunu başlatır.
  • ExecReload=/bin/kill -HUP $MAINPID: Yeniden yükleme sırasında HUP sinyali gönderir.
  • KillMode=mixed: Karma sonlandırma modu.
  • KillSignal=SIGINT: PostgreSQL işlemini sonlandırmak için kullanılan sinyal.
  • TimeoutSec=infinity: Zaman aşımı sonsuz olarak ayarlanır.

10. systemd Hizmetini Etkinleştirme

sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
  • daemon-reload: Yeni postgresql.service‘in etkinleşmesi için systemd yapılandırmasını yeniden yükler.
  • start postgresql: PostgreSQL hizmetini başlatır.
  • status postgresql: PostgreSQL’in çalışma durumunu kontrol eder.
  • enable postgresql: PostgreSQL’in başlatıldığında otomatik olarak başlamasını sağlar.

Bu komutların amacı:

  1. PostgreSQL’i çalıştırmak için özel bir postgres kullanıcısı oluşturmak.
  2. Veritabanı depolama dizinini başlatmak.
  3. PostgreSQL veritabanını başlatmak ve psql etkileşimli komut satırına girmek.
  4. PostgreSQL’in bir sistem hizmeti olarak çalışması ve önyüklemede otomatik olarak başlamayı desteklemesi için systemd‘yi yapılandırmak.

Bu şekilde PostgreSQL sunucusu normal şekilde çalışabilir ve sistem başlatılırken otomatik olarak başlatılabilir.

Referans Materyaller

PostgreSQL: Belgeler: 17: Bölüm 17. Kaynak Kodundan Kurulum

Bu Web Sayfasının Diğer Sürümleri

Bu makalenin çeşitli dil sürümleri mevcuttur.

Yorum yapmak isterseniz, lütfen aşağıdaki web sayfasını ziyaret edin:

ZH EN ZH-TW JA

Bu web sayfaları yalnızca görüntülemeyi destekler ve yorum veya mesaj göndermeyi desteklemez, ancak daha fazla dil seçeneği sunar ve daha kısa yükleme sürelerine sahiptir:

ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO

Bu makale, yapay zeka tarafından Çince (Basitleştirilmiş) dilinden Türkçe’ye çevrilmiştir.