ubuntuusers.de

Fehler "no rule to make target"

Status: Ungelöst | Ubuntu-Version: Ubuntu 13.10 (Saucy Salamander)
Antworten |

Ubuturella

Anmeldungsdatum:
6. März 2014

Beiträge: Zähle...

Hallo Community,

ich bin totaler Newbie was Ubuntu angeht und muss mich für meine Bachelorstelle in Ubuntu einarbeiten und ein paar Programme installieren. ich habe Ubuntu via VirtualBox installiert, da ich in der Bachelorphase kein eigenen Ububntu Rechner brauche. Eines der Programme nennt sich BLAT aligner und ich komme mit einem Fehlercode nicht weiter, google hat auch nicht geholfen, bzw. hab ich nicht alles verstanden was ich an Lösung gefunden habe. Tut mir Leid, falls so eine Frage schonmal gestellt wurde, ich hab im Forum nach der Fehlermeldung gesucht, aber nichts passendes gefunden.

Hier ist die README file:

INSTALL INSTRUCTIONS

1. Unzip this to create a blatSrc directory.
2. Check that the environment variable MACHTYPE
   exists on your system.  It should on Unix.  
   (And making this on non-Unix systems is beyond
   the scope of this README).  For a Linux 
   system MACHTYPE will probably be 'i386', for
   and Alpha it will be 'alpha', for a Sun
   probably 'sparc'.  If necessary set up
   this environment variable.  Do this under the
   bash shell as so:
       MACHTYPE=something
       export MACHTYPE
   or under tcsh as so:
       setenv MACHTYPE something

3. Make the directory ~/bin/$MACHTYPE which is
   where the (non-web) executables will go.
   Add this directory to your path.

4. Go to the lib directory.  If it doesn't
   already exist do a mkdir $MACHTYPE.

5. If you're on an alpha system do a:
     setenv SOCKETLIB -lxnet
   on Solaris do
     setenv SOCKETLIB "-lsocket -lnsl"
   on SunOS do
     setenv SOCKETLIB "-lsocket -lnsl -lresolv"
   on Linux you can skip this step.

6. At the blatSrc directory type 'make'

Bei 2. habe ich die MACHTYPE erstellt:

MACHTYPE=something
export MACHTYPE

Bei 3. habe ich einfach mir mkdir ein "bin" Verzeichnis erstellt, da ich den ~/bin/$MACHTYPE Befehl nicht ausführen konnte. Im bin Verzeichnis wiederum habe ich mkdir MACHTYPE eingegeben

Bei 4. habe ich eine MACHTYPE erstellt. Und alle anderen Schritte habe ich so aufgeführt, wie die es da steht.

Wenn ich den Befehl make eingebe, hat ihn zuerst das gestört:

png.h no such file or directory

Habe darafhin sudo apt-get install libpng-dev eingegeben.

Jetzt hat er aber diese Fehlermeldung:

lkarina@karina-VirtualBox:~/blatSrc$ make
cd lib && make
make[1]: Entering directory `/home/karina/blatSrc/lib'
make[1]: `/jkweb.a' is up to date.
make[1]: Leaving directory `/home/karina/blatSrc/lib'
cd jkOwnLib && make
make[1]: Entering directory `/home/karina/blatSrc/jkOwnLib'
make[1]: `../lib//jkOwnLib.a' is up to date.
make[1]: Leaving directory `/home/karina/blatSrc/jkOwnLib'
cd blat && make
make[1]: Entering directory `/home/karina/blatSrc/blat'
make[1]: *** No rule to make target `../lib//jkweb.a', needed by `blat'.  Stop.
make[1]: Leaving directory `/home/karina/blatSrc/blat'
make: *** [all] Error 2
karina@karina-VirtualBox:~/blatSrc$ cd blat/
karina@karina-VirtualBox:~/blatSrc/blat$ ls
blat.c  hCrea.geno  makefile    mCrea.pep    refProtX.psl  test
blat.o  hCrea.mrna  mCrea.geno  refFine.psl  refRna.psl
CVS     hCrea.pep   mCrea.mrna  refProt.psl  refRnaX.psl
karina@karina-VirtualBox:~/blatSrc/blat$ make
''''''make: *** No rule to make target `../lib//jkweb.a', needed by `blat'.  Stop.''''''

Ich habe echt keine Idee was das soll, habt ihr eine? Hat es was mit dem Compiler zu tun?

