আমি সফলভাবে Ubuntu ARM32-এ সর্বশেষ PostgreSQL (17.4) কম্পাইল এবং ইনস্টল করেছি।

এই আর্টিকেলের কমান্ডগুলো মূলত PostgreSQL-এর অফিসিয়াল ডকুমেন্টেশন থেকে নেওয়া হয়েছে। আমি নিজে এই আর্টিকেলের প্রতিটি কমান্ড পরীক্ষা করেছি।

এখানে সফলভাবে ইনস্টল করা যায় এমন সিস্টেম দেখতে পাবেন PostgreSQL বিল্ড ফার্ম

PostgreSQL 17.4 কম্পাইল এবং ইনস্টল করা

1. ডিরেক্টরি তৈরি করুন এবং ডিরেক্টরিতে প্রবেশ করুন

mkdir postgresql && cd postgresql
  • mkdir postgresql: postgresql নামের একটি নতুন ডিরেক্টরি তৈরি করুন।
  • cd postgresql: সদ্য তৈরি করা postgresql ডিরেক্টরিতে প্রবেশ করুন।

2. PostgreSQL সোর্স কোড ডাউনলোড করুন

wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
  • wget: নির্দিষ্ট URL থেকে ফাইল ডাউনলোড করুন।
  • https://..../postgresql-17.4.tar.bz2: PostgreSQL 17.4 সংস্করণের কম্প্রেসড সোর্স কোড প্যাকেজের ডাউনলোড লিঙ্ক। যদি লিঙ্কটি কাজ না করে, আপনি নিজে একটি নতুন লিঙ্ক খুঁজে নিতে পারেন।

3. সোর্স কোড প্যাকেজটি আনকমপ্রেস করুন

tar xjf postgresql-17.4.tar.bz2
  • tar: .tar কম্প্রেসড ফাইলগুলো প্রসেস করার জন্য ব্যবহৃত হয়।

  • xjf: tar ফাইল আনকমপ্রেস করার অপশন:

    • x: ফাইল আনকমপ্রেস করুন।
    • j: bzip2 কম্প্রেশন ফরম্যাট ব্যবহার করুন (.bz2)।
    • f: আনকমপ্রেস করার জন্য ফাইল নির্দিষ্ট করুন।
  • postgresql-17.4.tar.bz2: আনকমপ্রেস করার ফাইলের নাম।

4. আনকমপ্রেস করা সোর্স কোড ডিরেক্টরিতে প্রবেশ করুন

cd postgresql-17.4
  • আনকমপ্রেস করা PostgreSQL 17.4 সোর্স কোড ডিরেক্টরিতে প্রবেশ করুন।

5. প্রয়োজনীয় প্যাকেজ ইনস্টল করুন

sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
  • sudo apt install: apt প্যাকেজ ম্যানেজার ব্যবহার করে প্যাকেজ ইনস্টল করুন।
  • libssl-dev, libsystemd-dev, libxml2-dev, libreadline-dev: PostgreSQL কম্পাইল করার জন্য প্রয়োজনীয় ডেভেলপমেন্ট লাইব্রেরি ইনস্টল করুন, এগুলো হলো যথাক্রমে SSL লাইব্রেরি, Systemd লাইব্রেরি, XML লাইব্রেরি এবং Readline লাইব্রেরি।

6. কম্পাইল অপশন কনফিগার করুন

./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
  • ./configure: PostgreSQL এর কম্পাইল পরিবেশ প্রস্তুত করুন।
  • --prefix=/usr/local/pgsql: PostgreSQL ইনস্টলেশন ডিরেক্টরি /usr/local/pgsql হিসেবে নির্দিষ্ট করুন।
  • --with-openssl: OpenSSL সাপোর্ট সক্ষম করুন।
  • --with-libxml: XML সাপোর্ট সক্ষম করুন।
  • --with-systemd: Systemd সাপোর্ট সক্ষম করুন।

7. সোর্স কোড কম্পাইল করুন

