업데이트와 업그레이드가 분리되는 이유는 무엇입니까?

업데이트와 업그레이드가 분리되는 이유는 무엇입니까?

apt에서 명령이 update사용 가능한 패키지 목록을 업데이트하지만 해당 패키지에서 이미 설치된 소프트웨어를 업그레이드하지는 않는다는 것을 이해합니다 .

또한 위에서 설명한 대로 upgrade업데이트한 패키지에서 이미 설치한 모든 소프트웨어가 업그레이드된다는 점을 이해합니다 .update

updateUbuntu/Debian 개발자가 이렇게 분할 하고 upgrade대신 하나의 명령으로 두 작업을 모두 수행한 이유는 무엇입니까 ?

이것은 우분투 개발자의 아키텍처 철학에 대한 질문에 가깝습니다.

답변1

update와 사이의 차이점에 대한 기록은 upgrade실제로 꽤 멋집니다.

아주 오래 전, 즉 우분투가 존재하기 몇 년 전인 약 2000년 전쯤에 대역폭과 디스크 공간은 1990년대 중반에 비해 확장되었지만 훨씬 더 제한적이었습니다. 광대역 서비스는 이제 막 시작되었고, 전화접속은 여전히 ​​온라인 접속을 위한 중요한 방법이었습니다. 큰 디스크는 여전히 수백 MB에 불과했습니다. Apt는 dpkg 위에 구축된 반짝이고 새롭고, 급진적이고 혁명적이었습니다.

생각해 보면 적절한 데이터베이스는 정말 놀라운 것입니다.모두소프트웨어모두알려진 저장소. 이는 종속성을 계산하고 사용 가능한 업그레이드를 식별할 수 있을 만큼 충분히 상세하지만 당시의 전화 접속 모뎀을 통해 전송하고 당시의 소형 드라이브에 저장할 수 있을 만큼 작습니다. 전화로 데이터베이스를 업데이트하는 데는 시간이 걸릴 수 있습니다.좋은 연결을 통해. 지금은 오랜 시간이 걸렸지만 패키지 업데이트를 수동으로(apt 이전에) 검색하면 시간이 많이 걸릴 수 있습니다.시간.

그 당시 배포판은 다르게 구축되었습니다. 지속적인 통합도 없고 연기 테스트도 없으며(글쎄, 전혀 테스트가 많지 않습니다!) 빌드 팜이 이제 막 시작되었습니다. 업그레이드를 지금보다 더 자주 되돌려야 했습니다. 많은 사용자가 선택했습니다.~ 아니다다양한 이유로 특정 패키지를 업그레이드하거나 오늘 특정 업그레이드만 선택하고(수동으로 테스트하기 위해) 내일 다른 업그레이드를 선택합니다.

그 후 15년여 동안,도구많이 바뀌지 않았기 때문에 여전히 별도의 updateupgrade작업이 있습니다. 그만큼사용자 작업 흐름distro 안정성이 향상됨에 따라 진화했으며, 수동으로 수행되었던 소스/업데이트/업그레이드 관리의 대부분이 자동화 계층( software-updater, unattended-upgrades) 뒤에 서서히 숨겨졌습니다.

소프트웨어 패키지 도구를 현대화하는 것은 Snaps, AppImage 및 Flatpak이 최근 등장한 이유 중 하나이지만 이것이 다음 장입니다.

답변2

업그레이드가 필요할 수 있는 유일한 시간은 아니며 apt-get update단순히 패키지 목록을 업데이트하고 싶을 때마다 업그레이드하고 싶지 않습니다.

제대로 작동하는 우물은 얼마 전에 운영되었는지 apt-get upgrade에 따라 달라질 수 있지만 이는 과 에도 마찬가지입니다! 이 모든 것이 암시되어야 합니까 ? 당연히 아니지! 자원 효율성과 디자인 청결성의 단순한 문제로, 하나의 작업이 여러 다른 작업에 공통적인 경우 이를 제외해야 합니다.apt-get updateapt-get removeapt-get installapt-get update

반대로, apt-get remove과 가 최근에 실행되어 성공적으로 완료되었는지 apt-get install여부에 따라 달라질 수 있다는 점을 고려하면 의 각 실행에 대해 apt-get update의미가 있습니까 ? 아니요, 다시 한 번 말씀드리지만, 제가 하려는 일과 앞으로 할 일이 충돌할 수도 있기 때문입니다.apt-get upgradeapt-get updateapt-get upgrade

답변3

소프트웨어 소스를 변경할 때마다 sudo apt update사용 가능한 소프트웨어 목록을 새로 고치려면 명령을 실행해야 합니다. 그런 다음 방금 추가한 새 소프트웨어 소스에서 사용 가능한 패키지를 검색하거나 설치할 수 있습니다.

이 명령은 sudo apt upgradeSoftware Updater 응용 프로그램을 사용하여 설치된 패키지 목록을 업그레이드하는 것과 동일한 터미널입니다. 이는 새 소프트웨어 소스를 추가하고, 새 소프트웨어 소스의 패키지를 포함하도록 사용 가능한 소프트웨어 목록을 업데이트하고, 방금 추가한 새 소프트웨어 소스에서 새 패키지를 설치하는 일반적인 워크플로우와 다르기 때문에 더 편리합니다. 덜 혼란스럽고 sudo apt updatesudo apt upgrade별도의 명령입니다.

또한 분리하는 것이 덜 혼란스럽습니다 sudo apt update. 성공적으로 sudo apt upgrade실행하면 sudo apt update인터넷에 연결되어 있음을 확인한 것이기 때문입니다. 이후 실행 시 문제가 발생한다면 sudo apt upgrade인터넷 연결 문제보다는 패키지 관리 문제일 가능성이 높으며, 결과는 sudo apt upgrade문제 진단 및 해결의 단서를 제공할 것입니다.

답변4

공식 우분투 저장소에서 프로그램을 다운로드한 apt다음 설치하는 이유가 무엇인지 물어볼 수 있습니까? 한 번의 작업으로 다운로드하고 설치하는 것보다 먼저 다운로드한 후 설치하면 어떤 차이가 있을까요?

댓글을 읽고 이것에 대해 더 많이 생각한 후에 이것이 원인이라는 것을 이해합니다.유닉스 철학, ㅏ모듈식기본적으로 "각 프로그램은 한 가지 작업을 수행합니다"라고 말하는 철학: 먼저 다운로드한 다음 설치합니다. 각 작업에는 자체 전용 프로그램이 있습니다.

관련 정보