명령 줄을 통해 업데이트를 설치하는 방법은 무엇입니까?


692

SSH를 통해 웹 서버에 로그인하면 정보가 표시됩니다.

88 packages can be updated.
80 updates are security updates

나는 apt-get update그때 시도 apt-get upgrade했지만 로그인 할 때마다 여전히 업데이트에 대한 메시지가 표시됩니다. 어떻게 설치합니까?


1
먼저 시도 했습니까 : sudo apt-get clean 캐시를 정리해야합니다.
user2635584

답변:


868

이것을 사용하십시오 :

sudo apt update        # Fetches the list of available updates
sudo apt upgrade       # Installs some updates; does not remove packages
sudo apt full-upgrade  # Installs updates; may also remove some packages, if needed
sudo apt autoremove    # Removes any old packages that are no longer needed

apt옵션 에 대한 설명서는 apt 맨 페이지 에서 찾을 수 있습니다 . man apt터미널에서 실행 하여 사용할 수도 있습니다 .

둘 다 upgradefull-upgrade함께 사용 하는 것은 일반적으로 필요하지 않지만 경우에 따라 도움이 될 수 있습니다 . Debian 9에서 업그레이드에 대한 데비안 문서를 참조하십시오 .


29
sudo reboot그 후에 항상 다시 시작해야합니까 ?
hellboy

1
작동하려면 -y 를 추가 해야했습니다. 우분투 17.10
T04435

124

sudo한 번 입력하여 모든 명령을 실행하십시오 .

sudo -- sh -c 'apt-get update; apt-get upgrade -y; apt-get dist-upgrade -y; apt-get autoremove -y; apt-get autoclean -y'

또는

sudo -s -- <<EOF
apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y
apt-get autoremove -y
apt-get autoclean -y
EOF

for 루프 에서 더 짧습니다 (감사합니다 @dessert).

sudo bash -c 'for i in update {,dist-}upgrade auto{remove,clean}; do apt-get $i -y; done'

3
당신은 결합 할 수 dist-upgradeautoremoveapt-get dist-upgrade --auto-remove.
jarno

3
모두 실행할 필요가 없다 upgrade하고 dist-upgrade.
jarno

3
@jarno dist-upgrade는 패키지를 제거 할 수 있습니다. upgrade새 패키지 버전이 이전 버전보다 종속성을 더 쉽게 충족시키는 경우와 같이 first를 사용하면 이를 피할 수 있습니다. Ubuntu의 안정적인 릴리스 내에서 패키지를 업그레이드 할 때 이것이 얼마나 자주 도움이되는지 모르겠지만 다른 상황에서는 권장됩니다 . 개인적으로, 나는 dist-upgrade우분투에서 거의 사용하지 않으며 , 그렇게 할 때 결코 지나치지 않습니다 -y. 그러나 하나가 실행 dist-upgrade되고 통과 -y하는 경우 upgrade먼저 작업 을 수행하는 것이 합리적이라고 생각합니다 .
엘리아 케이건

1
@jarno --autoremove선택한 업그레이드 명령과 함께 연결할 수는 있지만 패키지 중 하나가 실패하면 부정한 상태가 될 수 있으므로 권장하지 않습니다. autoremove업데이트 프로세스가 완료된 후 별도의 줄에 단독으로 사용하는 것이 더 좋습니다 . 이전 구성 파일도 정리하려면이 파일을 체인으로 연결할 수 있습니다 --purge.
Videonauth

@Videonauth 아, apt구현 방법 에 달려 있습니다. 시스템을 부정한 상태로 두지 않도록 구현해야한다고 생각합니다.
jarno

91

이것은 정상적인 동작입니다.

로그인시 표시되는 메시지는 서버 상태 'Message-Of-The-Day'에 추가되며, 이는 매일 달력으로 업데이트됩니다 (또는 서버 부팅 / 시작시). 를 사용하여 내용을 살펴보십시오.

cat /etc/motd

실행 후 동일한 업데이트가 계속 표시됨

sudo apt-get update && sudo apt-get upgrade

