PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shell script



nixversteh
03-05-2008, 23:30
Hallo Foris,

habe auf Linux Ubuntu 8.04 (Hardy) umgestellt und verfüge noch nicht über entsprechende Literatur, wird erst noch herausgegeben. Solange kann ich aber nicht warten und habe mir im Internet einiges herausgesucht, um dem Miktexpackagesmanager zu bekommen. Das hat nach zig Versuchen auch geklappt, dann habe ich ein sogenanntes shell-scricpt im Netz gefunden, dort soll es möglich sein, sich ALLE Packages auf einmal zu ziehen. ich habe einige Pakte gezogen und bkommen nämlich eine Meldung, dass über meine IP - Adresse zu viel Bewegung ist .. in meinen Worten ausgedrückt, die Profis mögen mir das verzeihen.

Ich möchte aber nicht drei Wochen 24 Stunden irgendwelche Pakte ziehen. Also das script gebaut und versucht, es zum Laufen zu bekommen, leider klappt das nicht.
Kann mir bitte jemand unter die Arme greifen?

Das script (mpm-all) sieht so aus:

# !/ bin / sh
MPM_ALL_TEMP =/ tmp / mpm - all . tmp
mpm -- list | grep -v " ^ i " | tr -s " [: blank :] " " " \
| cut -d " " - f4 > $MPM_ALL_TEMP
mpm -- install - some = $MPM_ALL_TEMP
rm $MPM_ALL_TEMP
texhash

Der Aufruf sollte so funkt..

sudo cp mpm - all / usr / local / bin / mpm - all
Damit das Script ausfürbar ist, muss man noch das executable-Flag setzen:

sudo chmod u + x / usr / local / bin / mpm - all

Unter Verwendung dieses Scriptes kann man nun mit einem einzigen Aufruf
mehrere Pakete installieren und anschließend sofort verwenden, z.B:
sudo mpm - all listings xypic microtype tocloft

(Quelle:http://matheplanet.com/matheplanet/nuke/html/article.php?sid=1084)

Ich hoffe, jemand kann mir weiterhelfen, vielen Dank schonmal im Voraus.

Ein schönes Wochenende

Martin

sarc
04-05-2008, 01:49
Was kriegst du denn genau als Fehlermeldung?

nixversteh
04-05-2008, 08:23
Was kriegst du denn genau als Fehlermeldung?

Guten Morgen sarc,

***************************
martin@Latex:~$ sudo cp mpm - all / usr / local / bin / mpm - all
[sudo] password for martin:
cp: angegebenes Ziel „all“ ist kein Verzeichnis
martin@Latex:~$ sudo chmod u + x / usr / local / bin / mpm - all
chmod: Ungültiger Modus: „u“
„chmod --help“ gibt weitere Informationen.
martin@Latex:~$

****************************************+

das ist der output ... egal welche Modi (?) ich angebe, also u, r, w, x oder was weiß ich, immer meckert er: entweder kein Verzeichnis oder Ungültiger Modus...
Wie gesagt, das Buch (Ubuntu 8.04) ist bestellt, muss noch gedruckt werden, die Distri ist erst ca. fünf Tage alt, ich möchte keine "alten" Bücher kaufen. Habe schon über Latex drei dicke Wälzer da rum stehen, die mir zudem nur MINIMAL geholfen haben. Leider gibt es in meinem Umfeld keine Freaks, die sich mit Linux und / oder Latex auskennen. Bin eben auch eine andere Altersgruppe mit 54 Jahren gehöre ich wohl eher in den Vorgarten ... ich sehe das aber anders, mein Gehirn braucht INPUT..

Also einen schönnen Sonntag wünsche ich dir und allen Foris.

Martin

voss
04-05-2008, 08:58
Ich möchte aber nicht drei Wochen 24 Stunden irgendwelche Pakte ziehen. Also das script gebaut und versucht, es zum Laufen zu bekommen, leider klappt das nicht.
Kann mir bitte jemand unter die Arme greifen?

Das script (mpm-all) sieht so aus:

# !/ bin / sh
MPM_ALL_TEMP =/ tmp / mpm - all . tmp
mpm -- list | grep -v " ^ i " | tr -s " [: blank :] " " " \
| cut -d " " - f4 > $MPM_ALL_TEMP
mpm -- install - some = $MPM_ALL_TEMP
rm $MPM_ALL_TEMP
texhash

Der Aufruf sollte so funkt..

sudo cp mpm - all / usr / local / bin / mpm - all


Sind die Leerezichen jetzt durchs kopieren gekommen oder hast
du die wirklich? Du willst doch nur kopieren


sudo cp mpm-all /usr/local/bin/

und dann
sudo mpm-all

Herbert

nixversteh
04-05-2008, 09:42
Sind die Leerezichen jetzt durchs kopieren gekommen oder hast
du die wirklich? Du willst doch nur kopieren


sudo cp mpm-all /usr/local/bin/

und dann
sudo mpm-all

Herbert

Guten Morgen Herbert,

also, ich habe es so kopiert, die Leerzeichen sind im Original vorhanden. Hab jetzt deinen Aufruf eingesetzt, der erste lief ohne Fehler durch, der zweite wird nicht genommen, command not found ...
Hmm, keine Ahnung

Lieben Gruß

Martin

voss
04-05-2008, 09:50
also, ich habe es so kpoiert, die Leerzeichen sind im Original vorhanden. Hab jetzt deinen Aufruf eingesetzt, der erste lief ohne Fehler durch, der zweite wird nicht genommen, command not found ...
Hmm, keine Ahnung


dann mach halt


sudo /usr/local/bin/mpm-all

Herbert

nixversteh
04-05-2008, 10:03
dann mach halt


sudo /usr/local/bin/mpm-all

Herbert

Hallo Herbert,

nee, will er nicht haben, habe das mpm-all mal vorne mitangestellt, will er auch nicht, command not found...

Ähmmm, niemand mag mich ;-)

