Ubuntu पर पोस्टग्रेजेकल को पूरी तरह से शुद्ध और पुनर्स्थापना कैसे करें? [बन्द है]


221

किसी तरह मैं पूरी तरह से Ubuntu कर्म पर postgresql की स्थापना को कम करने में कामयाब रहा। मैं स्क्रैच से शुरू करना चाहता हूं, लेकिन जब मैं पैकेज को "शुद्ध" करता हूं, तो यह अभी भी पीछे ऐसे निशान छोड़ता है जैसे कि कॉन्फ़िगरेशन को ठीक से चलाना नहीं है।

मेरे द्वारा किए जाने के बाद:

apt-get purge postgresql
apt-get install postgresql

यह कहा

Setting up postgresql-8.4 (8.4.3-0ubuntu9.10.1) ...
Configuring already existing cluster (configuration: /etc/postgresql/8.4/main, data: /var/lib/postgresql/8.4/main, owner: 108:112)
Error: move_conffile: required configuration file     /var/lib/postgresql/8.4/main/postgresql.conf does not exist
Error: could not create default cluster. Please create it manually with

  pg_createcluster 8.4 main --start

or a similar command (see 'man pg_createcluster').
update-alternatives: using /usr/share/postgresql/8.4/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode.

Setting up postgresql (8.4.3-0ubuntu9.10.1) ...

मेरे पास "/ etc / postgresql" है, जिसमें कुछ भी नहीं है और "/ etc / postgresql-common /" में 'pg_upgradecluser.d' डायरेक्टरी और root.crt और user_clusters फाइलें हैं।

/ Etc / passwd में एक पोस्टग्रेज उपयोगकर्ता है; शुद्ध स्क्रिप्ट इसे छूने के लिए प्रकट नहीं होती है। वहाँ लक्षणों का एक गुच्छा है जो मैं केवल अगले खुलासा करने के लिए के माध्यम से काम करते हैं।

इस सेकंड में, जब मैं वह कमांड "pg_createcluster ..." चलाता हूं, तो यह शिकायत करता है कि '/var/lib/postgresql/8.4/main/postgresql.conf मौजूद नहीं है', इसलिए मैं उनमें से एक को ढूंढूंगा लेकिन मैं ' मुझे यकीन है कि इसका अंत नहीं होगा।

क्या कोई आसान वन-लाइनर (या दो) नहीं है जो इसे पूरी तरह से जला देगा और मुझे शुरू करने देगा?


2
एक-क्लिक इंस्टॉलर की कोशिश करें, यह अधिक सरल है, इसकी निर्देशिकाओं को / etc / और var में नहीं बिखेरा गया है। वे सभी एक निर्देशिका में संग्रहीत हैं
माइकल ब्यून

2
यह एक सामान्य कंप्यूटिंग प्रश्न नहीं है, और पोस्टग्रैक्स्ल मानक स्टैन्कवरफ़्लो विषय है। प्रश्न फिर से खोलना चाहिए।
एंड्रयू

जवाबों:


446

विकल्प ए

यदि आपका इंस्टॉल पहले से ही क्षतिग्रस्त नहीं है, तो आप उपयोग कर अवांछित PostgreSQL सर्वर ("क्लस्टर") छोड़ सकते हैं pg_dropcluster। एक पूर्ण पर्स के लिए उस का उपयोग करें और यदि आप एक ताजा PostgreSQL उदाहरण के साथ फिर से शुरू करना चाहते हैं तो पुनर्स्थापित करें।

$ pg_lsclusters
Ver Cluster Port Status Owner    Data directory              Log file
11  main    5432 online postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log
$ sudo systemctl stop postgresql@11-main
$ sudo pg_dropcluster --stop 11 main
$ sudo pg_createcluster --start 11 main

विकल्प बी

यदि आपको वास्तव में पूर्ण पर्स और पुन: स्थापित करने की आवश्यकता है, तो पहले सुनिश्चित करें कि PostgreSQL नहीं चल रहा है। ps -C postgresकोई परिणाम नहीं दिखाना चाहिए।

अब चलाएं:

apt-get --purge remove postgresql\*

अपने सिस्टम से सब कुछ PostgreSQL निकालने के लिए। postgresपैकेज को शुद्ध करना पर्याप्त नहीं है क्योंकि यह सिर्फ एक खाली मेटा-पैकेज है।

एक बार सभी PostgreSQL संकुल हटा दिए जाने के बाद, चलाएँ:

rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres

अब आपको निम्न करने में सक्षम होना चाहिए:

apt-get install postgresql

या पूरी तरह से स्थापित करने के लिए:

apt-get install postgresql-8.4 postgresql-contrib-8.4 postgresql-doc-8.4