Danke schonmal.

Bearbeitet von Antiqua:

Codeblöcke eingefügt, um die Übersicht im Forum zu verbessern → Hilfe zur Syntax

Antiqua Team-Icon

Avatar von Antiqua

Anmeldungsdatum:
30. Dezember 2008

Beiträge: 4534

Hi und Willkommen hier bei ubuntuusers.de,

Ubuturella schrieb:

Bei 2. habe ich die MACHTYPE erstellt:

MACHTYPE=something
export MACHTYPE

Das musst du nicht (und so, wie du es gemacht hast, ist es nicht sinnvoll) da die Variable unter Linux schon existiert und einen Wert hat. Bei mir z.B.:

antiqua@si:~$ echo $MACHTYPE
i686-pc-linux-gnu

Bei 3. habe ich einfach mir mkdir ein "bin" Verzeichnis erstellt, da ich den ~/bin/$MACHTYPE Befehl nicht ausführen konnte. Im bin Verzeichnis wiederum habe ich mkdir MACHTYPE eingegeben

Bitte schau dir mal an, wie man unter Linux mit Variablen umgeht → Shell/Bash-Skripting-Guide für Anfänger (Abschnitt „Variablen-Teil-1“).

mkdir MACHTYPE erstellt einen Ordner mit Namen MACHTYPE. Du willst aber einen Ordner mit Namen des Variableninhaltes. Vergleiche mal in einer Shell

antiqua@si:~$ echo MACHTYPE
MACHTYPE
antiqua@si:~$ echo $MACHTYPE
i686-pc-linux-gnu

Du hättest da nur einen Ordner erstellen sollen:

antiqua@si:~$ mkdir -p ~/bin/$MACHTYPE
antiqua@si:~$ ls -d ~/bin/$MACHTYPE
/home/antiqua/bin/i686-pc-linux-gnu

Da $MACHTYPE eine Variable ist, wird die passend expandiert und in meinem Fall das Verzeichnis ~/bin/i686-pc-linux-gnu erstellt. Dieses Verzeichnis musst du nun dem $PATH hinzufügen (→ Umgebungsvariable (Abschnitt „PATH-erweitern“))

Bei 4. habe ich eine MACHTYPE erstellt. Und alle anderen Schritte habe ich so aufgeführt, wie die es da steht.

Da ist mir nicht klar, welches lib-Verzeichnis da gemeint ist, ein systemweites oder eines im eines im blatSrc-Ordner …

Kannst du mal das Sourcepaket verlinken, so daß ich mir das ziehen kann und dann sehen wir weiter.

Ubuturella

(Themenstarter)

Anmeldungsdatum:
6. März 2014

Beiträge: 2

Hallo Antiqua,

vielen vielen Dank, dass du dir Zeit für mein Problem nimmst, ich versuch gleich Deine Verbesserungsvorschläge.

genauergesagt muss ich mir das Programm PASA herunterladen und installieren, dafür gibt es ein paar Vorraussetzungen, u.A. brauch ich das BLAT Programm, womit ich gerade Probleme habe. GMAP habe ich schon und BLAST folgt als nächstes.

Hier ist ein Link, unter Software Installation instructions findet sich der Download für BLAT.

Ich melde mich gleich, wenn ich weiter bin. Danke vielmals ☺

UPDATE:

Also ich habe meinen bin Ordner und den darin enthaltenen MACHTYPE Ordner geloescht.

Tatsaechlich hatte ich die MACHTYPE Variable schon:

karina@karina-VirtualBox:~/blatSrc$ echo $MACHTYPE x86_64-pc-linux-gnu

Habe, wie Du es mir vorgeschlagen hast, einen Ordner bin erstellt mit dem Befehl mkdir -p ~/bin/$MACHTYPE karina@karina-VirtualBox:~/blatSrc$ ls -d ~/blatSrc/bin/$MACHTYPE /home/karina/blatSrc/bin/x86_64-pc-linux-gnu

(habe das bin Verzeichnis verschoben).

Das habe ich sicherheitshalber auch nochmal gemacht :

4. Go to the lib directory. If it doesn't already exist do a mkdir $MACHTYPE.

Nun steht in dem lib Verzeichnis x84_64/pc/linux/gnu

Leider bleibt der Error gleich, nachdem ich make eingeben habe. In dem lib Verzeichnis finde ich "jkweb.a" nicht, nur jk0wnLib.a.

Antworten |