Wget ist des Admins Freund

in  Basics ,

Wget ist des Admins Freund

Gastbeitrag von Ralf Köster

Habt ihr einen Webspace, der einen SSH-Zugang bietet, aber ihr wisst nicht, wie man den gewinnbringend einsetzt? Ich möchte euch in diesem Beitrag kurz meine Erfahrungen berichten. Erfahre Linuxer und Komandozeilenvirtuosen werden hier schmunzeln, predigen sie doch seit Jahren, dass die Komandozeile das Beste seit der Erfindung der Computer sind. Aber ich bin nun einmal ein ganz einfacher Windowsanwender, der so gut wie alles mit der Maus macht. Und genau an solche Mitstreiter wendet sich hier mein Artikel.

Wie ihr euch den SSH-Zugang einrichten könnt, wird euch euer Provider sicherlich sagen können. Darüber hinaus gibt es viele Tutorials zu putty und Co. Daher lasse ich das heute einmal weg.

Aber was machen wir nun mit dem schicken Ding? Wir laden damit den Core und die Module herunter, packen diese aus Und können sowar über die Komandozeile Zikula installieren. Die Installation ist bereits in der Dokumentation von Zikula beschrieben (Stichwort CLI), daher lasse ich die hier mal weg.

Welche Komandos benötigen wir eigentlich? Ich komme mit sehr wenigen aus:

  • cd
  • ls
  • mv
  • rm -r
  • wget
  • cp
  • tar -xpzf
  • unzip

Die Syntax spuckt jede gute Suchmaschine tausendfach aus. Daher beschreibe ich die Befehle hier nur in so weit, wie ich sie nutze. Mehr geht immer ;-)

Wie gehe ich denn nun genau vor?

In den Beispielen habe ich einen Webspace bei Allinkl. Bei andern Anbietern sehen die Farben sicherlich anders aus und der Pfad, wo die Dateien liegen müssen ist auch immer unterschiedlich. Also da müsst ihr euch bei eurem Provider erkundigen. Nachdem ich die Konsole geöffnet habe und mich eingeloggt habe, schaue ich als erstes einmal, wo ich denn hier bin. Dafür gebe ich den Befehl ls -l ein.

Befehl ls -l

Mir wird nun angezeigt, wo ich gerade bin. Es werden alle Verzeichnisse und Dateien angezeigt. Das -l steht für eine Listenanzeige. Ohne -l wird alles hintereinander angezeigt. Mit l --help bekommt man alle wichtigen Parameter aufgelistet. Ihr könnt ja damit mal herumspielen. Das --help gibt es bei fast allen Befehlen.

Nun navigieren wir an die Stelle, wo wir Zikula hin laden wollen. Das machen wir mit dem cd Befehl. In unserem Beispiel wollen wir in den Ordner w0158c4d wechseln:

Befehl cd

Jetzt kommen wir zum ersten Highlight. Wir laden mit Rechenzentrum Geschwindigkeit den Core herunter. Als Beispiel laden wir uns einmal den Entwicklungsstand 1.4.7dev herunter, der gerade aktuell ist. Dafür öffnen wir in einem Browser den ci-Server. Dort sehen wir den letzten Build der 1.4.xer Reihe. Darauf klicken wir einmal.

Jenkins 1.4.7

Wir klicken mit der rechten Maustaste auf Zikula_Core-1.4.7.build15.tar.gz, um den Link zu kopieren. Das erpart uns gleich ganz viel Tipperei. Warum eigentlich die und nicht die zip-Datei? Ganz einfach, in der tar.gz sind auch die richtigen Rechte der Dateien enthalten.

Jetzt wechseln wir wieder in die Komandozeile. Dort tippen wir wget gefolgt von einem Leerzeichen ein. Anschließend halten wir die Maus irgendwo über das Fenster von der Komandozeile und machen einen Rechtsklick. Damit fügen wir den Link aus der Zwischenablage ein. Das funktioniert so bei so gut wie allen Komandozeilentools.

wget core

Drücken wir nun Enter, wird der Core heruntergeladen.

wget core

Nun wollen wir Zikula auspacken. Das machen wir mit dem tar-Befehl. Dazu tippen wir auf der Console tar -xpzf Zikula_Core-1.4.7.build.tar.gz ein. Man kann auch -xpvzf nehmen, dann wir einem angezeigt, was da gerade ausgepackkt wir. Aber das dauert immer viel länger. Der Parameter -p ist hier von großer Bedeutung, weil dadurch die Zugriffsrechte der Dateien erhalten bleiben. An Stelle von Zikula_Core-1.4.7.build15.tar.gz müsst ihr natürlich den Dateinamen verwenden, den ihr gerade heruntergeladen habt. Anschießend schauen wir uns das Ergebnis mal mit ls -l an:

tar

In meinem Beispiel können wir sehen, dass dort noch andere Verzeichnisse vorhanden sind. Aber mal ehrlich, habt ihr schon einmal innerhalb von 20 Sekunden den Core per ftp auf den Webspace geschaufelt?

