Archiv für die Kategorie „Linux“
Vergleich Strato Dedicated Power-Server MR gegen netcup vServer Uranus
Jaaaa – also ich betreibe ja seit einigen Jahren diesen Server. Seit dem letzten Umzug im August 2010 läuft er unter einem bei Strato angemietetem “Dedicated Power-Server MR (v5.4)”. Dabei handelt es sich um “echte” Hardware, nicht um ein virtualisiertes System. Schon länger reicht dieses recht spartanisch ausgestattete System nicht mehr wirklich für die Anforderungen. Aktuell laufen 8 nicht ganz inaktive Homepages auf der Maschine (keine statischen HTML Dateien: PHP Scriptseiten wie WordPress, TYPO3, phpBB Foren, etc.), er ist Mailserver für etwa 9 Domains (samt Spamfilter), berechnet Statistiken, das System selbst (Gentoo Linux -> Software wird kompiliert) will auch gewartet werden, …
Kurz: Das Teil hat einiges zu tun! Dabei war nichtmal unbedingt der Prozessor das Problem, sondern RAM und Storage. Das ganze System ist recht betagt, wie wir gleich noch sehen werden. Neben diesen Diensten mit 1 GB RAM auch noch gescheit einen MySQL Server darauf zu betreiben “geht” technisch zwar, macht aber nicht wirklich Spass.
Es musste also ein zweiter Server als MySQL Host her. Seitdem laufen diese Seiten auf 2 Servern. Seitdem denke ich jedoch auch, das der Basis-Server nicht mehr wirklich rentabel funktioniert. Also habe ich mal die Fühler nach günstigeren Angeboten ausgestreckt. Kriterien waren dabei:
- Speicherplatz mindestens 50 GB ( ~ 30 aktuell verwendet )
- Möglichkeit ein Gentoo / Funtoo auf dem System installieren zu können
- CPU und RAM mehr / schneller als aktuell
- Preis sollte geringer sein als aktuell
- Keine Mindestvertragslaufzeit
Ob das ganze virtuell oder physikalisch ist, ist mir dabei erstmal egal.
Ich bin also letztendlich auf die vServer der Firma netcup aufmerksam geworden. Server4You, Domain Factory und (wieder) Strato haben zwar auch atraktive Angebote, jedoch schneiden sie (für meine Anforderungen) leider “schlechter”* ab als netcup:
*:
Kurzes Vorwort zu “schlechter”: Um fair zu bleiben: Ich habe hier nur reine Zahlen aus den Angeboten verglichen. Ich habe mich nicht in jedem Angebot eingelogged und die Performance so detailiert verglichen wie zwischen netcup und Strato. Jedoch: Wenn die Anbieter die absolute Performance Ihrer Produkte in’s Feld führen möchten, sollten Sie diese Zahlen mit in die Angebote aufnehmen.
PS: @Alle Hoster: Sollte irgendwer daran interessiert sein, das ich deren Angebot hier kostenlos Re-Evaluiere: Über mein Mailformular könne Sie mir gerne unverbindliche Probezugänge zu Ihren Produkten mit der Bitte um Tests zukommen lassen![]()
- Strato
Das Angebot für “Dedicated Server” ist zwar nach wie vor nahezu ungeschlagen gut was das Preis-/Leistungsverhältnis angeht ( HighQ-Server XS ist sehr cool! ), jedoch hat man hier leider ( selbst als Stammkunde ) wenigstens 6 Monate Mindestvertragslaufzeit. Ebenso muss man 29,- € für die Grundeinrichtung bezahlen. Beides etwas, was ich nicht mehr möchte.
Die vServer von Strato können (mich) da jedoch schon weniger überzeugen: Die Preise beginnen (mit powerServer A) bei 7,90 / Monat (was OK, aber mehr ist als bei netcup), der RAM beträgt nur 512 MB (statt 1 GB bei der Konkurenz), der Speicherplatz beträgt nur 25 GB (ebenfalls Markt-Schlusslicht), … nichts für mich. - Domain Factory / JiffyBox
Domain Factory hat mit seinem “JiffyBox” getauften vServer Angebot schon eine coole Sache am Start: Man meldet sich an und bezahlt erstmal nichts. Man kann in Minuten neue (v-)Server hochfahren, herunterfahren, einfrieren, löschen, klonen, … sehr cool! Man bezahlt dann nur für die Nutzung der tatsächlich genutzten Maschinen. Allerdings: Will man diese dauerhaft betreiben wird’s verhätnismäßig teuer: Selbst das günstigste Angebot kostet dann rund 14,90 € / Monat (0,02 ct pro Stunde * 744 Stunden pro Monat). Das ist für temporäre Präsenzen OK, aber auf Dauer gibt es günstigere Alternativen. - Server4You
Für meine Anforderungen: Einfach zu teuer! 8,85 € / Monat für einen vServer mit 25 GB Storage: netcup ist auch hier wieder günstiger. Allerdings: Man kann deren Produkte unverbindlich 4 Tage lang testen und herausfinden, ob sie passen oder nicht. Allerdings scheidet das Angebot für mich wegen des Storage-/Preisverhältnisses aus. - netcup
Ich habe mich für das Angebot vS Uranus light entschieden. Das ganze hat eigentlich alles was ich brauche, ist mit 6,99 € / Monat sehr günstig und deckt alle zuvor genannten Kriterien ab. Details folgen.
Was bei netcup sehr cool ist: Man kann das Angebot in Ruhe unter die Lupe nehmen (da monatlich kündbar). Ebenso hat man alle Zeit der Welt für eine Migration, da man für ~ 7 € / Monat ruhig mal einen bis zwei Monate diese Server parallel betreiben kann.
Für mich ist jetzt natürlich wichtig, das ich das, was bereits auf diesem Server besteht und läuft, übernehmen kann und dabei nichts merkbar langsamer wird. Also habe ich einmal einen Benchmark der beiden Systeme in den für mich relevanten Bereichen durchgeführt:
- Storage-Performance
- RAM-Performance
- CPU-Performance
Um dieses zu messen, habe ich auf dem aktuellen Server alle Dienste beendet (was die Downtime zwischen 15 und 23 Uhr am 01.04.2012 erklärt) und auf diesem wie dem netcup-System die folgenden Tests durchgeführt:
Im folgenden die Ergebnisse.
Zunächst einmal ein reiner Listenleistung-Vergleich:
| Strato | netcup | |
|---|---|---|
| RAM | ||
| Typ | DDR2 133 | Unbekannt |
| Menge | 1 GB | 1 GB |
| HDD | ||
| Typ | Hitachi HDT725025VLA380 | Unbekannt |
| Größe | 250 GB | 80 GB |
| CPU | ||
| Typ | AMD Opteron 1210 HE | Intel Xeon CPU E5620 |
| Anzahl | 1×2 Cores (2) | 4×4 Cores (16) |
| Geschwindigkeit (Liste) | 1,8 GHz | 2,5 GHz |
| Preis | ||
| 29,90 € | 6,99 € | |
HDD ist zwar bei netcup deutlich kleiner als beim aktuellen Stratovertrag, aber für meine Anforderungen ausreichend.
Alles andere sieht laut Liste deutlich besser aus. OK, fairer weise muss man sagen, das das aktuelle Strato Angebot besser ist (HighQ-Server XS), aber für mich halt nicht so leicht zu wechseln wie zu netcup. Weder kann ich so lange günstig parallel fahren wie bei netcup, noch sehe ich die Notwendigkeit weiterhin monatlich fast 30 € zu bezahlen, wo es rund 7 € auch tun. So viel ist “Platz nach oben” nun im privatem Sektor auch wieder nicht wert.
Kommen wir zu den Messergebnissen:
Als Messgrundlage dienen dd , bonnie++ (v1.96) und sysbench (v0.4.10).
Die ausgeführten Kommandos lauten:
- sysbench –test=memory –memory-scope=$scope –memory-oper=$operation –memory-access-mode=$accessmode run
- sysbench –test=cpu –num-threads=$numthreads –cpu-max-prime=20000 run
- dd if=/dev/urandom of=benchfile bs=1024K count=1024
- bonnie++ -u root | bon_csv2html
Die mit “$”-vorangestellten Werte zu sysbench findet man in folgender Tabelle nebst Ergebnissen:
| Strato | netcup | |
|---|---|---|
| sysbench – RAM | ||
| $scope=global, $operation=read, $accessmode=seq | 839.4359s | 36.9148s |
| $scope=global, $operation=read, $accessmode=rnd | 839.9471s | 39.1572s |
| $scope=global, $operation=write, $accessmode=seq | 869.6518s | 66.8758s |
| $scope=global, $operation=write, $accessmode=rnd | 848.0943s | 41.8068s |
| $scope=local, $operation=read, $accessmode=seq | 837.1526s | 37.4726s |
| $scope=local, $operation=read, $accessmode=rnd | 849.7811s | 38.9301s |
| $scope=local, $operation=write, $accessmode=seq | 877.9626s | 67.3201s |
| $scope=local, $operation=write, $accessmode=rnd | 852.2366s | 40.9074s |
| sysbench – CPU | ||
| $numthreads=2 | 60.5573s | 20.1742s |
| $numthreads=16 | n/a | 4.2365s |
Wir sehen also schonmal zum Thema CPU und RAM: Das netcup vServer – System hat hier klar die Nase vorn! Der RAM ist rund 20x schneller als der des Strato-Systems und die CPU ist bei der Berechnung von Primzahlen bei “nur” 2 von 16 möglichen, parallelen Threads ebenfalls etwa 3x schneller. Gesteht man der Primzahlenberechnung die zur Verfügung stehenden 16 parallelen Threads zu, ist sie beim netcup-System gar ca. 15x schneller.
Im Bereich RAM und CPU also klarer Sieger: netcup vServer!
Schaut man sich an wie lange es dauert eine 1GB große Datei wegschreiben zu lassen gewinnt hingegen klar das Strato-System:
| Strato | netcup | |
|---|---|---|
| dd – Benchmark | ||
| dd if=/dev/urandom of=benchfile bs=1024K count=1024 | 140 Sekunden | 245 Sekunden |
Der dd-Test zeigt eine Schreibperformance beim Strato-System, die rund 1,75x so schnell ist wie die des netcup vServers. Klar, das ist ein sehr realitätsferner Test, aber es folgt noch ein Test mit bonnie++, welcher diesen Eindruck unterstreicht:
| Version 1.96 | Sequential Output | Sequential Input | Random Seeks |
Sequential Create | Random Create | |||||||||||||||||||||
| Size | Per Char | Block | Rewrite | Per Char | Block | Num Files | Create | Read | Delete | Create | Read | Delete | ||||||||||||||
| K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | /sec | % CPU | /sec | % CPU | /sec | % CPU | /sec | % CPU | /sec | % CPU | /sec | % CPU | /sec | % CPU | |||
| netcup vServer |
2G | 559 | 95 | 118663 | 23 | 130356 | 15 | 2958 | 97 | 3083240 | 98 | 11990 | 168 | 16 | 86 | 0 | +++++ | +++ | 92 | 0 | 1986 | 15 | +++++ | +++ | 8211 | 58 |
| Latency | 33601us | 6533us | 14883us | 15201us | 3187us | 5198us | Latency | 14321us | 915us | 73617us | 1517ms | 1302us | 26563us | |||||||||||||
| Version 1.96 | Sequential Output | Sequential Input | Random Seeks |
Sequential Create | Random Create | |||||||||||||||||||||
| Size | Per Char | Block | Rewrite | Per Char | Block | Num Files | Create | Read | Delete | Create | Read | Delete | ||||||||||||||
| K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | /sec | % CPU | /sec | % CPU | /sec | % CPU | /sec | % CPU | /sec | % CPU | /sec | % CPU | /sec | % CPU | |||
| Strato Server |
2G | 276 | 99 | 50075 | 20 | 31729 | 14 | 1207 | 98 | 73802 | 15 | 411.0 | 10 | 16 | 16859 | 66 | +++++ | +++ | 23837 | 73 | 18097 | 75 | +++++ | +++ | 23827 | 73 |
| Latency | 50975us | 1783ms | 968ms | 20773us | 44806us | 375ms | Latency | 11620us | 2495us | 2336us | 307us | 27us | 356us | |||||||||||||
In puncto Storage hat also sowohl in Größe wie in Geschwindigkeit das (nicht-virtuelle) Strato-System klar die Nase vorn.
Wie sieht das ganze bei einem etwas realitätsnäherem Test aus? Zum Vergleich habe ich einmal den Gnu C Compiler (gcc) in Version 4.5.3 auf beiden Systemen kompiliert. Hier die Ergebnisse:
| Strato | netcup | |
|---|---|---|
| Gnu C Compiler Kompilierung – Benchmark |
||
| Kompileren (emerge =sys-devel/gcc-4.5.3) | 57m57.791s | 24m55.387s |
Ergo: Das netcup System ist hierbei gut doppelt so schnell.
Da das Ganze ja nun doch recht I/O – lastig werden wird, bin ich mir noch nicht ganz sicher ob das wirklich die richtige Entscheidung ist, das bestehende System gegen dieses netcup vServer System zu ersetzen. Wir werden sehen.
Soweit zumindest schonmal meine Analyse
Wie immer bin ich für Kritik offen und dankbar.
“Tote” Symlinks finden
Boah – funktioniert noch alles hier … krass! Ewig nichts gepostet … ;D
Es kommt auch nur ein Kurztipp. Eigentlich trivial, aber ich kam mit den Erklärungen in der Manpage zu “find” gerade nicht zurande, daher notiere ich mir die Syntax hier:
Wenn man auf einem System nach Symlinks suchen möchte, deren Ziel nicht existiert, dann geht das wie folgt:
find -L . -type l
Möchte man stattdessen das nichtexistente Ziel des toten Symlinks auflisten um das beispielsweise in Scripten zu verwenden, behelfe ich mir derzeit wie folgt:
ls -ld $(find -L . -type l) | cut -d '>' -f 2 | sed 's#\ ##g'
Funktioniert, geht aber sicher auch noch eleganter. Schreibt doch gerne in den Kommentaren wie
openSSH und die nervigen known_hosts
Jedes Mal, wenn ich mir ein neues Linux-System einrichte, muss ich erst nochmal schnell Googlen oder die Manpage wälzen; daher notiere ich es mir hier jetzt endlich mal:
Es gibt ein Sicherheitsfeature bei openSSH, welches einen warnt wenn man sich zu einem Host/einer IP verbinden möchte und sich die ID des Zieles seit dem letzten Mal verändert hat. Das macht zwar durchaus Sinn und ich finde das generell eine gute Sache. Aber es kann wirklich sehr nerven, besonders wenn man mit DHCP arbeitet und die Zielrechner dauernd Ihre IP durchtauschen, man mit virtuellen Maschinen arbeitet und diese nur kurz benutzt werden oder häufig per SSH auf Live-CD-Systeme konnektiert.
Normalerweise muss man die entsprechende Zeile in der Datei ~/.ssh/known_hosts die angemeckerte Zeile löschen; z.B. bei:
$ ssh user@192.168.1.12 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is 39:b3:72:04:53:f7:17:eb:aa:8c:ed:70:db:77:8b:e9. Please contact your system administrator. Add correct host key in /home/user/.ssh/known_hosts to get rid of this message. Offending key in /home/user/.ssh/known_hosts:3 RSA host key for 192.168.1.12 has changed and you have requested strict checking. Host key verification failed.$
müsste man die Zeile 3 entfernen.
Hierzu muss man etwas wie “sed -i 3d ~/.ssh/known_hosts” losjagen oder die Datei in einem Editor von Hand bereinigen. Wie schon gesagt: Auf Dauer sehr nervig!
Wenn einem das nur vereinzelt passiert, kann man sich mit Kommandozeilenoptionen helfen: “ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@192.168.1.12“; ist jedoch schon eine recht sportliche Aufgabe sich das a) zu merken und b) jedes Mal wegzutippen.
Wem das permanent passiert, kann dieses Verhalten dauerhaft einstellen. Und zwar sowohl global wie auch userbasiert. In beiden Fällen müssen die beiden o.g. Optionen in die passende Config-Datei eingetragen werden:
UserKnownHostsFile=/dev/null
StrictHostKeyChecking=no
Um diese Einstellung global zu setzen (nicht empfohlen), trägt man diese Optionen in die Datei “/etc/ssh/ssh_config” ein.
Um diese Einstellung nur für einen bestimmten User zu setzen, trägt man diese Optionen in die Datei “~/.ssh/config” ein.
Das ganze hebelt natürlich den als Sicherheitsmaßnahme gegen “Man-in-the-middle” – Attacken gemeinten Schutz vor diesem Angriffstyp aus. Um das ganze wenigstens etwas sicherer zu machen, kann man auch nur einzelne Hosts und Hostbereiche derart von dieser Regel ausnehmen. Die Beispielhafte Syntax dazu lautet dann:
Host 192.168.1.* StrictHostKeyChecking no UserKnownHostsFile=/dev/nullbzw.:Host 192.168.1.12 StrictHostKeyChecking no UserKnownHostsFile=/dev/null
Aber Achtung: Bitte nur anwenden wenn Ihr wisst was Ihr tut! Das ganze hebelt, wie gesagt, einen sinnvollen Schutz des SSH Systems aus.
Sabayon’s Paketmanager Sulfur entschuldigt sich für einen Fehler
Na das ist ja mal putzig!
Jeder kennt sicher die alltäglichen Fehlermeldungen der diversen Programme des Computers und ärgert sich dabei über profane Meldungen wie “Ungültiger Verweis 10×78” oder “Fehlerprozess war fehlerhaft (19)“, mit denen man nicht nur nichts anfangen kann, sondern die einem irgendwie oft auch noch das Gefühl geben, man hätte etwas falsch gemacht.
Jetzt habe ich gestern einen Fehler unter Sabayon Linux provoziert, indem ich in Sulfur, dem GUI des Paketmanagers von Sabayon, während einer Installation auf “Abbrechen” geklickt habe. Sieht doch gleich viel freundlicher aus, oder?
LPIC-1 : Mission accomplished!
Jaaa – was soll ich groß schreiben? Was lange währt wird endlich gut vielleicht
Nachdem mein Kumpel Alex vor inzwischen fast zwei Jahren mit dem LPIC-1 Zertifikat vorgelegt hat, wollte ich eigentlich innerhalb weniger Wochen nachziehen. Nur kam dann eines zum anderen. Erst zog die Firma um, dann hatte ich alle Hände voll zu tun mit meiner damals neuen Position als Abteilungsleiter mit Personalverantwortung, dann … ach – blah, blah, blah. Das Ende vom Lied ist: Ich bin erst am gestrigen Mittwoch endlich dazu gekommen meine LPIC-1 Prüfung bei “The Campus” in Düsseldorf in der Gladbecker Str 1 zu absolvieren. Ich habe direkt beide Prüfungen hintereinander durchgezogen.
Was soll ich lange drum herum reden: Bestanden!
Ich habe hierzu mit dreien abzurechnen. Fangen wir mit “The Campus” an.
Ich habe mich am 9.11.2011 zu beiden Prüfungen am 23.11.2011 um 10.30 und 12:00 Uhr angemeldet. Am 22.11. um 17:45 Uhr (also: Am Abend zuvor) sitze ich mit meinem Chef im Meetingraum in der Firma, da kommt eine Kollegin rein und meint “Es hat eine Frau X von The Campus angerufen und meinte die Prüfung morgen verschiebt sich auf 12 Uhr.”. Wir waren eh gerade fertig also rufe ich um 18:00 Uhr, 15 Minuten später, zurück um die Dame zu fragen ob sie das richtig findet einem am Abend zuvor durch einen dritten ausrichten zu lassen das sich die Prüfung verschiebt. Was ist denn wenn ich dann bereits Termine habe? Zudem habe ich meine Handynummer und E-Mailadresse bei der Registrierung angegeben, da kann man mich doch wenigstens versuchen darüber zu erreichen ehe man “Stille Post” spielt.
Aber scheinbar hat sie unmittelbar nach diesem Anruf das Gebäude verlassen – jedenfalls war sie nicht mehr im Hause (Aussage der Kollegin, die ich stattdessen erreicht habe).
Angekommen musste ich erstmal suchen, ob ich richtig bin: Die untere Etage des scheinbaren Neubaus steht leer. Schilder gibt es nur sehr unzureichend.
Ich bin also um 12 Uhr da. Leider habe ich eine Wartezeit bis etwa 12:30 Uhr, da sich die Dame trotz der Verschiebung auf 12 Uhr um knapp eine halbe Stunde verspätet.
Als wir endlich anfangen können, werde ich in einen Raum geführt, in dem 8 völlig veraltete PCs stehen. Die Dame schaltet mir die Prüfung auf und – verlässt den Raum! Alle Prüflinge sind völlig unbeaufsichtigt. Spicken wäre nun Tür und Tor geöffnet. Ebenso wird man auf den ausgehändigten Regeln darauf hingewiesen, das man sich ausschließlich durch heben einer Hand bemerkbar machen soll, wenn man Fragen hat. Der Prüfer kommt dann angeblich sofort und hilft. …. wie denn, wenn garkeiner im Raum ist??
Naja. Nachdem ich die erste Prüfung bestanden hatte, habe ich eine kurze Pause gemacht und bin dann die zweite angegangen. Während dieser Prüfung wurde in den oberen Etagen pausenlos gehämmert. Wirklich konzentrieren: Fehlanzeige. Ich bin nach absolvierter Prüfung zu den Damen gegangen und habe gesagt das sowas alles andere als geeignete Prüfungsbedingungen sind. Reaktion: “Ja, ich war auch eben schonmal gucken …”. Super!
Also: Nichts gegen die Damen an sich: Die beiden waren sehr nett! Aber es ärgert mich, das man viel Geld dafür bezahlt, das man sich da eine Stunde lang an einen PC setzen darf, dabei weder Beaufsichtigt noch betreut wird und das man einen Tag vor der Prüfung derart mit Orga-Scheiss abgelenkt wird. Zumal die auf der Anmeldung ihrerseits ein richtiges Fass aufmachen: “Wer mehr als 15 Minuten später erscheint darf nicht mehr teilnehmen!”, “Armbanduhr, Portemonaie und Handy müssen abgelegt werden!”, “Während der Prüfung: Absolute Ruhe!” , und dann bietet man einem solche Bedingungen an.
Naja …
Morgen rechne ich mit dem Linux Professional Institute ab! Stay tuned!
Meine ersten Funtoo ebuilds sind in Flora! :D
Um zu erklären, was das bedeutet, muss ich ganz kurz ausholen…
Als ich vor vielen Jahren mit Linux angefangen habe, stolperte ich ziemlich bald über Gentoo Linux. Damals konnte ich aber weder den Wert dieser Distribution ermessen, noch kam ich als absoluter Linuxeinsteiger damit zurecht. Also habe ich sie damals recht bald wieder fallen lassen.
Nachdem ich inzwischen jedoch einige Jahre mit diesem Fachgebiet auf dem Buckel habe, keimte vor ein paar Jahren das Interesse an dieser Distribution wieder auf. So läuft seit knapp 13 Monaten dieser Server auch unter Gentoo Linux.
In dieser Zeit stand ich natürlich auch ab und an mal auf dem Schlauch und musste mich, als Google, das Gentoo Forum und IRC nicht mehr helfen konnten, des Gentoo Bugtrackers bedienen. Und genau hier machte ich Erfahrungen, welche mich enttäuschten. Oft, wenn ich auf diesem Wege mit den Gentoo Entwicklern in Kontakt treten musste, wurde ich enttäuscht. So sind zwei Bugs, die ich vor fast 2 Monaten und über 4 Monaten eingetragen habe, bis heute nicht final bearbeitet und geschlossen worden. Den Vogel abgeschossen hat aber der Gentoo Bug 363675, bei dem ich über 1,5 Monate der einzige gewesen bin, der den auch nur angesehen hat. Und dabei ging es nicht etwa um irgendeinen Schönheitsfehler: Ich konnte den GNU C Compiler (gcc) nahezu garnicht mehr benutzen. Das bedeutet im Falle von Gentoo Linux, das man nahezu kein Paket mehr installieren kann. Als ob das nicht ärgerlich genug wäre: Auch Sicherheitsupdates sind so natürlich nicht mehr möglich. Als ich mir nicht mehr zu helfen wusste, habe ich dasselbe Problem im Bugtracker vom gcc direkt eingestellt. Nach sage und schreibe 3 Minuten und 42 Sekunden hat einer der dortigen Entwickler mein Problem gelöst!
Es stellte sich letzten Endes heraus, das es sich um ein lokales Problem bei mir gehandelt hatte, jedoch hat sich ja kein Mensch den Bug gründlich genug angeschaut um das wissen zu können. Wäre es ein globales Problem am gcc gewesen, wäre eine nichtbeachtung eines Bugs in dieser Kategorie fatal gewesen!
Als ich das dann im verlinktem Gentoo Bug 363675 mal so angemerkt habe, bekam ich folgende Antwort:
it's a volunteer system. if you dont like how it works, then step up and help. expecting people to help you isnt how things work.
Mit anderen Worten also: Da Gentoo ein System von Freiwilligen ist, darf man sich nicht beschweren. Grundsätzlich natürlich richtig. Jedoch zwei Punkte dazu (was mich ganz dezent dann auch wieder zum eigentlichen Thema zurückführt
):
- Wenn ich das selber hätte lösen können, hätte ich wohl kaum einen Bug dazu erstellt.
- Ich möchte ja gerne helfen, aber die Einstiegshürde bei Gentoo ist leider sehr hoch!
Das kann ich mir gut vorstellen; wie eben beschrieben scheinen die Entwickler ja mit den Anfragen völlig überfordert zu sein. … was ja nichts mit Unfähigkeit, sondern mehr mit mangelnder Organisation zu tun hat. Umso unverständlicher ist es, das Hilfsangebote am laufendem Band ausgeschlagen werden. Das sieht man besonders drastisch am Beispiel von Daniel Robbins:
Wie gesagt: Völlig überlastet und unkoordiniert das Team.
Naja, mehr als stundenlang hin-und-hertesten kann man ja nicht. Und zum Glück hat so ein PHP Paket ja in der Regel nicht das Potential irgendetwas wichtiges zu zerstören.
Kopieren einer ACL unter Linux
Nur schnell ein QuickTipp, ehe ich das wieder mal Google, nur um dann hinterher zu merken, das es als Beispiel in der Manpage zu setfacl steht …
Wenn man eine ACL unter Linux von einer Datei/Verzeichnis auf ein/-e andere/-s kopieren möchte, reicht, egal wie kompliziert und Umfangreich diese ist, folgender Befehl aus:
getfacl ~mr/acltemplate | setfacl –set-file=- ~mr/acldestination
Konvertieren von SVN, CVS oder Git Repositories zu Mercurial
Diese Mini-Anleitung ist nur etwas für Leute, denen die Überschrift etwas sagt. Für alle anderen: Geduldet Euch; ich werde in nächster Zeit voraussichtlich einen umfassenderen Artikel zu Mercurial und (D)VCS im allgemeinen verfassen.
Also, zunächst einmal: Mercurial bringt bereits ein Kommando mit, um von einem SVN (Subversion), CVS oder Git Repository alle Daten, inklusive der kompletten Historie, in ein Mercurial Repository konvertieren zu können. Der Befehl heißt schlicht “convert”, ist jedoch standardmäßig deaktiviert und steht als Extension zur Verfügung. BTW: Eine Übersicht über (de-)aktivierte Extensions bekommt ihr, wenn Ihr einfach folgende Hilfe aufruft:
hg help extensions
In dieser Ausgabe wird an sich das folgende auch bereits erklärt. Zudem ist hier die Zeile zu “convert” interessant:
convert Importiert Änderungssätze von anderen Versionsverwaltungssystemen nach Mercurial
Genau was wir wollen also!
Man aktiviert diese Extension, indem man in “seiner” (~/.hgrc) oder der globalen Mercurial Konfigurationsdatei folgende Zeilen einträgt:
[extensions]
convert =
Kein Fehler: Da kommt in der Tat nichts hinter das “=”.
Nun kann man beliebig viele Repositories ganz einfach konvertieren, indem man die HTTP-URL eingibt, oder das lokale Quell- und Zielverzeichnis. Letzteres folgt als Beispiel:
#> hg convert python_spielwiese ../../hg/repos/python_spielwiese
Initialisiere Ziel-Projektarchiv ../../hg/repos/python_spielwiese
Durchsuche Quelle…
Sortiere…
Konvertiere…
1 Initial Import
0 Initial PyDev Checkout
Wie man sieht, übernimmt das Programm die komplette commit-History; in diesem Fall nur 2.
Easy Peasy
Meine aktuellen Bemühungen in Sachen IT
Ich komme zur Zeit nicht wirklich zum bloggen. Zum einen passiert (für den Rest der Welt) nur uninteressanter Scheiss bei mir. Privat geht es zwar gerade hoch her – aber “Mann” wird ja auch erwachsen. Bedeutet: Ich werde in Zukunft etwas weniger private Details hier posten. Was geht es Google und Co. an, das ich … was weiss ich: Gerade lieber Gemüse esse als Pizza, viel oder wenig Sport treibe, oder mein Schiss gerade eher einem Fragezeichen oder einem Hakenkreuz ähnelt? Genau: Garnichts !
Vielmehr wende ich mich gerade wieder verstärkt dem Know-How meines ewigen Steckenpferdes rund um den PC und verstärkt Linux und verwandten Techniken zu.
Was sind “verwandte Linuxtechniken”? Ich würde, nach jüngsten Erfahrungen, sagen: Alles, was zukunftsweisend und in irgendeiner Weise kreativ ist und mit IT zu tun hat ist heutzutage eine verwandte Linuxtechnik.
Ich möchte an dieser Stelle gerne zwei Beispiele aus meiner aktuellen Arbeitswoche heranziehen:
1) PHP
Wie alt ist PHP inzwischen? Ich meine nicht so direkt die Sprache, sondern vielmehr: Wie lange ist PHP denn inzwischen bitte die Programmiersprache im Internet und der modernen IT? Ich komme zwar noch aus der “Windows for Workgroups” – Ära, aber selbst mir fällt es schwer, mich heute noch an eine Zeit ohne dynamische Webseiten, wo man schlichtweg der King war, wenn man ein DataBecker HTML4 Buch grob angelesen hatte, zurück zu erinnern. Inzwischen wird wohl keiner, der sich ernsthaft mit Webseiten und Trends im Web auseinander setzt bestreiten, das ohne PHP und die unaufhaltsame Verbreitung von OpenSource-Giganten wie Apache HTTPd und Linux das Web heute ein anderes (und ich behaupte: Schlechteres!) Web wäre. Schaut Euch nur mal die Alternativen an: ISS, Windows Server, Microsoft Silverlight, … wer will denn auch nur eines davon haben bitte?? Das finden ausschließlich solche Idioten gut, die kognitiv nicht in der Lage sind Lizenzbedingungen zu lesen und zu verstehen. Da fallen “Argumente” wie
“das kostet doch sooo viel Geld, da wollen Sie mir doch wohl nicht erzählen, das diese kostenlose Freeware legal dasselbe leistet!?“
Ich werde das nie vergessen: Dieser Satz fiel in meiner Berufsausbildung wirklich! Und zwar von meinem damaligen, technischen Ausbildungsbetreuer bei Computacenter. “Freeware”. Das muss man sich mal vorstellen … OpenSource und GPL – völlige Fremdworte.
Ich fürchte diese geistige Haltung ist nach wie vor weit verbreitet – zum Glück sterben diese Idioten aber immer mehr aus. Das ganze kann, in meinen Augen, garnicht schnell genug gehen.
Wie auch immer: Ich wollte heute für ein Plugin für Eclipse auf einer Windowsmaschine PHP 5.3.x installieren. Fertig – das ist die vollständige Anforderung! Zunächst einmal muss man dabei, meiner Meinung nach, den simplen Weg dahin nachvollziehen. Ich lade ausdrücklich jeden Leser ein, den folgenden Weg nachzuvollziehen: Ladet Euch alleine mal ein PHP 5.3 für Windows herunter.
Man geht zunächst auf die Homepage von PHP unter www.php.net . Hier findet man sofort den Link “download” oben auf der Homepage. Dann kann man sich primär PHP 5.3 oder die ältere, abgekündigte Version 5.2 herunterladen. Die primäre Wahl stellt sich hier in einem GZip oder BZip2 Archiv dar – ohne Diskussion: Sourcecode geht hier ab! … als dritte Option wird nun auch noch eine fast abseits stehende Option angeboten: ”For the Windows binaries and installer, see http://windows.php.net/download/.“. Wirkt ein wenig wie “Ach ja, wir haben da auch noch ein behindertes Kind …” im Kinderheim.
Aber – wenn der ganze Kram, egal wie uninovativ diese statisch gelinkte Binär-Scheisse auch sein mag, dann wenigstens funktionieren würde. TUT ES ABER NICHT!!! Macht Euch mal den Spass: Ladet den PHP Installer für Windows herunter, startet nur die php.exe – was passiert? Der Mist stürzt ab, weil ihm DLL Dateien fehlen! Man darf nun wiederum hoffend, das diese Projekte DLLs anbieten, diese ganzen Abhängigkeiten erstmal erfüllen, bis mein eine lauffähige PHP Installation zu Wege bringt.
Mal ehrlich: Fühlt sich das an wie das Jahr 2011? DIE Top-Webtechnik, nicht nativ verfügbar. Wie kann jemand, der ernstzunehmend PHP entwickelt, heute zutage noch Windows einsetzen?
Es gibt, als PHP Entwickler-Workstation, heutzutage kein einziges Argument mehr für Windows!!!!!!! Beweißt mir gerne das Gegenteil!
2) Samba
Warum gibt es Samba? Nur, weil diese ganzen alteingesessenen (böse Zungen würden sagen: festgefahrenen) Anwender weiterhin auf ihrem “Ich bin zwar zu faul mich in etwas anderes als Windows einzuarbeiten und selbst da zu blöd für Admin-Rechte, will aber trotzdem auf alles und jeden Zugriff haben” – Standpunkten bestehen! 90% meines aktuellen Rechte-Chaos-Alltages gehen aktuell dafür drauf, Probleme zu beheben, die es nicht geben würde, wenn Microsoft langsam mal im Jahre 2011 ankommen und sich dem Markttrend gemäß entwickeln würde! Die Jungs kriegen es sogar hin, mit Ihrem Officepaket Dateien über Samba Rechte zu verpassen, die eigentlich unmöglich sind. Stichwort: “Ich möchte gerne, das ich auf die Datei, die ich gerade abspeichere, weder Lese- noch Schreibrechte habe“.
Ich migriere gerade den aktuellen Samba-PDC in unserer Firma von Version 2.5.x auf 3.5.8 . Die Userdaten migrieren: Kein Problem! Reines Datei-kopieren. Was passiert aber, sobald sich ein User unter einem Windows ab Vista (getestet: Windows Vista, 7, Server 2008 R2) anmeldet? Sofortige Wiederabmeldung, ohne Fehlermeldung. Super!!
Ich sage Euch: Wenn Spiele und Branchenriesen wie Adobe Photoshop / Dreamweaver sauber unter Linux laufen würden, hätte ich diesen Krampf schon vor Jahren auch privat von meiner Hardware verbannt
Wiederherstellen von MySQL Zugängen
Es folgt ein recht alter Hut. Mir ist nur gerade mal aufgefallen, das ich den folgenden Weg MySQL Zugänge anzulegen, wenn man die Zugangsdaten eines MySQL Servers vergessen oder versehentlich gelöscht hat, noch nie hier niedergeschrieben habe.
Es geht im großenn und ganzen darum, das man zunächst den MySQL Daemon beendet, ohne Zugangstabellen zu laden wieder startet, den gewünschten Zugang anlegt und nach einem Neustart des Daemons, dieses Mal mit Zugangstabellen, diesen User dann für die weiteren Schritte verwenden kann.
Zunächst ein kurzer Sicherheitshinweis: Für die folgenden Schritte empfiehlt es sich den MySQL Daemon nur von localhost/127.0.0.1 erreichbar zu machen, da für einen kurzen Zeitraum jedermann ohne Passwort administrativ auf den Server connecten kann. Um ganz sicher zu gehen, kann man auch noch einen anderen Port wählen um lokalen Schabernack zu unterbinden.
Das Vorgehen ist wie folgt:
- Beenden des MySQL Daemons
- Starten des MySQL Daemons ohne Zugriffstabellen:
mysqld_safe –skip-grant-tables & - Nun kann sich root ohne Passwort in die Datenbank “mysql” einloggen:
mysql -uroot mysql - Passwort neu setzen:
UPDATE user SET password=PASSWORD(“abcd”) WHERE user=”root”;
Das neue Passwort wäre nun “abcd”. Es kann natürlich gesetzt werden wie immer es sein soll. - (Optional) Zugriffsrechte neu einlesen:
FLUSH PRIVILEGES; - Da man sich immernoch ohne Passwort einloggen kann, sind alle mysql Prozesse zu beenden; notfalls zu killen (nur, wenn das init Script es per “stop” nicht schafft alles was MySQL ist zu beenden). Besonders gilt das für die mysql_safe Instanz (prüfen ob noch was läuft per “ps waux | grep -i mysql“).
- Abschliessend MySQL wieder ganz normal starten.
Man hat so das Passwort des Users “root” wieder auf den in Punkt 4 verwendeten Wert gesetzt. Da dieses ja _der_ administrative User ist, können alle weiteren Korrekturen im ganz normalen, sicherem MySQL Kontext behoben werden.
Wenn man einen anderen User als “root” für seine administrativen Arbeiten verwendet, muss man selbstverständlich diesen in Punkt 3 und 4 statt “root” verwenden.