Lieben Gruß

Martin

voss
04-05-2008, 10:50
nee, will er nicht haben, habe das mpm-all mal vorne mitangestellt, will er auch nicht, command not found...


Martin,
du solltest vielleicht erstmal einige der wichtigsten Grundlagen für Linux
erarbeiten, sonst wird das schwierig.
Wo hast du denn nun das Shell-Skript mpm-all abgespeichert?
Ist es nach /usr/local/bin kopiert? testen mit
ls -la /usr/local/bin
Ist es wirklich ausführbar?

Herbert

cookie170
04-05-2008, 11:11
Hallo,

eine Option "--all" gibt's laut "mpm --help" nicht. Folglich soll das Script diese Option ersetzen. Ob es das fehlerlos tut, weiß ich nicht, weil ich mir meine Installation nicht mit einem Haufen sinnloser Pakete zerschießen will. Jedenfalls hat es 44 Leerzeichen zuviel. Es muss wohl lauten:


#!/bin/sh
MPM_ALL_TEMP=/tmp/mpm-all.tmp
mpm --list | grep -v"^i"|tr -s"[:blank:]"""\
|cut-d""-f4>$MPM_ALL_TEMP
mpm --install-some=$MPM_ALL_TEMP
rm$MPM_ALL_TEMP
texhash

Und dieses Script speichert man im eigenen Home-Verzeichnis unter einem Namen, beispielsweise "alles.sh" unter \bin ab, macht es ausführbar und gibt dann in diesem Verzeichnis \bin auf der Konsole den Befehl

./alles.shein. Wenn das nicht funktioniert, dann sag' uns, welche Fehlermeldung exakt kommt. Ich habe von Scripten nicht viel (eher keine) Ahnung, vielleicht muss ja doch noch irgendwo ein Leerzeichen mehr hin.

mpm hat auch ziemlich verzwickte Seiten, u.a. bedient es sich meiner Erinnerung nach irgendwelcher Spiegel-Seiten...

Gruß,
Alexander

nixversteh
04-05-2008, 11:15
Martin,
du solltest vielleicht erstmal einige der wichtigsten Grundlagen für Linux
erarbeiten, sonst wird das schwierig.
Wo hast du denn nun das Shell-Skript mpm-all abgespeichert?
Ist es nach /usr/local/bin kopiert? testen mit
ls -la /usr/local/bin
Ist es wirklich ausführbar?

Herbert

Hallo Herbert,

