]>
git.proxmox.com Git - pve-manager.git/blob - bin/pveupgrade
13 use PVE
::RPCEnvironment
;
16 $ENV{'PATH'} = '/sbin:/bin:/usr/sbin:/usr/bin';
18 initlog
('pveupgrade');
20 die "please run as root\n" if $> != 0;
22 PVE
::INotify
::inotify_init
();
23 my $nodename = PVE
::INotify
::nodename
();
25 my $rpcenv = PVE
::RPCEnvironment-
>init('cli');
27 $rpcenv->init_request();
28 $rpcenv->set_language($ENV{LANG
});
29 $rpcenv->set_user('root@pam');
33 if (!GetOptions
("shell" => \
$start_shell)) {
34 print "Usage: $0 [--shell]\n";
38 my $st = File
::stat::stat("/var/cache/apt/pkgcache.bin");
39 if (!$st || (time() - $st->mtime) > (3*24*3600)) {
41 print "\nYour package database is out of date. Please update that first.\n\n";
45 my $cmdstr = 'apt-get dist-upgrade';
47 print "Starting system upgrade: apt-get dist-upgrade\n";
49 my $oldlist = PVE
::API2
::APT-
>list_updates({ node
=> $nodename});
51 system('apt-get', 'dist-upgrade');
53 my $pkglist = PVE
::API2
::APT-
>list_updates({ node
=> $nodename});
56 if (my $count = scalar(@$pkglist)) {
57 print "System not fully up to date (found $count new packages)\n\n";
59 print "Your System is up-to-date\n\n";
63 foreach my $p (@$oldlist) {
64 if (($p->{Package
} =~ m/^pve-kernel/) &&
65 !grep { $_->{Package
} eq $p->{Package
} } @$pkglist) {
73 print "Seems you installed a kernel update - Please consider rebooting\n" .
74 "this node to activate the new kernel.\n\n";
80 print "starting shell\n";
81 system('/bin/bash -l');
91 pveupgrade - wrapper arournd "apt-get dist-upgrade"
99 This is a small wrapper around "apt-get dist-upgrade". We use this to
100 print additional information (kernel restart required?), and
101 optionally run an interactive shell after the update (--shell)