예상됩니다. 그런 다음이 명령을 다시 실행하면 추가 (최신) 업데이트가 릴리스 된 경우 추가 업데이트를 묻는 메시지 표시됩니다.


전체 시스템의 파일 변경 사항이 다음 날까지 표시되지 않는다는 것을 알고 있습니다. "새로 고침"과 같이 변경 사항을 즉시 볼 수 있습니까?
aljuaid86

Message-Of-The-Day 의 내용에 대한 업데이트 또는 실행 후 원하는 것을 얻지 못했 sudo apt-get update && sudo apt-get upgrade습니까?
david6

3
16.04에서는 더 이상 적용되지 않습니다. "apt-get dist-upgrade"및 재부팅 후 "0 패키지를 업그레이드 할 수 있습니다"가 표시됩니다.
Bogdan Calmac

1
위의 '.. 또는 서버 재부팅시 ..' 문에서이를 다룹니다.
david6

3
cat : / etc / motd : 해당 파일이나 디렉토리가 없습니다
xApple

11

서버에 로그인 한 후 아래 명령을 실행하십시오.

sudo apt-get upgrade

트릭을해야합니다. 서버를 다시 시작해야 할 수도 있습니다.


3
귀하의 답변에 감사하지만 sudo apt-get upgrade를 시도했습니다. 서버를 다시 시작하면 문제가 발생하지 않습니다.
Marlin

3
커널에 직접 영향을 미치는 업데이트를 설치했거나 드라이버 업데이트이거나 중요한 보안 업데이트 인 경우 서버를 다시 시작해야합니다.
Evandro Silva

어쩌면 1 분 동안 오류 503을 고려해야합니다. 이것이 어떤 종류의 업데이트인지 아십니까?
NorTicUs

1
서버가 오프라인 인 경우 어떻게 503을 줄 수 있습니까?
mcont

8

제 경우 에는 /etc/apt/sources.list에 잘못되었거나 액세스 할 수없는 URL이 있었습니다 . 이 URL을 제거한 후 모든 패키지를 성공적으로 업데이트 할 수있었습니다.

명령 :

sudo vi /etc/apt/sources.list
sudo apt-get update && sudo apt-get upgrade

7

내 (정말 늦게, 나는 necromancer 배지를 좋아한다 :-)) 해결책 :

  1. wajig 설치 (한 번) :

    sudo apt-get install wajig 
    
  2. 시스템을 완전히 업데이트 / 업그레이드하려는 경우

    wajig dailyupgrade
    

    필요한 경우 비밀번호를 요청하고 모든 업데이트, 업그레이드, dist-upgrade 및 자동 제거 단계를 수행합니다.



1

이 스크립트는 불필요한 패키지를 제거하고 OS가 원하는 경우에만 재부팅을 수행하는 등 업데이트를 자동화하는 데 편리합니다.

remote_user=usernamehere
remote_host=example.com

ssh -A -n -o StrictHostKeyChecking=no ${remote_user}@${remote_host} && \
sudo apt-get update && \
sudo apt-get -f install -y && \
sudo apt-get -o Dpkg::Options::="--force-confnew" -yy dist-upgrade -y && \
sudo apt-get autoremove -y && \
[ -f /var/run/reboot-required ] && \
echo "sudo reboot now" && \
sudo reboot now 

로컬 상자에서 실행하려면 ssh를 수행하는 첫 번째 줄을 떠나십시오.

~ / .bashrc에 저장 한 별칭입니다.

alias doit='echo; kill $( ps -eafww|grep update-manager|grep -v grep | grep update-manager | tr -s " " |cut -d" "  -f2 ) > /dev/null 2>&1;  echo "sudo apt-get update && sudo apt-get dist-upgrade &&  [ -f /var/run/reboot-required ] && echo && echo reboot required && echo";echo;sudo apt-get update && sudo apt-get dist-upgrade &&  [ -f /var/run/reboot-required ] && echo && echo reboot required && echo '

그런 다음 터미널에서 방금 발행합니다. doit


0

apt-get update종료 된 후 다시 실행하면 apt-get upgradessh 로그인시 해당 메시지가 사라집니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.