Có vẻ như người duy trì openjdk-r / ppa sẽ cập nhật gói openjdk-7 ngoài phiên bản 7u95-2.6.4-3. Mô tả của gói đó "Được sao chép từ thử nghiệm debian trong Lưu trữ chính cho Debian GNU / Linux" cho chúng ta một gợi ý về cách tự xử lý việc này.
Tải xuống các gói dành cho kiến trúc của bạn:
(đối với hầu hết người dùng, điều này có nghĩa là amd64 nếu 64 bit hoặc i386 nếu cài đặt Ubuntu 32 bit)
(Cố gắng) cài đặt các gói bằng cách sử dụng dpkg
:
Ubuntu 17.10 trở về trước:
sudo dpkg -i openjdk-7-* libjpeg62-turbo* libfontconfig1* fontconfig-config*
Ubuntu 18.04 trở lên:
sudo dpkg -i openjdk-7-* libjpeg62-turbo*
Kiểm tra đầu ra từ dpkg
. Nếu có vấn đề phụ thuộc - có khả năng - bạn sẽ thấy những điều sau đây (với kiến trúc của bạn được thay thế cho amd64):
Đã bắt gặp các lỗi trong quá trình xử lí thông tin:
openjdk-7-jre: amd64
openjdk-7-jre-không đầu: amd64
openjdk-7-jdk: amd64
Nếu không có vấn đề phụ thuộc, thật tuyệt, bạn đã hoàn thành, bỏ qua # 4. Mặt khác, nếu bạn cần giải quyết một số vấn đề phụ thuộc, việc này được xử lý với:
sudo apt install -f
Lưu ý, không cần phải chạy lại dpkg
sau khi để apt
giải quyết phụ thuộc. Nó sẽ tự động hoàn tất cài đặt các gói openjdk.
Cập nhật các lựa chọn thay thế java. Bạn có thể xem tất cả các phiên bản java được cài đặt với update-java-alternatives --list
. Để kích hoạt OpenJDK Java 1.7, hãy chạy:
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
Bạn có thể nhận thấy một lỗi về IcedTeaPlugin.so
plugin không có sẵn. Đây không phải là mối quan tâm thực sự đối với các nhà phát triển làm việc với JDK.
Xác minh java đang hoạt động:
java -version
mà sẽ xuất ra một cái gì đó tương tự như:
phiên bản java "1.7.0_161"
Môi trường thời gian chạy OpenJDK (IcedTea 2.6.12) (7u161-2.6.12-1)
OpenJDK 64-Bit Server VM (bản dựng 24.161-b01, chế độ hỗn hợp)
Tạo một tệp ghim yêu apt
cầu chỉ xem xét các gói mà chúng tôi quan tâm (chắc chắn chúng tôi không muốn toàn bộ bản phân phối Ubuntu của mình được "nâng cấp" với các gói thử nghiệm Debian).
Tạo tập tin /etc/apt/preferences.d/debian
với nội dung dưới đây. Bạn sẽ cần phải đặc quyền superuser, vì vậy sử dụng một trong sudo vim
, sudo nano
, gksudo gedit
vv
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
Đối với Ubuntu 17.10 trở về trước, hãy thêm phần sau (và xem ghi chú ở phía dưới):
Package: libfontconfig1
Pin: release o=Debian,n=sid
Pin-Priority: 500
Package: fontconfig-config
Pin: release o=Debian,n=sid
Pin-Priority: 500
Cài đặt khóa Debian:
sudo apt install debian-archive-keyring
Lưu ý: mặc dù đây là phương pháp đơn giản nhất để thêm khóa debian, nhưng nó có thể không cập nhật. Kiểm tra đầu ra như sau khi chạy apt update
ở bước 4:
Lỗi W: GPG: http://cdn-fastly.deb.debian.org/debian InRelease: Các chữ ký sau đây không thể được xác minh vì khóa công khai không khả dụng: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010
E: Kho lưu trữ 'http://httpredir.debian.org/debian thử nghiệm InRelease' không được ký.
Nếu bạn thấy lỗi này, sau đó thêm thủ công các phím cần thiết với:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010
nơi 8B48AD6246925553
và 7638D0442B90D010
nên phù hợp với các pubkey bạn nhìn thấy trong thông báo cảnh báo.
Thêm các kho cần thiết:
sudo add-apt-repository 'deb http://httpredir.debian.org/debian experimental main'
sudo add-apt-repository 'deb http://httpredir.debian.org/debian sid main'
Tại sao không sử dụng kho lưu trữ Debian ổn định? Bạn sẽ gặp phải sự phụ thuộc không thỏa đáng với Debian ổn định. Các kho lưu trữ thử nghiệm (cho openjdk-7) và sid (đối với libjpeg62-turbo, libfontconfig1 và fontconfig-config) dễ sử dụng hơn với các phiên bản phụ thuộc.
Cập nhật apt
bộ đệm (hy vọng sẽ mất một chút thời gian vì danh sách gói của Debian rất lớn):
sudo apt update
Cài đặt openjdk-7-jdk:
sudo apt install openjdk-7-jdk
Cập nhật các lựa chọn thay thế java. Bạn có thể xem tất cả các phiên bản java được cài đặt với update-java-alternatives --list
. Để kích hoạt OpenJDK Java 1.7, hãy chạy:
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
Bạn có thể nhận thấy một lỗi về IcedTeaPlugin.so
plugin không có sẵn. Đây không phải là mối quan tâm thực sự đối với các nhà phát triển làm việc với JDK.
Xác minh java đang hoạt động:
java -version
mà sẽ xuất ra một cái gì đó tương tự như:
phiên bản java "1.7.0_161"
Môi trường thời gian chạy OpenJDK (IcedTea 2.6.12) (7u161-2.6.12-1)
OpenJDK 64-Bit Server VM (bản dựng 24.161-b01, chế độ hỗn hợp)