Nun müsst ihr nur noch im Administrationsbereich von eurem Webspace das Verzeichnis mit einer Doamin verbinden und eine Datenbank anlegen, schon kann die Installation losgehen. Ich gehe jetzt einmal davon aus, dass die Installation gut geklappt hat.

Modulinstallation

Nun können wir auch noch Module aus Github herunterladen. Als Beispiel nehme ich einmal Scribite, da das auch ein recht großes Modul ist. Dazu besuchen wir die Scribite-Seite im Github. Rechts findet sich da der Button für den Download. Klicken wir darauf, erhalten wir die Möglichkeit per “Download ZIP das Modul herunter zu laden. Wir merken uns nur wieder den Link per rechtem Mausklick und Link speichern. Anschließend gehen wir wieder in das Fenster der Komandozeile. Da wechseln wir in das modules-Verzeichnis mit dem cd Befehl. Da wir uns ja schon ein wenig in der Struktur von Zikula auskennen, springen wir gleich zwei Modulebenen weiter per cd Zikula_Core-1.4.7/modules. Anschließend überprüfen wir das per unserem längst bekannten ls -l:

cd modules

Nun müssen wir noch Scribite herunterladen. Das machen wir wieder mit wget plus Rechtsklick (wie beim Core). Das müsste jetzt so aussehen:

wget scribite

Wie wir sehen können, heißt die Datei master.zip, die wir heruntergeladen haben. Wenn wir Releases herunterladen, heißen die Dateien anders, aber das sieht man dann ja. Ausgepackt wird die Datei mit dem Befehl unzip master.zip. Heißt sie anders, so nimmt man halt den Namen statt master.zip. Mit ls -l schauen wir wieder nach, was wir denn jetzt in dem Verzeichnis liegen haben.

unzip

Da sehen wir, dass wir einen Ordner namens “Scribite-master” haben, anstelle “Scribite”. Das müssen wir umbedingt umbenennen. Das macht der Befehl mv (steht für move). Mit mv Scribite-master Scribite bennen wir den Ordner um. Um gleich wieder aufzuräumen, entfernen wir die Datei master.zip mittels rm master.zip. will man ganze Ordner löschen, geht das nur mit der Option “-r” (das hier nur als Hinweis am Rande).

Das war es schon. Lesen dieses Artikels dauert länger als das Durchführen. Aber einen kleinen Tipp am Ende habe ich noch.

Cache leeren

Oftmals muss man während der Entwicklungsarbeit den Cache leeren. Der Cache liegt im Ordner app/cache/prod bzw. app/cache/dev, je nachdem, ob man den Dev-Mode eingeschaltet hat oder nicht. Dafür wechseln wir jetzt in das cache-Verzeichnis. Dafür müssen wir erst einmal einen Ordner höher springen. das geht mit cd .. . Beachtet das Leerzeichen wischen cd und den beiden Punkten. Da wir aber faul sind, springen wir direkt in das cache-Verzeichnis: cd ../app/cache. Schaut mal nach, ob da ein prod oder ein dev-Verzeichnis ist: meistens ist es das prod Verzeichnis. Das löschen wir dann mit dem rm-Befehl: rm -r prod. Damit is in Bruchteilen einer Sekunde das Cache wieder leer. Beim nächsten Aufruf von Zikula wird es wieder angelegt. Noch schneller wäre es gegangen, indem man so den cache geleert hätte, ohne erst dahin zu gehen: rm -r ../app/cache/prod. Aber da muss man schon genau wissen, wo man gerade ist und wie die Verzeichnisstruktur genau aussieht. Das lernt man aber sehr schnell.

Viel Spaß auf der Komandozeile!

Ralf

Weitere Beiträge in Kategorie Basics

Einfaches JS-Management mit ImportMaps in neuer Symfony AssetMapper-Komponente
- Im Symfony-Ökosystem werden Frontend-Komponenten seit einiger Zeit zunehmend über UX-Komponenten verarbeitet. Auch wenn hierdurch einige Anbelange vereinfacht werden, ist doch oftmals der Aufbau einer …
Symfony UX im Kontext von ModuleStudio
- Stimulus und Symfony UX Ein JavaScript-Ökosystem für Symfony wurde bereits Ende 2020 gestartet. Vereinfacht ausgedrückt wurde Symfony Flex erweitert, um auch JavaScript-Anteile in einem Bundle leicht …
Das Buch zu Symfony ist in einer neuen Version erschienen
- Bereits im Jahr 2020 haben wir das Buch “Symfony: The Fast Track” hier vorgestellt. Nun ist eine neue Auflage bereitgestellt worden, welche auf den Stand für Symfony 5.4 und 6.0 gebracht …
Symfony und API Platform starten offiziellen Docker-Support
- Seit knapp einem Monat steht eine umfangreiche Unterstützung zur Docker-basierten Arbeit mit Symfony bereit. Hierbei gibt es Neuerungen in mehreren zentralen Werkzeugen, die ineinander greifen und …
Optische Varianzen mit SCSS-Maps umsetzen
- In vielen Weblayouts ist es notwendig, unterschiedliche Ausprägungen einer bestimmten kosmetischen “Stellschraube” zu realisieren. So können etwa einzelne Akzentfarben je nach Unterseite, …