ja, da magst Recht haben ... allein, warten fällt mir eher schwer ...
hab das gemacht, was du geschrieben hast, folgende Meldung erscheint:
********************************************
martin@Latex:~$ ls -la /usr/local/bin
insgesamt 2316
drwxr-xr-x 2 root root 4096 2008-05-03 22:50 .
drwxr-xr-x 10 root root 4096 2007-10-16 01:16 ..
-rwxr-xr-x 1 root root 17221 2008-05-01 16:53 bintoc
-rwxr-xr-x 1 root root 472076 2008-05-01 16:53 initexmf
-rwxr-xr-x 1 root root 15892 2008-05-01 16:53 j2000
-rwxr-xr-x 1 root root 355087 2008-05-01 16:53 md5walk
-rwxr-xr-x 1 root root 759491 2008-05-01 16:53 mpc
-rwxr-xr-x 1 root root 633717 2008-05-01 17:32 mpm
-rw-r--r-- 1 root root 210 2008-05-04 10:01 mpm-all
-rw-r--r-- 1 root root 49 2008-05-02 11:00 mpm-all~
-rw-r--r-- 1 root root 210 2008-05-03 22:50 mpm-all.sh
lrwxrwxrwx 1 root root 15 2008-05-01 17:32 mthelp -> mthelp-2.7.2960
-rwxr-xr-x 1 root root 21612 2008-05-01 16:53 mthelp-2.7.2960
-rwxr-xr-x 1 root root 41482 2008-05-01 16:53 web-n
martin@Latex:~$
************************************************** ****
wie bekomme ich die richtige Datei, bzw., die falschen gelöscht? Mpm-all.sh scheint richtig zu sein?

Lieben Gruß

Martin

nixversteh
04-05-2008, 11:24
Hallo,

eine Option "--all" gibt's laut "mpm --help" nicht. Folglich soll das Script diese Option ersetzen. Ob es das fehlerlos tut, weiß ich nicht, weil ich mir meine Installation nicht mit einem Haufen sinnloser Pakete zerschießen will. Jedenfalls hat es 44 Leerzeichen zuviel. Es muss wohl lauten:


#!/bin/sh
MPM_ALL_TEMP=/tmp/mpm-all.tmp
mpm --list | grep -v"^i"|tr -s"[:blank:]"""\
|cut-d""-f4>$MPM_ALL_TEMP
mpm --install-some=$MPM_ALL_TEMP
rm$MPM_ALL_TEMP
texhash

Und dieses Script speichert man im eigenen Home-Verzeichnis unter einem Namen, beispielsweise "alles.sh" unter \bin ab, macht es ausführbar und gibt dann in diesem Verzeichnis \bin auf der Konsole den Befehl

./alles.shein. Wenn das nicht funktioniert, dann sag' uns, welche Fehlermeldung exakt kommt. Ich habe von Scripten nicht viel (eher keine) Ahnung, vielleicht muss ja doch noch irgendwo ein Leerzeichen mehr hin.

mpm hat auch ziemlich verzwickte Seiten, u.a. bedient es sich meiner Erinnerung nach irgendwelcher Spiegel-Seiten...

Gruß,
Alexander

Hallo Alexander,

danke für deine Antwort, Herbert wird wohl recht behalten, mir fehlen einfach die Kenntnisse ... wie mache ich das script denn ausführbar?

Lieben Gruß

Martin

PS.: ich bekomme folgende Meldungen nach Eingabe ...

