จะลบ Postgres ออกจากการติดตั้งได้อย่างไร


78

ฉันมีอูบุนตู 9.10 (karmic) และเมื่อฉันพยายามติดตั้งโปรแกรมใหม่ postgres ได้รับการติดตั้งเป็นการอ้างอิงของโปรแกรมนั้นไม่มีปัญหาเลยหากการติดตั้งนั้นประสบความสำเร็จ แต่ก็มีข้อผิดพลาดและ Postgres ก็คือ ไม่ได้ติดตั้งและแอปพลิเคชันไม่ทำงาน ฉันพยายามอัปเดต Postgres แล้วไม่มีอะไรมีเพียงข้อความ"มีข้อผิดพลาดและไม่สามารถติดตั้ง Postgres ของคุณ"

ตอนนี้ฉันต้องการลบ Postgres ออกจากเครื่องอย่างสมบูรณ์ฉันจะทำอย่างไรฉันไม่ต้องการฆ่ากระบวนการทุกครั้งที่บูต ฉันต้องการลบ Postgres

บรรทัดคำสั่งคืออะไร

ขอบคุณผู้คน

คำตอบ:


144

วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการเปิดเทอร์มินัลและประเภท:

sudo apt-get --purge remove postgresql

นี่จะเป็นการแจ้งให้คุณลบซอฟต์แวร์ที่ขึ้นอยู่กับ Postgres ซึ่งในกรณีนี้จะปรากฏว่าคุณต้องการทำ
ฉันไม่ได้รัน 9.10 หรือ Postgres เป็นการส่วนตัวดังนั้นจึงเป็นไปได้ว่า Postgres จะติดตั้งตัวเองในหลาย ๆ ส่วน ในกรณีนั้นง่าย ๆ :

dpkg -l | grep postgres

คุณจะได้รับรายการแพ็คเกจที่ติดตั้ง Postgres จากนั้นเพียงใช้คำสั่ง "apt-get --purge remove .... " เดียวกัน แต่แทนที่จะเป็นเพียง postgresql ให้พิมพ์ชื่อแพ็คเกจแต่ละชื่อคั่นด้วยช่องว่างเช่น:

sudo apt-get --purge remove postgresql postgresql-doc postgresql-common

ขึ้นอยู่กับรายการของแพ็คเกจที่ติดตั้งแน่นอน


เอาล่ะฉันจะลองใหม่ทีหลังตอนนี้ขอบคุณมาก!
deepcell

1
ฉันเรียกใช้บรรทัดคำสั่ง -> sudo apt-get --purge ลบ postgresql และดูเหมือนว่ามันถูกลบออกจากอูบุนตูของฉัน .. ฉันรอการอัปเดตอยู่เสมอในการอัพเดต postgres แสดงข้อผิดพลาด ขอบคุณอยู่ดี
deepcell

ฉันคิดว่ามันถูกต้อง แต่วันนี้ฉันได้รับคำเตือนเดิมอีกครั้งระบบขัดข้องมีบางอย่างพยายามอัปเดต postgres แต่มันไม่เกิดขึ้นจากนั้นรายงานข้อขัดข้องก็แสดงตัวเอง .. ขอบคุณอีกครั้ง.
deepcell

3
มันควรจะเป็นdpkg -l | grep postgres
Mithun Sreedharan

78

ขั้นตอนที่ใช้ได้ผลกับฉันในUbuntu 8.04.2การลบpostgres 8.3

  1. แสดงรายการแพ็คเกจทั้งหมดที่เกี่ยวข้องกับ Postgres

    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/
    
  4. ลบผู้ใช้ postgres :

    sudo deluser postgres
    

ขอบคุณ! แต่ฉันไม่ได้ใช้ Ubuntu อีกต่อไป ตอนนี้ฉันอยู่ที่ opensuse และ centos ขอบคุณอย่างไรก็ตามถ้าฉันมีปัญหาอีกครั้งกับ postgres คำตอบของคุณจะเป็นประโยชน์
deepcell

2
ขั้นตอนที่ 3 สามารถรวมกันเป็นหนึ่งบรรทัดหากใช้ bash shellsudo rm -rf {/var/{lib,log},etc}/postgresql/
smac89

1
+1 สำหรับขั้นตอนที่ 3 ที่นี่ นั่นคือกุญแจสำคัญสำหรับฉัน พยายามเอาแพคเกจออกหลายครั้ง แต่มี cruft เหลืออยู่ใน / var / lib / postgresql และ / etc / postgresql ที่ทำให้การดำเนินการที่ตามมาหลังจากติดตั้งล้มเหลว
Gil Hamilton

28

คำสั่งอย่างใดอย่างหนึ่งที่จะสมบูรณ์ลบ PostgreSQL ใน terminal sudo apt-get --purge remove postgresql\*คือ โปรดทราบว่าคำสั่งนี้จะลบ postgresql และทั้งหมดที่เป็นไปได้