19
मैं हाथ संपादित करने के लिए सलाह दूर करने के लिए इस सवाल का जवाब पर फिर से काम किया है /etc/passwdऔर /etc/groupसुरक्षित करने के पक्ष में userdelऔर groupdel। इसके अलावा, dselectपैकेजों के हाथ-चयन के लिए उपयोग करने के बजाय, उन्हें मज़बूती से मिलान करने के लिए एक उपयुक्त वाइल्डकार्ड का उपयोग करें।
क्रेग रिंगर

11
+1 के लिए pg_dropcluster!! (उदाहरण उपयोग: pg_dropcluster --stop 9.1 main)
अनुज गुप्ता

5
libpq5 और libpq-dev को उस पर्ज सूची में जोड़ें, उस लिब ने मुझे बहुत सारी समस्याएं दीं, जब तक कि मैंने इसे सही संस्करण पर पुनः इंस्टॉल नहीं किया
Rogerio Chaves

PostgreSQL 9.4 के साथ डेबियन 8 पर भी काम करता है।

2
मैं भी जोड़ूंगा rm -r /var/log/postgresql
ग्रेगोरी एरेन्सियस

45

मेरे पास एक समान स्थिति थी: मुझे एक डेबियन मट्ज़े पर पोस्टग्रैसैकल 9.1 शुद्ध करने की आवश्यकता थी (मैं पहले 8.4 से पलायन कर चुका था और मुझे त्रुटियां मिल रही थीं)।

मैंने क्या किया:

सबसे पहले, मैंने कॉन्फ़िगर और डेटाबेस को हटा दिया

$ sudo pg_dropcluster --stop 9.1 main

फिर पोस्टग्रैसेकल को हटा दिया

$ sudo apt-get remove --purge postgresql postgresql-9.1 

और फिर पुनर्स्थापित किया

$ sudo apt-get install postgresql postgresql-9.1

मेरे मामले में मैंने देखा /etc/postgresql/9.1 खाली था, और service postgresql startकुछ भी नहीं चल रहा था

इसलिए, अधिक जाने के बाद मैं इस कमांड में गया:

$ sudo pg_createcluster 9.1 main

इसके साथ मैं सर्वर शुरू कर सकता था, लेकिन अब मुझे लॉग-संबंधित त्रुटियां हो रही थीं। अधिक खोज के बाद, मैंने / var / log / postgresql निर्देशिका के लिए अनुमतियाँ बदल दीं

$ sudo chown root.postgres /var/log/postgresql
$ sudo chmod g+wx /var/log/postgresql

इस मुद्दे को तय किया, आशा है कि यह मदद करता है


14