*************************************
martin@Latex:~/Desktop$ cd Desktop
bash: cd: Desktop: No such file or directory
martin@Latex:~/Desktop$ chmod u+x alles.sh
martin@Latex:~/Desktop$ ./alles.sh
grep: invalid option -- ^
Aufruf: grep [OPTION]... MUSTER [DATEI]...
»grep --help« gibt Ihnen mehr Informationen.
tr: invalid option -- [
„tr --help“ gibt weitere Informationen.
./alles.sh: 3: cut-d-f4: not found
./alles.sh: 5: rm/tmp/mpm-all.tmp: not found
texhash: /var/lib/texmf/ls-R-TEXMFMAIN: no write permission. Skipping...
texhash: /var/lib/texmf/ls-R-TEXLIVE: no write permission. Skipping...
texhash: /var/lib/texmf/ls-R: no write permission. Skipping...
texhash: Done.
martin@Latex:~/Desktop$

************************************************** ************

voss
04-05-2008, 11:43
-rw-r--r-- 1 root root 210 2008-05-04 10:01 mpm-all
-rw-r--r-- 1 root root 49 2008-05-02 11:00 mpm-all~
-rw-r--r-- 1 root root 210 2008-05-03 22:50 mpm-all.sh

wie bekomme ich die richtige Datei, bzw., die falschen gelöscht? Mpm-all.sh scheint richtig zu sein?


gehe in das Verzeichnis und mach folgendes

cd /usr/local/bin/
chmod u+x mpm-all
./mpm-all

Herbert

nixversteh
04-05-2008, 12:14
gehe in das Verzeichnis und mach folgendes

cd /usr/local/bin/
chmod u+x mpm-all
./mpm-all

Herbert

Hallo Herbert,

leider bekomme ich keine Genehmigung dazu...
**********************************
martin@Latex:/usr/local/bin$ cd /usr/local/bin/
martin@Latex:/usr/local/bin$
martin@Latex:/usr/local/bin$ chmod u+x mpm-all
chmod: Beim Setzen der Zugriffsrechte für „mpm-all“: Operation not permitted
************************************************** ***************************
auch die Angaben von Alexander, mit alles.sh klappen nicht, keine Genehmigung ...

Werde jetzt mal eine Pause einlegen und zur Taufe zweier neuer Erdenbürger innerhalb meiner Familie gehen. Einen schönen sonnigen Tag wünsche ich dir und allen Usern.

Lieben Gruß

Martin

cookie170
04-05-2008, 13:01
Wie dem auch sei, ich habe das Script von Stefan Kottwitz nun auch gefunden und offensichtlich lautet das Script:


#!/bin/sh
MPM_ALL_TEMP=/tmp/mpm-all.tmp
mpm --list|grep -v "^i " | tr -s "[:blank:]" " " \
| cut -d" " -f4 > $MPM_ALL_TEMP
mpm --install-some=$MPM_ALL_TEMP
rm $MPM_ALL_TEMP
texhash

Laufen tut's, aber ich wollte, wie gesagt, nicht meine Installation zum Testen verwenden und habe es nicht durchlaufen lassen.

Gruß,
Alexander

nixversteh
04-05-2008, 17:16
Wie dem auch sei, ich habe das Script von Stefan Kottwitz nun auch gefunden und offensichtlich lautet das Script:


#!/bin/sh
MPM_ALL_TEMP=/tmp/mpm-all.tmp
mpm --list|grep -v "^i " | tr -s "[:blank:]" " " \
| cut -d" " -f4 > $MPM_ALL_TEMP
mpm --install-some=$MPM_ALL_TEMP
rm $MPM_ALL_TEMP
texhash

Laufen tut's, aber ich wollte, wie gesagt, nicht meine Installation zum Testen verwenden und habe es nicht durchlaufen lassen.

Gruß,
Alexander

Hallo Alexander,

laufen insoweit, dass es etwas Bewegung gibt ... dann erfolgt diese Meldung:

*********************************************
martin@Latex:~$ cd Desktop
martin@Latex:~/Desktop$ chmod u+x alles.sh
martin@Latex:~/Desktop$ ./alles.sh
mpm: Permission denied: /home/users/me/texmf/tex/amstex
texhash: /var/lib/texmf/ls-R-TEXMFMAIN: no write permission. Skipping...
texhash: /var/lib/texmf/ls-R-TEXLIVE: no write permission. Skipping...
texhash: /var/lib/texmf/ls-R: no write permission. Skipping...
texhash: Done.
martin@Latex:~/Desktop$
************************************************** *************++

Was mache ich falsch?

Lieben Gruß

Martin

Stefan_K
04-05-2008, 17:58
Hi Martin,

Herberts Tipp oben sollte mit sudo davor klappen:
sudo chmod u+x mpm-all

(evtl. sogar a+x) Analog schreibe sudo dann auch vor die Aufrufe des shellscripts.

Deine mail habe ich erhalten, leider ist mir danach (vor ein paar Tagen) der Rechner kaputtgegangen (mainboard), jetzt habe ich einen uralten Rechner ersatzweise fertiggemacht, zwar mit Hardy aber noch ohne den mpm.

Viele Grüße,

Stefan

nixversteh
04-05-2008, 18:03
Hi Martin,

Herberts Tipp oben sollte mit sudo davor klappen:
sudo chmod u+x mpm-all

(evtl. sogar a+x) Analog schreibe sudo dann auch vor die Aufrufe des shellscripts.
Deine mail habe ich erhalten, leider ist mir danach (vor ein paar Tagen) der Rechner kaputtgegangen (mainboard), jetzt habe ich einen uralten Rechner ersatzweise fertiggemacht, zwar mit Hardy aber noch ohne den mpm.
Viele Grüße,
Stefan

Hallo Stefan,

ich habe irgendwie die gleiche Idee gehabt, wegen der nicht aufhörenden Meldungen .. keine Rechte... habe ich sudo vorangestellt... die Sache läuft gerade... ob es geklappt hat, keine Ahnung. Werde auf jeden Falll eine Meldung einstellen.

Lieben Gruß

Martin

nixversteh
04-05-2008, 18:46
Hallo Stefan, Alexander und Herbert,

habe folgendes eingegeben und es läuft jetzt ...

************************************
martin@Latex:~/Desktop$ sudo chmod +wrx alles.sh
[sudo] password for martin:
martin@Latex:~/Desktop$ sudo ./alles.sh

************************************************** ******************

Vielen Dank für euere Antworten und große Hilfe.

Lieben Gruß

Martin