Ubuntu Linuxを採用していますので、apt-get コマンドによりパッケージを最新の状態に保つことが可能です。
“apt-get update” により、パッケージデータベースを最新に更新します。
user1@plum:~$ sudo apt-get update [sudo] password for user1: Ign http://ports.ubuntu.com saucy InRelease Ign http://ports.ubuntu.com saucy-updates InRelease Ign http://ports.ubuntu.com saucy-security InRelease Hit http://ports.ubuntu.com saucy Release.gpg Get:1 http://ports.ubuntu.com saucy-updates Release.gpg [933 B] Get:2 http://ports.ubuntu.com saucy-security Release.gpg [933 B] Hit http://ports.ubuntu.com saucy Release Get:3 http://ports.ubuntu.com saucy-updates Release [49.6 kB] Get:4 http://ports.ubuntu.com saucy-security Release [49.6 kB] Hit http://ports.ubuntu.com saucy/main armhf Packages Hit http://ports.ubuntu.com saucy/restricted armhf Packages Hit http://ports.ubuntu.com saucy/universe armhf Packages Hit http://ports.ubuntu.com saucy/main Translation-en Hit http://ports.ubuntu.com saucy/restricted Translation-en Hit http://ports.ubuntu.com saucy/universe Translation-en Get:5 http://ports.ubuntu.com saucy-updates/main armhf Packages [217 kB] Get:6 http://ports.ubuntu.com saucy-updates/restricted armhf Packages [14 B] Get:7 http://ports.ubuntu.com saucy-updates/universe armhf Packages [148 kB] Hit http://ports.ubuntu.com saucy-updates/main Translation-en Hit http://ports.ubuntu.com saucy-updates/restricted Translation-en Hit http://ports.ubuntu.com saucy-updates/universe Translation-en Get:8 http://ports.ubuntu.com saucy-security/main armhf Packages [107 kB] Get:9 http://ports.ubuntu.com saucy-security/restricted armhf Packages [14 B] Get:10 http://ports.ubuntu.com saucy-security/universe armhf Packages [33.4 kB] Hit http://ports.ubuntu.com saucy-security/main Translation-en Hit http://ports.ubuntu.com saucy-security/restricted Translation-en Hit http://ports.ubuntu.com saucy-security/universe Translation-en Fetched 607 kB in 11s (54.5 kB/s) Reading package lists... Done user1@plum:~$
“apt-get upgrade” により、更新されたパッケージがある場合、最新状態に更新します。
user1@plum:~$ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be upgraded: nginx-common nginx-light 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 250 kB of archives. After this operation, 0 B of additional disk space will be used. Do you want to continue [Y/n]? Get:1 http://ports.ubuntu.com/ubuntu-ports/ saucy-updates/universe nginx-common all 1.4.1-3ubuntu1.3 [16.9 kB] Get:2 http://ports.ubuntu.com/ubuntu-ports/ saucy-updates/universe nginx-light armhf 1.4.1-3ubuntu1.3 [233 kB] Fetched 250 kB in 2s (93.5 kB/s) (Reading database ... 19200 files and directories currently installed.) Preparing to replace nginx-common 1.4.1-3ubuntu1.2 (using .../nginx-common_1.4.1-3ubuntu1.3_all.deb) ... Unpacking replacement nginx-common ... Preparing to replace nginx-light 1.4.1-3ubuntu1.2 (using .../nginx-light_1.4.1-3ubuntu1.3_armhf.deb) ... Unpacking replacement nginx-light ... Processing triggers for ufw ... Processing triggers for ureadahead ... Setting up nginx-common (1.4.1-3ubuntu1.3) ... Setting up nginx-light (1.4.1-3ubuntu1.3) ... localepurge: Disk space freed in /usr/share/locale: 0 KiB localepurge: Disk space freed in /usr/share/man: 0 KiB Total disk space freed by localepurge: 0 KiB user1@plum:~$
装置が手元にある場合や、運用している台数が少ない場合には、上記の手作業でのアップデートでも問題はないのですが、
といった場合、自動でアップデートする設定ができると便利です。
自動でアップデートを行うための設定方法を紹介します。
“unattended-upgrades” パッケージがインストールされています。
user1@plum:~$ sudo dpkg -l unattended-upgrades Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-=====================-===============-===============-================================================ ii unattended-upgrades 0.79.3ubuntu8 all automatic installation of security upgrades user1@plum:~$
設定はデフォルトのまま、セキュリティアップデートのみ自動で適用される設定になっています。
user1@plum:~$ cat /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"; }; // List of packages to not update Unattended-Upgrade::Package-Blacklist { // "vim"; // "libc6"; // "libc6-dev"; // "libc6-i686"; }; // This option allows you to control if on a unclean dpkg exit // unattended-upgrades will automatically run // dpkg --force-confold --configure -a // The default is true, to ensure updates keep getting installed //Unattended-Upgrade::AutoFixInterruptedDpkg "false"; // Split the upgrade into the smallest possible chunks so that // they can be interrupted with SIGUSR1. This makes the upgrade // a bit slower but it has the benefit that shutdown while a upgrade // is running is possible (with a small delay) //Unattended-Upgrade::MinimalSteps "true"; // Install all unattended-upgrades when the machine is shuting down // instead of doing it in the background while the machine is running // This will (obviously) make shutdown slower //Unattended-Upgrade::InstallOnShutdown "true"; // Send email to this address for problems or packages upgrades // If empty or unset then no email is sent, make sure that you // have a working mail setup on your system. A package that provides // 'mailx' must be installed. E.g. "user@example.com" //Unattended-Upgrade::Mail "root"; // Set this value to "true" to get emails only on errors. Default // is to always send a mail if Unattended-Upgrade::Mail is set //Unattended-Upgrade::MailOnlyOnError "true"; // Do automatic removal of new unused dependencies after the upgrade // (equivalent to apt-get autoremove) //Unattended-Upgrade::Remove-Unused-Dependencies "false"; // Automatically reboot *WITHOUT CONFIRMATION* if a // the file /var/run/reboot-required is found after the upgrade //Unattended-Upgrade::Automatic-Reboot "false"; // Use apt bandwidth limit feature, this example limits the download // speed to 70kb/sec //Acquire::http::Dl-Limit "70"; user1@plum:~$
このパッケージを入れただけでは、自動アップデートは有効にはなりません。
下記コマンドの実行により、有効化することができます。
user1@plum:~$ sudo dpkg-reconfigure -plow unattended-upgrades
<Yes> を選択します。
user1@plum:~$ sudo dpkg-reconfigure -plow unattended-upgrades Creating config file /etc/apt/apt.conf.d/20auto-upgrades with new version user1@plum:~$ cat /etc/apt/apt.conf.d/20auto-upgrades APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1"; user1@plum:~$
これで設定が有効になりました。
詳細については、Automatic Updates を参照してください。