2016-06-10 3 views
0

Ich schreibe ein Shell-Skript, damit ich schnell Abhängigkeiten auf frischen virtuellen Maschinen über OpenStack installieren kann. Ich habe diese Abhängigkeiten in einer Skriptdatei geschrieben, sondern auf ausgeführt wird, erhalte ich die folgenden Fehler für jeden:Installieren von Programmen über Shell-Skript; Programme nicht gefunden?

E: unable to locate package *** 
Reading package lists... Done 
Building dependency tree 
Reading state information... Done 
E: unable to locate package **** 

und so weiter. Ich bin nicht sicher, was schief läuft, da ich weiß, dass die Pakete, die ich aufgelistet habe, existieren, und das Ausführen von sudo apt-get install *** (mit den Paketnamen in der Datei) funktioniert wie erwartet. Meine Shell-Datei sieht so aus:

#!/bin/bash  
#shell script for installation on a VM 
#i've never written a shell script before so bear with me please 

apt-get update 
apt-get --assume-yes install build-essential 
apt-get --assume-yes install git 
apt-get --assume-yes install make 
apt-get --assume-yes install xclip 
apt-get --assume-yes install python 
apt-get --assume-yes install liblapack-dev 
apt-get --assume-yes install libblas-dev 
apt-get --assume-yes install libboost-dev 
apt-get --assume-yes install libarmadillo-dev 

und ich bin es als sudo bash friendinstscript.sh laufen.

+1

Haben Sie ein Repository richtig konfiguriert? –

+0

extrahieren Sie Ihre Umgebung in eine Datei aus der cmd-Zeile mit 'set> cmdLine.env' und fügen Sie ähnlich dem Anfang Ihres Shell-Skripts, dh' set> script.env' Dann vergleichen Sie sie, 'comm cmdLine.env script.env' Vielleicht finden Sie den Unterschied in der ersten oder zweiten Spalte (3. Spalten sind Daten in beiden Dateien gefunden). Viel Glück. – shellter

+1

Dumme Frage, hier - wie hast du dieses Skript geschrieben? Wenn es DOS-Zeilenumbrüche hat, würde das den Fehler erklären - es könnte ein Paket mit dem Namen 'xclip' existieren, aber dort wird keiner namens' xclip $ '\ r'' sein, was Sie bekommen würden, wenn Sie schrieb dieses Skript in Windows mit Notepad und kopierte es anstelle eines systemeigenen UNIX-Texteditors. –

Antwort

0

Ich habe das Problem behoben; es schien mit Linienendungen zu tun zu haben. Um das zu beheben, habe ich dos2unix installiert und die Shell-Datei konvertiert.

Verwandte Themen