Was ist die Datei: .bash_profile?

G

gma

Aktives Mitglied
Thread Starter
Dabei seit
18.02.2007
Beiträge
119
Reaktionspunkte
2
Hallo,

ich versuche gerade ein Perl-Skript (BioPerl) auszuführen, welches Daten in eine MySQL-Datenbank laden soll. Dabei kommt es zu folgendem Fehler (der hier wohl nichts erklärt, aber egal):

fdata: No such file or directory at /usr/local/bin/bulk_load_gff.pl line 175.

Wenn es was hilft: die entsprechende Zeile lautet:

foreach (@files) {
diese Zeile: my $file = "$tmpdir/$_.$$";
print STDERR "creating load file $file...";

Leider verstehe ich nichts von UNIX und was dazugehört (möchte es aber lernen), aber andernorts fand ich den Hinweis:

"$TMPDIR (environment variables)
> $TMP
> /usr/tmp
>
> So if you don't have either TMPDIR or TMP environment variables set, it
> will try to use /usr/tmp. So, to fix this, either set one of those
> variables, or create /usr/tmp and make it world readable and writable."

So angeraten, konnte sich ein anderer USER auch tatsächlich helfen, indem er folgendes tat:

>I created the environment variable $TMPDIR pointing to a directory in my
>home by:

>export TMPDIR=$HOME/Library/tmp

>I included that line in my .bash_profile

Was ist diese bash.profile und wie verändere ich den Inhalt?

wer weiss was?

Danke:confused:
 
Hallo,

Code:
 ~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
Du kannst
Code:
export TMP=$TMP:/tmp
anhängen.


Aber es sollte schon reichen, einfach
Code:
TMPDIR=/tmp
in die shell zu schreiben und dann das Script erneut aufzurufen.

TMPDIR ist bei mir auch nicht gesetzt; es scheint dass dieses Script dann einfach "/usr/tmp" rät, was unter OS X nicht beschreibbar ist. Deshalb kann das load file fdata nicht geschrieben werden.
 
Zuletzt bearbeitet:
Hallo und erstmal vielen Dank, auch wenn es bisher noch nicht funktioniert.

Also, ich habe in der shell:


TMPDIR=/tmp



eingegeben, und dann das Skript ausgeführt, mit folgendem Ablauf

>noname:~/bioperl-1.5.2_102/bioperl-1.5.2_102/scripts marekbartkuhn$ >sudo bulk_load_gff.pl -d release51 dmel-all-chromosome-r5.1.fasta fly.gff
>This operation will delete all existing data in database release51. Continue? >y
>fdata: No such file or directory at /usr/local/bin/bulk_load_gff.pl line 175.

Ist die Eingabe von "y" auf die Frage ok? oder muss es "yes" heissen (macht keinen Unterschied.

Der code im Bereich von line 175 war doch anders als vorher von mir angegeben:

> foreach (@files) {
diese hier > $FH{$_} = IO::File->new(">$tmpdir/$_.$$") or die $_,": $!";
> $FH{$_}->autoflush;



Wie funktioniert das Anhängen an die .bash_profile, den Code habe ich nicht so recht verstanden (ist das shell oder ein Skript)?

Mein Problem ist (wie das von vielen, nehme ich an), dass ich gerade lerne
- Perl
- MySQL (da haperts besonders, insbesondere wegen permissions, kann so ein Fehler auch auftauschen, wenn die permissions nicht stimmen)
- die Kommunikation zwischen Perl (Bioperl Module) und MySQL

Kleine Skripte kann ich ja schon schreiben, aber Rechnerarchitektur checke ich nicht so ganz!

Ein Buchtipp wäre toll (sowas wie Mac OS x für Unix geeks, nur einfacher)


gma
 
Hallo,

Ich habe die SVN-Version des Scripts von April/07 gezogen und lese es, ansonsten habe ich leider keine Ahnung von diesem Modul. :(
Also, ich habe in der shell: TMPDIR=/tmp
Ist auch ok so. Das Script wertet $TMPDIR aus. Du kannst der Vollständigkeit halber noch prüfen, ob touch $TMPDIR/hallo.txt o. ä. geht.
Code:
foreach (@files) {
  $FH{$_} = IO::File->new(">$tmpdir/$_.$$") or die $_,": $!";
  $FH{$_}->autoflush;
}
Offensichtlich ein Schreibrechte-Problem; es scheint als könne die Datei fdata in /tmp (das unter OS X nach private/tmp linkt) nicht angelegt werden. komisch eigentlich; sollte gehen .-/
Ist die Eingabe von "y" auf die Frage ok? oder muss es "yes" heissen (macht keinen Unterschied.
Zulässig sind Y und y
Wie funktioniert das Anhängen an die .bash_profile, den Code habe ich nicht so recht verstanden (ist das shell oder ein Skript)?
Eine Konfigurationsdatei für die bash; eigentlich ein ganz normales Shellscript, editierbar mit jedem Texteditor. Anhängen kannst Du auch mit
Code:
echo "export TMPDIR=\$TMPDIR:/tmp" >> ~/.bashrc
Ein Buchtipp wäre toll (sowas wie Mac OS x für Unix geeks, nur einfacher)
Sorry, da hab ich nichts parat. :(
 
Zuletzt bearbeitet:
Hi,

ich glaube mittlerweile, dass andere Dinge schief laufen. Die bash habe ich modifiziert und jetzt gibt es andere Fehlermeldungen, allerdings hatte ich zwischenzeitlich festgestellt, dass verschiedene Module (die vielleicht in diesem Kontext benötigt erden) nicht richtig installiert waren.

Das habe ich getan, vielleicht liegt es daran!

Jetzt heisst es:

install_driver(mysql) failed: Can't load '/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, 1): Library not loaded: /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib
Referenced from: /Library/Perl/5.8.6/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle
Reason: image not found at /System/Library/Perl/5.8.6/darwin-thread-multi-2level/DynaLoader.pm line 230.
at (eval 15) line 3
Compilation failed in require at (eval 15) line 3.
Perhaps a required shared library or dll isn't installed where expected
at /Library/Perl/5.8.6/Bio/DB/GFF/Adaptor/dbi/caching_handle.pm line 139


hmmh, da geht wohl so einiges schief.

Ich werde jetzt erstmal alles neu kompilieren, was bisher nicht so recht geklappt hat.

Hätte nicht gedacht, dass das alles so aufwendig ist.

Ich melde mich nochmal, wenn es garnicht weitergeht.

gma
 
Die Fehlermeldung bedeutet aber nur, dass das Datebankmodul für MySQL nicht installiert ist:
Code:
sudo perl -MCPAN -e 'install DBD::mysql'
...und dann die Fragen des CPAN-Moduls beantworten. :)
 
Hallo:

DBD::mysql sollte da sein, dies hier ist die Ausgabe eines kleinen Perlskripts, welches über ExtUtils::Installed alle installierten Perlmodule angibt:


Archive::Tar -- 1.30
Archive::Zip -- 1.16
Bio -- ???
CPAN -- 1.87
Compress::Zlib -- 1.42
Cwd -- 3.19
DBD::mysql -- 4.005
DBI -- 1.57
Data::ShowTable -- undef
Digest::SHA -- 5.43
File::HomeDir -- 0.58
File::Temp -- 0.17
File::Which -- 0.05
GD -- 2.35
LWP -- 5.805
Math::Complex -- 1.34
Module::Build -- 0.2805
Perl -- 5.8.6
Storable -- 2.16
Term::ReadKey -- 2.30
Term::ReadLine -- 1.01
Text::Glob -- 0.07
XML::parser -- 2.34
YAML -- 0.62

Zumindest wird es hier als installiert angezeigt.

Davon abgesehen sehe ich jetzt auch wieder die alte f:data Fehlermeldung:

fdata: No such file or directory at /usr/local/bin/bulk_load_gff.pl line 175.


Keine Ahnung, was das alles soll, ich glaube ich setze mich bald eine Linux- oder Solaris Maschine und versuche da mein Glück.

gma
 
Hi,

wollte nur vermerken, dass ich es hinbekommen habe:D , und zwar so:

sudo mkdir /usr/tmp
sudo chmod 777 /usr/tmp

jetzt geht es, dass mit der bash_profile hat nicht funktioniert, wieso?

gma
 
Zurück
Oben Unten