6
ฉันใช้sudo apt-get purge postgresql*วันที่ 14.04
Antonios Hadjigeorgalis

นี่ควรเป็นคำตอบที่ยอมรับได้!
Philipp Schwarz

คำตอบข้างต้นใช้ได้สำหรับฉัน - สิ่งนี้ไม่ได้ลบทุกอย่างในขณะที่ --purge state
Ricky

1

ขอบคุณCode Friendly& ฉันต้องการแบ่งปันวิธีที่ฉันแก้ไขปัญหาของฉัน

เมื่อฉันอัปเดตpostgresqlจากแอปพลิเคชั่น Synaptic มันเป็นรุ่น postgresql 10 ที่ติดตั้ง ดังนั้นฉันจึงติดตั้ง postgresql (10 & 9.6) สองรุ่นในเครื่องเดเบียนของฉัน ฟังพอร์ตPostgresql 9.6 ฟังพอร์ตแทน 54325432Postgresql 105433

เมื่อฉันรัน comand msfconsoleในเทอร์มินัลแม้ว่า metasploit จะเชื่อมต่อกับฐานข้อมูล msf บนพอร์ต 5432 ข้อความแสดงข้อผิดพลาดต่อไปนี้จะปรากฏขึ้น:


root@kali:~# msfconsole
[-] Failed to connect to the database: could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432?

ฉันยกเลิกการติดตั้งรุ่น postgresql 9.6 จากแอปพลิเคชั่น Synaptic แต่ปัญหายังคงอยู่ (postgresql 9.6 จะไม่ปรากฏในรายการซอฟต์แวร์ที่ติดตั้งของ synaptic อีกต่อไป);

แต่ด้วยการดำเนินการคำสั่งที่ตามมาเราจะเห็นว่ารุ่น postgresql 9.6 นั้นไม่ได้ถูกยกเลิกการติดตั้งอย่างสมบูรณ์:


root@kali:~# dpkg -l | grep postgresql 
ii  postgresql                     10+187             all          object-relational SQL database (supported version)
ii  postgresql-9.6                 **                 all          object-relational SQL database, version 9.6 server
ii  postgresql-10                  10.0-1+b1          amd64        object-relational SQL database, version 10 server
ii  postgresql-client-10           10.0-1+b1          amd64        front-end programs for PostgreSQL 10
ii  postgresql-client-common       187                all          manager for multiple PostgreSQL client versions
ii  postgresql-common              187                all          PostgreSQL database cluster manager
ii  postgresql-contrib             10+187             all          additional facilities for PostgreSQL (supported version)

ด้วยคำสั่งต่อไปนี้ postgresql-9.6 ถอนการติดตั้งอย่างสมบูรณ์:
root@kali:~# sudo apt-get --purge remove postgresql-9.6

จากนั้นฉันแก้ไขไฟล์/etc/postgresql/10/main/postgresql.confเปลี่ยนหมายเลขพอร์ตเป็น 5432 และแก้ไขปัญหาได้


ข้อความแสดงข้อผิดพลาดอื่นปรากฏขึ้น:

Creating initial database schema /usr/local/bin/bundle:22:in ``load': cannot load such file -- /usr/lib/ruby/exe/bundle (LoadError)     from /usr/local/bin/bundle:22:in `<main>

ฉันพบว่าสาเหตุคือทับทิมรุ่นสอง (2) ติดตั้งในเครื่องเดเบียนของฉันรุ่น (2.2 และ 2.3)

ในทำนองเดียวกันฉันถอนการติดตั้ง ruby ​​2.2 เวอร์ชั่นจากแอปพลิเคชัน synaptic และปัญหาได้รับการแก้ไข metasploit เริ่มต้นโดยไม่มีปัญหา


1

ทำตามคำสั่ง:

  • sudo apt-get --purge ลบ postgresql

แสดงรายการแพ็คเกจที่เกี่ยวข้องกับ postgres ทั้งหมด:

  • dpkg -l | grep postgres

ลบแพ็กเกจที่แสดงรายการข้างต้นทั้งหมดโดยใช้คำสั่ง:

  • apt-get --purge ลบ package1 package2 ..

ยืนยันไฟล์และโฟลเดอร์ทั้งหมดที่เกี่ยวข้องกับ postgres / postgresql จะถูกลบโดยใช้คำสั่ง:

  • โดยที่ postgres
  • โดยที่ postgresql

ลบไฟล์และโฟลเดอร์ทั้งหมดที่แสดงรายการโดยใช้คำสั่งrm

ลบผู้ใช้postgresโดยใช้คำสั่ง:

  • userdel -f postgres

การเข้ารหัสที่มีความสุข :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.