나는 여기서 의견이 낙담된다는 것을 알고 있지만 이것은 권유가 아닙니다. 상황을 설명하고 싶습니다.
저는 Ubuntu 14.04.6 LTS로 VPS를 상속받았으며 현재 비극적인 시나리오에 직면해 있습니다.
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.6 LTS
Release: 14.04
Codename: trusty
$ uname -r
5.19.2-x86_64-linode156
나는 과거에 저장소를 수정하고 개별 패키지를 신중하게 수동으로 업그레이드하여 Ubuntu를 Debian으로 성공적으로 변환했습니다.
이에 대해 귀하의 의견을 묻고 싶습니다.
- 어떤 데비안 버전이 더 유사합니까?진짜Ubuntu 14를 이전 Debian으로 전환할 수 있나요? 제가 이 질문을 하는 이유는 제가 기억력이 좋지 않아서 모든 사람에게 제가 과거에 전환을 했다고 100% 확신할 수 없기 때문입니다.
- 최신 LTS로 큰 도약을 하지 않고도 2023년에 서버를 다음 우분투 LTS로 업그레이드할 수 있는 방법이 있습니까?
答え1
초기화 시스템이 다르기 때문에 해당 버전의 Ubuntu와 Debian 간에 변환하는 것을 권장하지 않습니다. Ubuntu 14.04는 Debian이 한 번도 승인한 적이 없는 Upstart를 사용합니다.
최신 Ubuntu로 업그레이드할 수 있습니다. 한 번에 하나의 LTS 버전(14.04 → 16.04 → 18.04 → 20.04 → 22.04)을 수행해야 합니다. 시간이 걸리지만 특히 서버에서는 위험이 낮습니다. 문제의 가장 큰 원인은 일반적으로 타사 응용 프로그램이며 때로는 유니버스의 패키지 간 상호 작용입니다. 일반적인 VPS는 일반적인 데스크톱보다 문제가 발생할 가능성이 적습니다.
시작하기 전에 VPS가 실행 중인 항목을 검토하고 레거시 소프트웨어에 대한 종속성을 처리할 계획을 세우십시오. 예를 들어, 오래된 PHP 코드가 있는 경우 먼저 최신 버전의 PHP에서 작동하는지 테스트하세요.
업그레이드 준비
모든 우분투 버전은이전 버전 서버에 보관됨. 따라서 가장 먼저 해야 할 일은 로 /etc/apt/sources.list
대체하도록 편집하는 것입니다 . 또한 후속 버전에 대한 패키지 소스 등이 있는지 확인하십시오 . 일반적으로 다음 버전으로 업그레이드할 때 발생하는 문제를 해결하기 위해 버전 수명 주기가 끝날 무렵 일부 업데이트가 있습니다. 그래서 당신의 모습은 다음과 같아야합니다 :archive.ubuntu.com
old-releases.ubuntu.com
trusty-updates
/etc/apt/sources.list
deb http://old-releases.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
하나가 아닌 여러 행이 있을 수 있습니다. 일부 restricted
, universe
및 multiverse
: 을 잃을 수도 있습니다. 그것도 괜찮습니다(사실, 가지고 있는 것이 적을수록 잠재적인 문제의 원인도 적어지지만, 물론 설치한 패키지를 설치한 경우 해당 패키지를 유지해야 합니다).
그런 다음 이 이전 버전에 대해 보류 중인 업데이트를 실행하세요.
apt-get update
apt-get upgrade
이 시점에서는 /etc
. 당신은 이것을 쉽게 할 수 있습니다관리자를 기다려주세요.
apt-get install etckeeper
etckeeper init
etckeeper commit 'Initial commit before upgrading from Ubuntu 14.04'
타사 리포지토리(예: PPA)를 활성화한 경우 이를 비활성화하고 업그레이드 프로세스 중에 해당 패키지를 제거해야 합니다. 그러한 저장소가 존재하는 경우 먼저 /etc/apt/sources.list
또는 에서 해당 행을 주석 처리하십시오 /etc/apt/sources.list.d/*
. etckeeper commit
변경 사항을 기록하려면 실행하세요 . 그런 다음 사용되지 않는 패키지를 찾습니다(사용되지 않는 패키지는 현재 패키지 소스에서 다시 설치할 수 없는 패키지입니다).
apt-get install aptitude
aptitude search '~o'
원하는 경우 aptitude의 대화형 모드를 사용할 수 있습니다. 오래된 패키지를 기록해 두고 제거하세요.
LTS에서 LTS로 업그레이드
이제 업그레이드를 시작할 준비가 되었습니다. (14.04)를 편집 /etc/apt/sources.list
하고 (16.04)로 바꿉니다. 변경 사항을 기록하려면 실행하세요. 그런 다음 실행trusty
xenial
etckeeper commit
apt-get update
apt-get dist-upgrade
패키지를 다운로드하고 설치할 때 오랜 시간 지루함을 느끼며 때로는 몇 가지 문제가 발생할 수도 있습니다.
문제가 있으면 즉시 해결해 주시기 바랍니다.
업그레이드가 완료되면 bionic
(18.04)로 업그레이드하는 과정을 반복하세요. 이 답변을 작성 xenial
하는 동안 bionic
이것은 이전 버전 서버가 아닌 여전히 스톡 서버에 old-releases.ubuntu.com
있으므로 archive.ubuntu.com
.
focal
그런 다음 (20.04) 로 다시 업그레이드한 다음 (22.04)로 업그레이드를 반복합니다 jammy
.
이 작업을 완료한 후 타사 저장소를 활성화한 경우 해당 저장소를 다시 활성화하거나 이에 상응하는 최신 저장소를 찾으세요. 업그레이드하기 전에 제거한 타사 앱을 다시 설치하고, 해당되는 경우 보유하고 있던 타사 앱을 업그레이드하세요 /usr/local
. 모든 것이 잘 작동하는지 테스트해 보세요.
만료된 키 및 인증서 처리
키가 만료되었거나 루트 CA를 알 수 없기 때문에 암호화 확인 문제가 발생할 수 있습니다.
비앤티크 버전으로 업그레이드하기 전에 HTTPS 패키지 소스가 작동하지 않으면 처음부터 HTTP 패키지 소스를 사용하세요.
만료된 키에 대해 APT로부터 오류를 받은 경우 다음을 수행할 수 있습니다.우회. 또는 최신 배포판에서 키링 패키지를 설치하는 것이 도움이 될 수 있지만 정확히 무엇이 필요한지 모르겠습니다. 이것우분투 열쇠 고리패키지에는 현재 버전의 키 /usr/share/keyrings/ubuntu-archive-removed-keys.gpg
외에 이전 버전의 키가 포함된 파일이 포함되어 있습니다./usr/share/keyrings/ubuntu-archive-keyring.gpg