Frage Skript zum Überprüfen auf installierte Anwendungen


Ich versuche ein Skript für ubuntu 10.0.4 zu schreiben, um nach einer Anwendung auf meinem System zu suchen. Ich möchte, dass das Skript sieht, ob die bestimmte benannte Anwendung installiert ist, und falls dies der Fall ist, ob sie aktualisiert werden muss. Ich möchte auch, dass das Skript die App automatisch installiert, wenn sie nicht installiert ist, oder die Anwendung aktualisieren, wenn sie installiert ist. Wie wenn ich WINE oder GIMP installieren müsste. Ich bin nicht sicher, wie man die Befehle strukturiert, aber ich weiß, dass ich apt-get oder yum benutzen werde, um die Anwendung zu finden.


1
2018-05-04 19:37


Ursprung




Antworten:


Sie können diese zwei Teile kombinieren:

dpkg-query -W -f '${status} ${package} ${version}\n' |
sed -n 's/^install ok installed //p'

Dies zeigt die Namen aller installierten Pakete einschließlich ihrer Versionen an. Wenn Sie keine Versionsnummern benötigen, lassen Sie den $ {version} -Teil weg.

Führen Sie dann apt-get update aus, um aktualisierte Paketlisten zu erhalten, und:

/usr/lib/update-notifier/apt-check  -p

Dadurch erhalten Sie die Namen der Pakete, für die Updates verfügbar sind.

Eine Idee wäre (nimm das nicht wörtlich, ich gebe nur eine Idee):

#!/bin/bash

$first_command > installed_packages
$second_command > packages_with_updates

if (grep $YOUR_PACKAGE installed_packages); then
   echo "Package is installed"
   if (grep $YOUR_PACKAGE packages_with_updates); then
      sudo apt-get -q -q update #apt-get runs in quiet mode to avoid lots of output
      echo "Update available for package"
      #Whatever you need to update the package here
   fi
else
   echo "Package not installed, installing..."
   #whatever you need to do to install here
fi

2
2018-05-04 20:23



Es ist ein guter Anfang, und danke ... aber wie würden Sie es konfigurieren, um einen solchen Check für ein einzelnes benanntes Paket auszuführen, das jedes Mal geändert werden kann, wenn Sie das Skript ausführen? Wenn ich dieses Mal nach vlc suche und es erneut starte, um nach Wein zu suchen? - J.R.
etwas wie YOUR_PACKAGE=$1 am Anfang. Dann rufe es mit an update-package wine für Wein und update-package vlc für vlc. $ 1, $ 2, ... bedeuten den ersten, zweiten und folgenden Befehlszeilenparameter. - roadmr