ดูเหมือนว่าผู้ดูแลระบบของ openjdk-r / ppa จะทำการอัปเดตแพ็คเกจ openjdk-7 เกินกว่ารุ่น 7u95-2.6.4-3 คำอธิบายของแพ็คเกจนั้น "คัดลอกมาจากการทดลองเดเบียนในไฟล์เก็บถาวรหลักสำหรับ Debian GNU / Linux" ทำให้เราทราบว่าจะจัดการกับตัวเองได้อย่างไร
ดาวน์โหลดแพ็คเกจที่เหมาะสำหรับสถาปัตยกรรมของคุณ:
(สำหรับผู้ใช้ส่วนใหญ่หมายถึง amd64 ถ้า 64 บิตหรือ i386 หากติดตั้ง Ubuntu 32 บิต)
(พยายาม) ติดตั้งแพ็คเกจโดยใช้dpkg
:
Ubuntu 17.10 และรุ่นก่อนหน้า:
sudo dpkg -i openjdk-7-* libjpeg62-turbo* libfontconfig1* fontconfig-config*
Ubuntu 18.04 และใหม่กว่า:
sudo dpkg -i openjdk-7-* libjpeg62-turbo*
dpkg
เช็คเอาท์พุทจาก หากมีปัญหาการพึ่งพาซึ่งน่าจะเกิดขึ้นคุณจะเห็นสิ่งต่อไปนี้ (ด้วยสถาปัตยกรรมที่คุณใช้ทดแทน amd64):
พบข้อผิดพลาดขณะประมวลผล:
OpenJDK-7-JRE: amd64
OpenJDK-7-JRE-หัวขาด: amd64
OpenJDK-7-jdk: amd64
หากไม่มีปัญหาการพึ่งพาคุณทำได้ดีให้ข้ามไปที่ # 4 มิฉะนั้นหากคุณต้องการแก้ไขปัญหาการพึ่งพาบางอย่างสิ่งนี้จะได้รับการจัดการด้วย:
sudo apt install -f
โปรดสังเกตว่าไม่จำเป็นต้องเรียกใช้ซ้ำอีกครั้งdpkg
หลังจากให้การapt
แก้ไขการอ้างอิง มันจะทำการติดตั้งแพ็กเกจ openjdk ให้โดยอัตโนมัติ
อัพเดตทางเลือก java คุณสามารถดูรุ่นทั้งหมดที่ติดตั้ง Java update-java-alternatives --list
ด้วย ในการเปิดใช้งาน OpenJDK Java 1.7 ให้เรียกใช้:
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
คุณอาจสังเกตเห็นข้อผิดพลาดเกี่ยวกับIcedTeaPlugin.so
ปลั๊กอินไม่พร้อมใช้งาน นี่ไม่ใช่ข้อกังวลที่แท้จริงสำหรับนักพัฒนาที่ทำงานกับ JDK
ตรวจสอบว่าจาวาทำงานอยู่:
java -version
ซึ่งควรแสดงผลลัพธ์ที่คล้ายกับ:
รุ่น java "1.7.0_161"
สภาพแวดล้อมรันไทม์ OpenJDK (IcedTea 2.6.12) (7u161-2.6.12-1)
OpenJDK เซิร์ฟเวอร์ 64 บิต VM (สร้าง 24.161-b01, โหมดผสม)
สร้างไฟล์ปักหมุดที่บอกapt
ให้พิจารณาเฉพาะแพ็คเกจที่เราสนใจ (แน่นอนว่าเราไม่ต้องการให้อูบุนตูของเรา "อัพเกรด" ด้วยแพ็คเกจเดเบียนรุ่นทดลอง)
สร้างไฟล์ที่/etc/apt/preferences.d/debian
มีเนื้อหาด้านล่าง คุณจะต้องมีสิทธิ์ superuser เพื่อใช้อย่างใดอย่างหนึ่งsudo vim
, sudo nano
, gksudo gedit
ฯลฯ
Package: *
Pin: release o=Debian,n=experimental
Pin-Priority: -1
Package: *
Pin: release o=Debian,n=sid
Pin-Priority: -1
Package: openjdk-7-jdk
Pin: release o=Debian,n=experimental
Pin-Priority: 500
Package: openjdk-7-jre
Pin: release o=Debian,n=experimental
Pin-Priority: 500
Package: openjdk-7-jre-headless
Pin: release o=Debian,n=experimental
Pin-Priority: 500
Package: libjpeg62-turbo
Pin: release o=Debian,n=sid
Pin-Priority: 500
สำหรับ Ubuntu 17.10 และก่อนหน้านี้ให้ผนวกสิ่งต่อไปนี้ (และดูหมายเหตุที่ด้านล่าง):
Package: libfontconfig1
Pin: release o=Debian,n=sid
Pin-Priority: 500
Package: fontconfig-config
Pin: release o=Debian,n=sid
Pin-Priority: 500
ติดตั้งพวงกุญแจ Debian:
sudo apt install debian-archive-keyring
หมายเหตุ: ในขณะที่นี่เป็นวิธีที่ง่ายที่สุดในการเพิ่มพวงกุญแจเดเบียนมันอาจจะไม่ทันสมัย ตรวจสอบเอาต์พุตดังต่อไปนี้เมื่อทำงานapt update
ในขั้นตอนที่ 4:
W: ข้อผิดพลาด GPG: http://cdn-fastly.deb.debian.org/debian รุ่นทดลอง InRelease: ไม่สามารถตรวจสอบลายเซ็นต่อไปนี้ได้เนื่องจากรหัสสาธารณะไม่พร้อมใช้งาน: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010
E: พื้นที่เก็บข้อมูล 'http://httpredir.debian.org/debian รุ่นทดลอง InRelease' ไม่ได้ลงนาม
หากคุณเห็นข้อผิดพลาดนี้ให้เพิ่มคีย์ที่จำเป็นด้วยตนเองด้วย:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010
ตรงไหน8B48AD6246925553
และ7638D0442B90D010
ควรตรงกับ pubkeys ที่คุณเห็นในข้อความเตือน
เพิ่มที่เก็บข้อมูลที่ต้องการ:
sudo add-apt-repository 'deb http://httpredir.debian.org/debian experimental main'
sudo add-apt-repository 'deb http://httpredir.debian.org/debian sid main'
ทำไมไม่ใช้พื้นที่เก็บข้อมูล Debian ที่มีเสถียรภาพ? คุณจะพบกับการพึ่งพาที่ไม่น่าพอใจกับ Debian เสถียร ที่เก็บทดลอง (สำหรับ openjdk-7) และ sid (สำหรับ libjpeg62-turbo, libfontconfig1 และ fontconfig-config) ที่เก็บข้อมูลมีความผ่อนปรนมากกว่ารุ่นที่ขึ้นต่อกัน
อัปเดตapt
แคช (คาดว่าจะใช้เวลาสักครู่เนื่องจากรายการแพ็กเกจของ Debian มีขนาดใหญ่):
sudo apt update
ติดตั้ง openjdk-7-jdk:
sudo apt install openjdk-7-jdk
อัพเดตทางเลือก java คุณสามารถดูรุ่นทั้งหมดที่ติดตั้ง Java update-java-alternatives --list
ด้วย ในการเปิดใช้งาน OpenJDK Java 1.7 ให้เรียกใช้:
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
คุณอาจสังเกตเห็นข้อผิดพลาดเกี่ยวกับIcedTeaPlugin.so
ปลั๊กอินไม่พร้อมใช้งาน นี่ไม่ใช่ข้อกังวลที่แท้จริงสำหรับนักพัฒนาที่ทำงานกับ JDK
ตรวจสอบว่าจาวาทำงานอยู่:
java -version
ซึ่งควรแสดงผลลัพธ์ที่คล้ายกับ:
รุ่น java "1.7.0_161"
สภาพแวดล้อมรันไทม์ OpenJDK (IcedTea 2.6.12) (7u161-2.6.12-1)
OpenJDK เซิร์ฟเวอร์ 64 บิต VM (สร้าง 24.161-b01, โหมดผสม)