ไม่สามารถติดตั้ง postgreSQL 9.6 ใน Ubuntu 18.04


15

ฉันพยายามติดตั้ง postgreSQL 9.6 ใน Ubuntu 18.04 ผ่านทางศูนย์ซอฟต์แวร์ Ubuntu และพิมพ์จากเทอร์มินัล

sudo apt-get install postgresql-9.6

ตามเอกสารอย่างเป็นทางการhttps://www.postgresql.org/download/linux/ubuntu/

Create the file /etc/apt/sources.list.d/pgdg.list and add a line for the repository

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

Import the repository signing key, and update the package lists

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc |   sudo apt-key add -
sudo apt-get update

เวอร์ชันที่จะติดตั้งคือ 10

ความช่วยเหลือใด ๆ

ขอบคุณล่วงหน้า.

postgresql:

ติดตั้งแล้ว: (ไม่มี) ผู้สมัคร: 10 + 191.pgdg18.04 + 1 ตารางเวอร์ชัน: 10 + 191.pgdg18.04 + 1 500 500 http://apt.postgresql.org/pub/repos/apt bionic-pgdg / main แพ็คเกจ amd64 500 http://apt.postgresql.org/pub/repos/aptแพคเกจbionic-pgdg / main i386 แพ็คเกจ 10 + 190 500 500 http://gr.archive.ubuntu.com/ubuntu bionic / main แพ็คเกจ amd64 500 http : //gr.archive.ubuntu.com/ubuntu bionic / main i386 แพ็คเกจ

หากฉันตรวจสอบว่าโฟลเดอร์ postgresql อยู่ที่ไหนดูเหมือนว่าฉันมีทั้งรุ่น 9.6 และ 10

/ usr / lib / PostgreSQL


1
ฉันไม่คิดว่าคุณสามารถติดตั้งเวอร์ชั่น 9.6 จากซอฟต์แวร์ Ubuntu ได้ดังนั้นคุณต้องเพิ่มที่เก็บ คุณได้รวมคำแนะนำที่แน่นอนในการทำเช่นนั้น: 1) สร้างไฟล์ที่มีข้อความหนึ่งบรรทัดจากนั้น 2) นำเข้าคีย์โดยใช้wgetคำสั่ง เกิดอะไรขึ้นกันแน่?
Jos

@Jos หลังจากที่ฉันพิมพ์ sudo apt-cache policy postgresql จะปรากฏคำตอบที่ฉันแนบไว้ด้านบน
webtechnelson

ดูเหมือนว่าคุณติดตั้งรุ่น 9.6 เรียบร้อยแล้ว ตอนนี้มันเป็นความคิดที่ดีที่จะเอารุ่น sudo apt remove postgresql-1010
Jos

@Jos ฉันได้ลบ postgres 10 ตามคำสั่งที่คุณแนะนำและจากนั้นฉันรัน sudo apt-get install postgresql-9.6 โฟลเดอร์ 9.6 จะปรากฏใน / usr / lib / postgresql อย่างไรก็ตามเมื่อฉันพิมพ์นโยบาย terminal audo apt-cache postgresql จะแจ้งว่าไม่มีการติดตั้ง postgresql postgresql: ติดตั้งแล้ว: (ไม่มี) ผู้สมัคร: 10 + 191.pgdg18.04 + 1
webtechnelson

คำตอบ:


24

หลังจากไม่กี่เดือนฉันต้องลบและติดตั้งตั้งแต่ต้นดังนั้นเพื่อติดตั้ง postgresql 9.6 ฉันทำตามขั้นตอนต่อไป:

หมายเหตุสำคัญ : ถ้าคุณได้ติดตั้ง PostgreSQL 10 และคุณต้องการ 9.6 คุณจะต้องลบ PostgreSQL 10 สมบูรณ์แล้วด้วยตนเองติดตั้ง PostgreSQL 9.6 เพื่อให้ปฏิบัติตามวิธีที่ 2

วิธีที่ 1

ขั้นตอนที่ 1

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'  

ขั้นตอนที่ 2

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add - 

ขั้นตอนที่ 3

sudo apt-get update  
sudo apt-get upgrade 
sudo apt-get install postgresql-9.6 

วิธีที่ 2

ในการติดตั้ง postgres 9.6 ที่มี postgres 10 หรือเวอร์ชั่นอื่นที่แตกต่างจาก 9.6 ที่ติดตั้งแล้วคุณต้องถอนการติดตั้ง postgresql ก่อน (เวอร์ชั่นและไฟล์ใด ๆ ที่เกี่ยวข้อง) ให้ทำตามขั้นตอนถัดไป

sudo apt-get --purge remove postgresql

dpkg -l | grep postgres (to look for postgresfiles in the system)

sudo rm -rf postgresql ... (remove all the files that appeared in the list after running the previous command)

สุดท้ายติดตั้ง postgreSQL ด้วยตนเองด้วยคำสั่งถัดไป:

sudo apt-get install postgresql-9.6

ฉันหวังว่ามันจะช่วยให้ใครบางคนที่อาจมีปัญหาเดียวกัน


0

ไม่สมบูรณ์เหมือนกันในกรณีของฉันเมื่อพยายามที่จะเปลี่ยนPostgreSQL 10กับPostgreSQL 9.4

ฉันลบแพ็คเกจเก่าที่ไม่ต้องการโดย

dpkg -l | grep postgres | cut -d' ' -f3 | xargs sudo apt --purge remove -y

แต่ในขณะที่ฉันพยายามลบแพ็กเกจฉันยังพบปัญหาหลายประการฉันยกเลิกกระบวนการก่อนที่จะถึง100%และใช้คำสั่งต่อไปนี้เพื่อแก้ไขปัญหาไปพร้อมกัน

sudo lsof /var/lib/dpkg/lock-frontend

sudo kill -9 <PID>

sudo dpkg --configure -a

# if necessary, rerun the removing command above

และเริ่มการติดตั้งเป็น:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

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