make -j$(nproc)
  • make: কম্পাইল প্রক্রিয়া শুরু করুন।
  • -j$(nproc): nproc (সিস্টেমের CPU কোরের সংখ্যা) ব্যবহার করে প্যারালালি কম্পাইল টাস্কগুলো সম্পাদন করুন, যা কম্পাইল প্রক্রিয়াকে দ্রুত করে।

8. PostgreSQL ইনস্টল করুন

sudo make install
  • sudo make install: sudo ব্যবহার করে অ্যাডমিনিস্ট্রেটর প্রিভিলেজ সহ ইনস্টল করুন, make install কম্পাইল করা ফাইলগুলোকে সিস্টেমে ইনস্টল করে, যা ./configure কমান্ডে নির্দিষ্ট করা /usr/local/pgsql ডিরেক্টরিতে ইনস্টল করা হবে।

9. এনভায়রনমেন্ট ভেরিয়েবল সেট করুন

টেক্সট এডিটর ব্যবহার করে 1. /etc/profile ফাইল এডিট করুন:

sudo nano /etc/profile
  • sudo: সুপার ইউজার (অ্যাডমিনিস্ট্রেটর) অনুমতিতে কমান্ড চালানোর জন্য নির্দেশ করে। কারণ /etc/profile ফাইল পরিবর্তন করার জন্য অ্যাডমিনিস্ট্রেটর অধিকার প্রয়োজন।
  • nano: এটি একটি টেক্সট এডিটর, যা সাধারণত টার্মিনাল এনভায়রনমেন্টে ফাইল এডিট করার জন্য ব্যবহৃত হয়।
  • /etc/profile: এটি একটি গ্লোবাল কনফিগারেশন ফাইল, যা সিস্টেম-ব্যাপী এনভায়রনমেন্ট ভেরিয়েবল এবং স্টার্টআপ কনফিগারেশন সেট করার জন্য ব্যবহৃত হয়। যখন কোনো ব্যবহারকারী সিস্টেমে লগইন করে, তখন এই ফাইলের সেটিংস কার্যকর করা হয়।
  1. এনভায়রনমেন্ট ভেরিয়েবল যোগ করুন:
export PATH=/usr/local/pgsql/bin:$PATH
  • export: একটি এনভায়রনমেন্ট ভেরিয়েবল সেট করার জন্য ব্যবহৃত হয়, যা বর্তমান এবং সাব-প্রসেসগুলোতে ব্যবহারযোগ্য হবে।
  • PATH: এটি একটি এনভায়রনমেন্ট ভেরিয়েবল, যাতে সিস্টেমের এক্সিকিউটেবল ফাইলগুলোর ডিরেক্টরির তালিকা থাকে। সিস্টেম যখন কোনো কমান্ড চালায়, তখন PATH ভেরিয়েবলে তালিকাভুক্ত ডিরেক্টরিগুলোতে কমান্ডটি খোঁজা হয়।
  • /usr/local/pgsql/bin: এটি PostgreSQL ডেটাবেজের এক্সিকিউটেবল ফাইলের ডিরেক্টরি, এটি যোগ করার মানে হলো এই ডিরেক্টরির এক্সিকিউটেবল ফাইলগুলো (যেমন psql) সিস্টেম কর্তৃক শনাক্ত হবে।
  • :$PATH: এখানে $PATH হলো পূর্বে বিদ্যমান পাথ, নতুন পাথ /usr/local/pgsql/bin-কে বিদ্যমান PATH-এর শুরুতে যোগ করা হয়েছে। এভাবে, সিস্টেম প্রথমে নতুন ডিরেক্টরি পরীক্ষা করবে, তারপর বিদ্যমান পাথ পরীক্ষা করবে।