मेरे लिए काम करने वाले कदमों Ubuntu 8.04.2को हटाने के लिएpostgres 8.3

  1. सभी संबंधित पोस्टग्रैट्स को सूचीबद्ध करें

    dpkg -l | grep postgres
    
    ii  postgresql                            8.3.17-0ubuntu0.8.04.1           object-relational SQL database (latest versi
    ii  postgresql-8.3                        8.3.9-0ubuntu8.04                object-relational SQL database, version 8.3
    ii  postgresql-client                     8.3.9-0ubuntu8.04                front-end programs for PostgreSQL (latest ve
    ii  postgresql-client-8.3                 8.3.9-0ubuntu8.04                front-end programs for PostgreSQL 8.3
    ii  postgresql-client-common              87ubuntu2                        manager for multiple PostgreSQL client versi
    ii  postgresql-common                     87ubuntu2                        PostgreSQL database-cluster manager
    ii  postgresql-contrib                    8.3.9-0ubuntu8.04                additional facilities for PostgreSQL (latest
    ii  postgresql-contrib-8.3                8.3.9-0ubuntu8.04                additional facilities for PostgreSQL
  2. ऊपर सूचीबद्ध सभी निकालें

    sudo apt-get --purge remove postgresql postgresql-8.3  postgresql-client  postgresql-client-8.3 postgresql-client-common postgresql-common  postgresql-contrib postgresql-contrib-8.3
  3. निम्नलिखित फ़ोल्डर निकालें

    sudo rm -rf /var/lib/postgresql/
    sudo rm -rf /var/log/postgresql/
    sudo rm -rf /etc/postgresql/

सभी पोस्टग्रेज से संबंधित पैकेजों को हटाना मेरे लिए काम किया। मेरे पास कुछ 8.4 और 9.1 पैकेज थे। सब कुछ हटाने के साथ संयुक्त ने मुझे 9.1 को फिर से स्थापित करने की अनुमति दी और इसके साथ काम करने वाला सब कुछ है।
निक

1
वाइल्डकार्ड के साथ बहुत आसान:apt-get --purge remove postgresql\*
क्रेग रिंगर

12

मुझे पता है कि एक उत्तर पहले ही प्रदान किया जा चुका है, लेकिन मेरे लिए काम नहीं आया। यहाँ पैकेज को हटाने के लिए क्या काम किया गया है:

# search postgr  | grep ^i
i   postgresql                      - object-relational SQL database (supported 
i A postgresql-8.4                  - object-relational SQL database, version 8.
i A postgresql-client-8.4           - front-end programs for PostgreSQL 8.4     
i A postgresql-client-common        - manager for multiple PostgreSQL client ver
i A postgresql-common               - PostgreSQL database-cluster manager       

# aptitude purge postgresql-8.4 postgresql-client-8.4 postgresql-client-common postgresql-common postgresql

rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/

अंत में, संपादन / आदि / पासवार्ड और / आदि / समूह


इन निर्देशों ने डेबियन निचोड़ / फुट पर काम किया
एवगेनी

वाइल्डकार्ड का उपयोग करना आसान है; अद्यतन 1 उत्तर देखें।
क्रेग रिंगर


9

स्थापना रद्द करने और पुनर्स्थापित करने के लिए मेरे द्वारा अनुसरण किए गए चरणों का पालन करें। जिसने मेरे लिए काम किया।

सबसे पहले स्थापित पोस्टग्रैज को हटा दें: -

सूद apt-get purge postgr *

सुडो एप्ट-मिल ऑटोरेमोव

फिर 'सिनेप्टिक' स्थापित करें:

sudo apt-get install सिनैप्टिक

sudo apt-get update

फिर पोस्टग्रेज स्थापित करें

sudo apt-get Install postgresql postgresql-contrib


2

मैं सिर्फ Ubuntu 13.04 के लिए एक ही मुद्दे में भाग गया। ये आदेश हटाए गए पोस्टग्रैजेस 9.1:

sudo apt-get purge postgresql
sudo apt-get autoremove postgresql

यह मेरे लिए होता है कि शायद केवल दूसरा कमांड आवश्यक है, लेकिन वहां से मैं पोस्टग्रैजेस 9.2 (sudo apt-get install postgresql-9.2) स्थापित करने में सक्षम था ।


0

मैं जवाबों का पालन कर रहा था, जब संपादन / आदि / समूह मैंने इस लाइन को भी हटा दिया:

ssl-cert:x:112:postgres

फिर, जब postgresql स्थापित करने की कोशिश कर रहा है, मुझे यह त्रुटि मिली

Preconfiguring packages ...
dpkg: unrecoverable fatal error, aborting:
 syntax error: unknown group 'ssl-cert' in statoverride file
E: Sub-process /usr/bin/dpkg returned an error code (2)

"Ssl-cert: x: 112: postgres" लाइन को वापस / etc / group में डालकर इसे ठीक करने लगता है (इसलिए मैं postgresql को इंस्टॉल करने में सक्षम था)


2
लाइन को हटाने में आपने पूरे "एसएसएल-सर्टिफिकेट" समूह को हटा दिया, जो एसएसएल के साथ कहर पैदा कर सकता है। इसके बजाय, ssl- सर्टिफिकेट ग्रुप से पोस्टग्रेज को हटाने के लिए, कोलन के बाद "पोस्टग्रेज" को हटा दें।
जॉन मी

2
आपको हाथ से संपादित करने की सलाह देने में मूल निर्देश बहुत गलत थे /etc/passwdऐसा कभी मत करो । कमांड userdelऔर groupdelकमांड का उपयोग करें और भविष्य में आपको वह समस्या नहीं होगी।
क्रेग रिंगर

-2

मैं अपने ubuntu 16.04 में एक ही समस्या का सामना कर रहा था

लेकिन मैंने उस समस्या को ठीक कर दिया है और यह बहुत सरल है बस इन चरणों का पालन करें और आप अपने सिस्टम में पोस्टग्रैक्स्ल 10 स्थापित कर पाएंगे:

इसे अपने सूत्रों में जोड़ें। सूची:

sudo vim /etc/apt/sources.list

deb http://ftp.de.debian.org/debian/ wheezy main non-free contrib

deb-src http://ftp.de.debian.org/debian/ wheezy main non-free contrib

उसके बाद इन लिंक को अपनी pgdg.list फ़ाइल में जोड़ें अगर यह वहाँ नहीं है तो आपको लिंक बनाना और लिंक जोड़ना और इसे सहेजना है।

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

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

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

फिर अपने सिस्टम को अपडेट करें

sudo apt-get update

sudo apt-get upgrade

और उस unmet निर्भरता को स्थापित करें:

apt-get install ssl-cert

बस। अब इन कमांड का उपयोग करके पोस्टग्रैस्केल स्थापित करें

sudo apt-get install postgresql-10
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.