回答:
次のコマンドは、プロンプトなしで新しい安定版リリースにアップグレードします。
do-release-upgrade -f DistUpgradeViewNonInteractive
次のコマンドは、プロンプトなしで現在の開発リリースにアップグレードします。
do-release-upgrade -d -f DistUpgradeViewNonInteractive
私はそれをテストしていませんが、質問が発生したときにデフォルトのアクションを実行するだけのようです。また、ハングしすぎているスクリプトはタイムアウトになります。
dpkg-reconfigure
特定のパッケージの構成に不満がある場合は、後で使用する必要がありますが、ほとんどの場合は大丈夫です。
出典:http://awaseroot.wordpress.com/2012/04/29/ubuntu-release-upgrade-fully-automatic-non-interactive-upgrade/。リンクには、これを行う他の方法もあります。
sudo apt-get install grub-emu
?
以前の回答を拡張するために、sshを介したパスワードなしのアップグレードを使用してボックスを最新バージョンにアップグレードし、受け入れられた回答と同じようにリモートで行う方法を次に示します。それは私自身のブログエントリーからコピーされます。
これらの手順はすべて、パッケージリポジトリが機能していることを前提としています。つまり、apt-get updateを実行すると、バージョンが古いために多くの404が表示されません。最初にそれを修正する必要があるので、そのためのこの回答を参照してください。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
パスワードを入力せずにsudoを使用してdo-release-upgradeを実行できるユーザーのリストに自分を追加するには、次を実行します。
sudo visudo -f /etc/sudoers.d/do-release-upgrade.
そして、次の行を追加して、もちろん自分のユーザー名を自分のユーザー名に置き換えます。
my-username ALL=NOPASSWD: /usr/bin/do-release-upgrade
ログアウトして、コンピューターから次のコマンドを実行します。入力を求めるプロンプトを表示せずにアップグレードを実行し(すべてのデフォルトの回答を受け入れます)、コンピューターが再起動するのを待ってから、再度アップグレードを試みます。最新バージョンにアップグレードされるまで実行されます。
while true; do
ssh my-user@my-server sudo do-release-upgrade -f DistUpgradeViewNonInteractive;
sleep 120;
done
その後、アップグレードプロセスによりデフォルトの設定が配置されるため、バックアップされた設定ファイルを以前の場所に移動する必要があります。
この男は、プロンプトごとに回答を事前に準備する方法を持っていますが、欠点は、プロンプトがいくつあるかを知る必要があることです…
Thomas Wardが答えで述べていることを確認し、受け入れられた答えと矛盾するために、do-release-upgrade -d -f DistUpgradeViewNonInteractive
うまくいきません。
実際、最初のプロンプトで、16.04から18.04のテストパーティションが破損し、再クローン化する必要がありました。これは、スクリプトがフリーズする場所です。
Setting up mount (2.31.1-0.4ubuntu3) ...
Setting up systemd (237-3ubuntu10) ...
Installing new version of config file /etc/pam.d/systemd-user ...
Installing new version of config file /etc/systemd/journald.conf ...
Configuration file '/etc/systemd/logind.conf'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** logind.conf (Y/I/N/O/D/Z) [default=N] ? y
Y
CRASHED... NOTHING HAPPENS NOW... WILL KILL AND RESTART WITHOUT -f OPTION...
Input Inhibitorにより、スクリプトを強制終了した後、再起動もシャットダウンも機能しません。コールドシャットダウンを行う必要があります(電源ボタンを10秒ほど押し続けます)。
ありがたいことに、これは16.04クローンアップグレードであり、実際の16.04パーティションではありませんでした。
人生をさらに面白くするために、新しい898 MBパーティションがNVMe SSDに追加され、通常のパーティションがシフトされました。
$ lsdrv
NAME FSTYPE LABEL MOUNTPOINT SIZE MODEL
nvme0n1 477G Samsung SSD 960 PRO 512G
├─nvme0n1p5 ntfs 858M
├─nvme0n1p3 16M
├─nvme0n1p1 ntfs 450M
├─nvme0n1p8 ntfs Shared_WSL+Linux /mnt/e 9G
├─nvme0n1p6 ext4 Ubuntu18.04 23.7G
├─nvme0n1p4 ntfs NVMe_Win10 /mnt/c 390.4G
├─nvme0n1p2 vfat /boot/efi 99M
├─nvme0n1p9 swap Linux Swap [SWAP] 7.9G
└─nvme0n1p7 ext4 NVMe_Ubuntu_16.0 / 44.6G
nvme0n1p5
以前はUbuntu 16.04パーティションが存在していた場所でしたが、現在はオンになっています nvme0n1p7
nvme0n1p8
18.04テストパーティションがあった場所でしたが、現在はオンになっています nvme0n1p8
注:また、Windows 10をビルド1709からビルド1803に今日の午後にアップグレードしたため、新しい898 MBのnvme0n1p5
パーティションがntfs
フォーマットで作成された可能性があります。
これを行うには、ターミナルを使用しsudo apt-get -y upgrade
ます。これは、すべてのプロンプトに「はい」と答えます。ただし、自動的には実行されないため、実行する必要があります。それはすべき仕事します。知る限りでは、GUI更新マネージャーを使用してソフトウェアの無人アップグレードを行う方法はありません(これはリリースアップグレードと同じではありません!)
別のUbuntuバージョン(別名、リリースアップグレード、通常はUbuntuのバージョンに関連するリリースの次のリリース)にアップグレードしようとしている場合は、手動でアクティブ化する 必要があります。 sudo do-release-upgrade
動作する可能性があります。ただし、過去のプロンプトをスキップする方法はありません。そのため、このようなプロンプトを表示するときにアップグレードを開始します。プロンプトが表示されます。
-f DistUpgradeViewNonInteractive
フラグによりスクリプトが最初の(Y/I/N/O/D/Z)
プロンプトでロックされるためです。投稿した回答をご覧ください。
に-y
オプションを追加してみてください。apt-get
ただし、y
すべてのクエリに応答することがわかっています。
apt-get dist-upgrade
は正常に動作するはずです。ここで何が機能しなくなったのですか?
apt-get dist-upgrade
は、どのオペレーティングシステムでも、単独でリリースアップグレードを実行したことはありません。をご覧くださいman apt-get
。upgrade
パッケージを新しくインストールまたはアンインストールせずにアップグレードできるパッケージのみをアップグレードします。dist-upgrade
パッケージが削除または追加されることを意味する場合でも、パッケージをアップグレードします。これは、通常の更新を実行するのに主に役立ちupgrade
ます。たとえば、カーネルをアップグレードしません。
sources.list
次のリリースのアーカイブを指すようにし、その後、実行中のapt-get dist-upgrade
意志を、それが成功した場合、リリースのアップグレードを実行します。これはDebianでサポートされていますがaptitude dist-upgrade
、より高度な依存関係解決のため、代わりに使用することをお勧めします。Ubuntuでは、成功するかもしれませんが、このようなものはまったくサポートされていません。代わりに、コマンドラインで新しいリリースにアップグレードするためにdo-release-upgrade
使用されます。このユーティリティは-y
フラグを使用しないため、この回答は新しいリリースにアップグレードする状況には適用されません。