এই কমান্ডের কাজ হলো PostgreSQL-এর এক্সিকিউটেবল ফাইলের ডিরেক্টরিকে সিস্টেমের এনভায়রনমেন্ট ভেরিয়েবল PATH-এ যোগ করা, যাতে কমান্ড লাইনে সরাসরি PostgreSQL-এর কমান্ড (যেমন psql) চালানো যায়, এবং এর জন্য সম্পূর্ণ পাথ উল্লেখ করার প্রয়োজন না হয়। এই পরিবর্তন সমস্ত ব্যবহারকারীর জন্য প্রযোজ্য হবে।

PostgreSQL ডেটাবেজ ইনিশিয়ালাইজ করা

এই কমান্ডগুলো মূলত লিনাক্স সার্ভারে ম্যানুয়ালি PostgreSQL ডেটাবেজ সার্ভার কনফিগার করার জন্য ব্যবহৃত হয়, যার মধ্যে রয়েছে PostgreSQL সিস্টেম ইউজার তৈরি করা, ডেটাবেজ ইনিশিয়ালাইজ করা, ডেটাবেজ সার্ভিস শুরু করা এবং এটিকে systemd সার্ভিস হিসেবে রেজিস্টার করা, যাতে কম্পিউটার চালু হওয়ার সময় এটি স্বয়ংক্রিয়ভাবে শুরু হতে পারে।

1. PostgreSQL ইউজার তৈরি করুন

sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
  • sudo: সুপার ইউজার অনুমতিতে কমান্ড চালান।
  • useradd: নতুন ইউজার তৈরি করুন।
  • -m: ইউজারের হোম ডিরেক্টরি তৈরি করুন।
  • -U: একই নামের একটি ইউজার গ্রুপ তৈরি করুন।
  • -r: একটি সিস্টেম ইউজার তৈরি করুন (সিস্টেম ইউজারের UID 1000-এর নিচে, লগইন করার জন্য নয়)।
  • -d /var/lib/postgresql: হোম ডিরেক্টরি /var/lib/postgresql হিসেবে নির্দিষ্ট করুন।
  • -s /bin/bash: শেল /bin/bash হিসেবে নির্দিষ্ট করুন।
  • postgres: ইউজার নাম।

এই কমান্ডটি postgres নামে একটি PostgreSQL ডেডিকেটেড সিস্টেম ইউজার তৈরি করে।


2. PostgreSQL ডিরেক্টরির মালিক পরিবর্তন করুন

sudo chown postgres /usr/local/pgsql
  • chown postgres /usr/local/pgsql: /usr/local/pgsql ডিরেক্টরির মালিক postgres ইউজারে পরিবর্তন করুন, যাতে সে এই ডিরেক্টরি পড়তে এবং লিখতে পারে।

3. PostgreSQL ইউজারের পাসওয়ার্ড সেট করুন

sudo passwd postgres
  • passwd postgres: postgres ইউজারের পাসওয়ার্ড পরিবর্তন করুন।

4. PostgreSQL ইউজারে স্যুইচ করুন

su postgres
  • su postgres: PostgreSQL সম্পর্কিত কমান্ড ব্যবহার করার জন্য postgres ইউজারে স্যুইচ করুন।

5. ডেটাবেজ ইনিশিয়ালাইজ করুন

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
  • initdb -D /usr/local/pgsql/data: /usr/local/pgsql/data ডিরেক্টরিতে ডেটাবেজ স্টোরেজ ইনিশিয়ালাইজ করুন।

6. PostgreSQL ডেটাবেজ শুরু করুন

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
  • postgres -D /usr/local/pgsql/data: postgres প্রসেস হিসেবে ডেটাবেজ শুরু করুন, ডেটা /usr/local/pgsql/data ডিরেক্টরিতে স্টোর করা হবে।

7. অন্য একটি টার্মিনাল সেশনে, ডেটাবেজে প্রবেশ করুন

su postgres
/usr/local/pgsql/bin/psql
  • psql: PostgreSQL এর কমান্ড-লাইন ইন্টারেক্টিভ টুল, ডেটাবেজ শেলে প্রবেশ করার জন্য।

