본인은 여기에 구글 크롬에 대한 침묵 자동 업데이트를 사용하는 방법에 대해 설명합니다. 그러나 spotify, docky와 같은 다른 저장소가 있으며 자동 업데이트를 사용하려는 다른 저장소가 있습니다.
우분투 10.04 시스템 에서이 작업을 수행하려고합니다. 그러나이 질문은 모든 우분투 버전에 적용됩니다. 나는이 무인 업그레이드 패키지가 설치되어 있어야합니다.
어떻게해야합니까?
본인은 여기에 구글 크롬에 대한 침묵 자동 업데이트를 사용하는 방법에 대해 설명합니다. 그러나 spotify, docky와 같은 다른 저장소가 있으며 자동 업데이트를 사용하려는 다른 저장소가 있습니다.
우분투 10.04 시스템 에서이 작업을 수행하려고합니다. 그러나이 질문은 모든 우분투 버전에 적용됩니다. 나는이 무인 업그레이드 패키지가 설치되어 있어야합니다.
어떻게해야합니까?
답변:
먼저 다음을 설치하십시오 gksu
.
sudo apt-get install gksu
시스템에 대한 자동 업데이트를 가능하게하는 가장 쉬운 방법은 파일을 편집하는 것입니다 50unattended-upgrades
내 /etc/apt/apt.conf.d/
예를 들어, 여러분이 좋아하는 텍스트 편집기 :
gksu gedit /etc/apt/apt.conf.d/50unattended-upgrades
여기에서 Allowed Origins 블록 의 주석 처리 된 섹션을 주석 처리해야합니다.
변화
Unattended-Upgrade::Allowed-Origins {
"${distro_id} ${distro_codename}-security";
// "${distro_id} ${distro_codename}-updates";
// "${distro_id} ${distro_codename}-proposed";
// "${distro_id} ${distro_codename}-backports";
};
에
Unattended-Upgrade::Allowed-Origins {
"${distro_id} ${distro_codename}-security";
"${distro_id} ${distro_codename}-updates";
// "${distro_id} ${distro_codename}-proposed";
// "${distro_id} ${distro_codename}-backports";
};
업데이트하려는 Ubuntu 저장소 에없는 소프트웨어의 경우 파일에 원본 및 아카이브 를 추가해야 합니다. PPA에 대한 항목을 찾으려면 폴더를 엽니 다. 즉 /var/lib/apt/lists/
, 각 패키지 리소스에 대한 상태 정보를 저장하는 영역입니다. 당신이 찾고 있는 것은 이름 으로 Release 로 끝나는 파일입니다 .
텍스트 편집기 (예 : Google Chrome)로 하나를 엽니 다.
gedit /var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_Release
Origin: Google, Inc.
Label: Google
Suite: stable
Codename: stable
Version: 1.0
Date: Thu, 17 Nov 2011 19:09:01 +0000
Architectures: i386 amd64
Components: main
Description: Google chrome-linux repository.
출처는 명백하며 ( Origin: Google, Inc.
) 아카이브는 Suite ( Suite: stable
) 라인 아래에 있습니다 .
어느 경우 Origin
나이 Suite
없는 그들은 빈 문자열입니다. 그러나 둘 다 누락 된 경우 동일한 문제가있는 다른 소스를 포함시키지 않고 무인 업그레이드로 해당 소스를 사용할 수 없습니다.
이 두 줄을 확인한 후에는 50unattended-upgrades
파일 을 편집 "<origin>:<archive>";
하고이 예제 를 위해이 형식 을 사용하여 줄을 추가해야합니다 "Google\, Inc.:stable";
.
Chrome의 원점은 끝 점이 있고 쉼표가 있기 때문에 다소 까다 롭지 만 대부분의 릴리스 파일은 읽기 쉽습니다.
다른 예로, Node JS 소스Node Source
는 아카이브가 아닌 출처 ( )를 지정합니다 . 와 일치시킬 수 있습니다 "Node Source:";
.
Allowed Origins 는 쉘 스타일 와일드 카드를 사용하여 일치합니다 (특히 Python의 fnmatch () 사용 ). 충돌하는 출처를 포함시키지 않을 정도로주의를 기울이면 다음과 같은 내용을 작성할 수 "Node *:*";
있습니다.
50unattended-upgrades
파일을 편집하기 전에 파일을 백업하는 것을 잊지 마십시오 sudo cp /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades.bak
.
당신이 사용할 수있는 파일에 수행 된 변경 테스트하려면 sudo unattended-upgrades
매개 변수로 --dry-run
와 --debug
.
--dry-run
실제로 업그레이드를 설치하지 않고 모든 것이 정상인지 확인하고 확인하는 것을 제외하고는 무인 업그레이드주기를 실행합니다.
--debug
상세 모드를 활성화합니다.
당신은 항상 로그를 확인할 수 있습니다 unattended-upgrades
에서 /var/log/unattended-upgrades/unattended-upgrades.log
.
파일을 편집하여 무인 업그레이드 구성을 변경할 수 있습니다. 구성 /etc/apt/apt.conf.d/10periodic
옵션은 /etc/cron.daily/apt
스크립트 헤더에 있습니다. 무인 업그레이드 빈도를 구성하려면이 내용을 읽으십시오.
--dry-run
입니다. 업데이트 된 목록에 사용 가능한 업데이트가 있는지 확인하여 사용자에게 출력합니다. 구성이 무엇이든 통해 목록이 업데이트됩니다. /etc/cron.daily/apt
수동으로 실행하면 생각하는 목록이 업데이트되지 않습니다.
@Bruno Pereira의 답변에 대한 자동화 된 접근 방식 : (답변이 유용한 경우 github 저장소 에 별표를 표시 하십시오.)
코드 링크 : https://github.com/abhigenie92/unattended_upgrades_repos
추가 할 저장소를 확인하십시오.
$ python automatic_upgrade.py
Add repos:
"Ubuntu:xenial";
"LP-PPA-kubuntu-ppa-backports:xenial";
"LP-PPA-tuxonice:xenial";
"LP-PPA-webupd8team-sublime-text-3:xenial";
Skipping files due to not present origin or suite. Or origin being a url.:
packagecloud.io_slacktechnologies_slack_debian_dists_jessie_InRelease
tiliado.eu_nuvolaplayer_repository_deb_dists_xenial_InRelease
이제 /etc/apt/apt.conf.d/50unattended-upgrades
그들을 포함하도록 편집하십시오 :
// Automatically upgrade packages from these (origin:archive) pairs
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
"${distro_id}:${distro_codename}-updates";
"${distro_id}:${distro_codename}-proposed";
"${distro_id}:${distro_codename}-backports";
"Ubuntu:xenial";
"LP-PPA-kubuntu-ppa-backports:xenial";
"LP-PPA-tuxonice:xenial";
"LP-PPA-webupd8team-sublime-text-3:xenial";
};
....
....
이들이 포함되어 있는지 확인하십시오.
$ sudo unattended-upgrade --dry-run --debug
Initial blacklisted packages:
Initial whitelisted packages:
Starting unattended upgrades script
Allowed origins are: ['o=Ubuntu,a=xenial-security', 'o=Ubuntu,a=xenial-updates', 'o=Ubuntu,a=xenial-proposed', 'o=Ubuntu,a=xenial-backports', 'o=Ubuntu,a=xenial', 'o=LP-PPA-kubuntu-ppa-backports,a=xenial', 'o=LP-PPA-tuxonice,a=xenial', 'o=LP-PPA-webupd8team-sublime-text-3,a=xenial']
pkgs that look like they should be upgraded:
Fetched 0 B in 0s (0 B/s)
fetch.run() result: 0
blacklist: []
whitelist: []
No packages found that can be upgraded unattended and no pending auto-removals
"Raspberry:stable";
하지 않았습니다. 대신 예를 들어"o=Raspberry, a=stable";
편집 /etc/apt/apt.conf.d/50unattended-upgrades
하고 다음을 추가하십시오.
Unattended-Upgrade::Origins-Pattern {
"origin=*";
};
모든 패키지에 대한 무인 업그레이드가 가능합니다.
origin:''
datadog-agent from 등의 패키지가 있습니다 site:'apt.datadoghq.com'
. 이 경우 "origin=";
빈 출처가있는 패키지를 건너 뛰지 않도록 추가 해야합니다. 그러나 "site=*";
대신 대신 사용하는 것이 좋습니다 "origin=*";
.
/etc/apt/sources.list.d/my_repo.list
했지만 패키지를 업그레이드하지는 않습니다. 수동으로 작동합니다 sudo apt update
. 어떤 단서?
다음 링크 에서 cron이 자동 업데이트를 시작하도록 재실행을 수행하기위한 지시 사항이 있습니다 . cron을 중지하는 절차는 다음과 같습니다
sudo service anacron stop
sudo service cron stop
sudo rm -rf /var/run/unattend* /var/run/cron* /var/run/anacron*
sudo rm -rf /var/lib/apt/periodic/*
자동 업데이트가 지금 일어나도록 (또는 적어도 몇 분 안에) cron을 다시 시작하는 것은
sudo service cron start
sudo anacron -fn
작동 원리
여러 가지로 인해 실행됩니다.
그것은 /etc/cron.daily
cron 에 의해, 특히 실행에서 해고됩니다 /etc/cron.daily/apt
. Cron은 /etc/cron.daily
오전 6시 25 분에 실행됩니다 (참조 /etc/crontab
).
Anacron은 시작부터 실행됩니까? 그리고 해고 것이다 /etc/cron.daily
(참조 가동 시간 5 분 /etc/anacrontab
)
참고 APT::Periodic::RandomSleep
는에서 설정할 수
/etc/apt/apt.conf.d/10periodic
있지만 기본값은 1800 초 (30 분)이므로 /etc/cron.daily/apt
실행 후 30 분까지 업데이트가 수행되지 않습니다 .
로그
작동하면이 폴더에 로그인해야합니다 /var/log/unattended-upgrades
.
/etc/cron.daily/apt
기본 우분투 12.04 설치에서 -. 그래서 자동 APT 업데이트 :-( 일어나고되지 않은에 Serverfault 응답 serverfault.com/a/568329/ 95570는 해당 파일 얻기에 대한 세부 정보를 제공 재를 생성.