Hmm, eine Möglichkeit wäre, einen Wrapper um den Systempaket-Manager zu schreiben, dh apt-get, und wenn Pakete nicht zurückgegeben werden, installieren Sie sie mit cpan, cpanm usw.
sub check_pre_req_package {
mein $ package = shift;
System ("dpkg -s $ package> / dev / null 2> & 1");
if ($ ?! = 0) {
system ("apt-get -y installiere $ package> / dev / null 2> & 1");
if ($ ?! = 0) {
System ("cpanm $ package");
}}
}}
elsif ($? == 0) {
print "Paket $ Paket ist bereits installiert \ n";
}}
}}
meine @pre_req_packages = qw (strace nmap gcc);
foreach (@pre_req_packages) {
check_pre_req_package ($ _);
}}
Auf diese Weise müssten Sie natürlich zwischen Groß- und Kleinschreibung unterscheiden (oder die Groß- und Kleinschreibung ändern), da ich glaube, dass Debian in Kleinbuchstaben ein Format von lib (Paketname) -perl verwendet und cpan ein anderes Format usw. wünscht. Außerdem ist dieser Code ungetestet und etwas, das gerade zusammengewürfelt wurde.
Dann gibt es gute alte Bash-Skripte, zum Teufel habe ich in diesem Beispiel Systembefehle verwendet
Mein bester Vorschlag ist, dass Sie sich mit der Verwendung von Cfengine oder Puppet und / oder einem anderen System befassen, von dem ich sicher bin, dass es ein Systemkonfigurationsmanagement gibt. Verwenden Sie dann svn oder git oder so ..., um Änderungen an einem Repo vorzunehmen, das auf allen Ihren Servern bereitgestellt wird. Wenn Sie die Änderungen an "zahlreichen" Servern verwalten und vornehmen möchten, erleichtert cfengine / puppet / etc Ihr Leben nach der Einrichtung erheblich. nur meine zwei.