8. ডেটাবেজ ইউজারের পাসওয়ার্ড সেট করুন

ALTER USER postgres WITH PASSWORD 'your_new_password';
  • ডেটাবেজ ইউজার postgres-এর পাসওয়ার্ড পরিবর্তন করুন।

9. systemd সার্ভিস তৈরি করুন

sudo nano /etc/systemd/system/postgresql.service
  • nano /etc/systemd/system/postgresql.service: systemd কনফিগারেশন ফাইল এডিট করুন, যাতে PostgreSQL একটি সার্ভিস হিসেবে চলতে পারে।

কনফিগারেশন ফাইলের কন্টেন্ট:

[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: বর্ণনা করে যে এই সার্ভিসটি একটি PostgreSQL সার্ভার।
  • After=network-online.target: নেটওয়ার্ক সংযোগ উপলব্ধ হওয়ার পরে PostgreSQL শুরু করুন।
  • User=postgres: postgres ইউজার হিসেবে চালান।
  • ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data: PostgreSQL সার্ভার শুরু করুন।
  • ExecReload=/bin/kill -HUP $MAINPID: রিলোড করার সময় HUP সিগন্যাল পাঠান।
  • KillMode=mixed: মিশ্র টার্মিনেশন মোড।
  • KillSignal=SIGINT: PostgreSQL প্রসেস টার্মিনেট করার সিগন্যাল।
  • TimeoutSec=infinity: টাইমআউট ইনফিনিটি হিসেবে সেট করা হয়েছে।

10. systemd সার্ভিস সক্রিয় করুন

sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
  • daemon-reload: systemd কনফিগারেশন রিলোড করুন, যাতে নতুন postgresql.service কার্যকর হয়।
  • start postgresql: PostgreSQL সার্ভিস শুরু করুন।
  • status postgresql: PostgreSQL এর চলমান অবস্থা পরীক্ষা করুন।
  • enable postgresql: কম্পিউটার চালু হওয়ার সময় স্বয়ংক্রিয়ভাবে PostgreSQL শুরু করুন।

এই কমান্ডগুলোর উদ্দেশ্য:

  1. PostgreSQL চালানোর জন্য বিশেষভাবে postgres ইউজার তৈরি করা।
  2. ডেটাবেজ স্টোরেজ ডিরেক্টরি ইনিশিয়ালাইজ করা।
  3. PostgreSQL ডেটাবেজ শুরু করা এবং psql ইন্টারেক্টিভ কমান্ড লাইনে প্রবেশ করা।
  4. systemd কনফিগার করা যাতে PostgreSQL একটি সিস্টেম সার্ভিস হিসেবে চলে এবং কম্পিউটার চালু হওয়ার সাথে সাথে স্বয়ংক্রিয়ভাবে শুরু হতে পারে।

এভাবে PostgreSQL সার্ভারটি সঠিকভাবে চলতে পারবে এবং সিস্টেম শুরু হওয়ার সময় স্বয়ংক্রিয়ভাবে শুরু হতে পারবে।

রেফারেন্স

PostgreSQL: ডকুমেন্টেশন: 17: চ্যাপ্টার 17. সোর্স কোড থেকে ইনস্টলেশন

এই ওয়েবসাইটের অন্যান্য সংস্করণ

এই আর্টিকেলের বিভিন্ন ভাষার সংস্করণ রয়েছে।

যদি আপনি কোনো মন্তব্য করতে চান, তাহলে অনুগ্রহ করে নিচের ওয়েবসাইটে যান:

ZH EN ZH-TW JA

এই ওয়েবসাইটগুলো শুধুমাত্র ব্রাউজিং সমর্থন করে, কোনো মন্তব্য বা বার্তা দেওয়া যায় না, তবে আরও বেশি ভাষার বিকল্প প্রদান করে এবং লোড হতে কম সময় নেয়:

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

এই আর্টিকেলটি AI দ্বারা Chinese (Simplified) থেকে Bengali-তে অনুবাদ করা হয়েছে।