Quelltextdateien werden oftmals mit GPG/PGP-Signaturen bereitgestellt, über die die Integrität der Dateien geprüft werrden kann. Hier zeige ich exemplarisch, wie dies für Subversion und Nginx gemacht wird.
JMX so aktivieren, dass der Zugriff nur via Localhost möglich ist
Im Java-Umfeld gibt es die JMX-Schnittstelle, die u.a. für’s Monitoringittels JCONSOLE verwendet werden kann. Für meine eigenen Java-Prozesse ist das schnell erledigt: Einfach den Java-Prozess starten, dann jconsole (ohne Zusatzargument). Es wird eine Liste mit allen meinem Java-Prozessen angezeigt und ich kann einfach den gewünschten auswählen. Danach bekomme ich eine Anzeige ähnlich dieser:
Dummerweise werden Webanwendungen manchmal mit anderen Benutzern gestartet, die noch dazu recht abgeschottet sind. Da scheitert der vorige Wert für mich – die betreffenden Tomcats erscheinen dann einfach nicht in der Liste. Das ist der Punkt, an dem man gerne die Remote-Schnittstelle über das setzen diverser Java-Properties freischaltet. Dumm dabei: Nun kann netzwerkweit auf die JMX-Schnittstelle zugegriffen werden – sofern man sie nicht zusätzlich abblockt, was auch wieder Aufwand bedeutet.
Ziel: Wir wollen die JMX-Schnittstelle so in Betrieb nehmen, dass nur von “localhost” aus auf sie zugegriffen werden kann!
Vor grob 5 Monaten habe ich Octopress erstmalig aufgesetzt und seitdem die
Finger von den Aktualisierungen gelassen. Dadurch funktionieren in “meiner” Installation
nun gewisse Dinge nicht ganz so gut wir im Original. Beispielsweise soll die Verlinkung
von Blog-Posts im Original über einen Methodenaufruf funktionieren, bei meiner Variante
muß ich mir den Link mühsam zusammenklauben.
Erstmal möchte ich testen, ob die aktualisierte Version überhaupt funktioniert. Diese Tests
mache ich mit “master” und “source-2.1”.
Offline-Installation einer Chrome-Erweiterung – Teil 2: CRX-Dateien einspielen
Hier beschreibe ich kurz, wie man CRX-Dateien in Google-Chrome einspielt.
Die CRX-Dateien müssen zuvor heruntergeladen worden sein, siehe hierzu
CRX-Dateien herunterladen.
Getestet hab’ ich’s mit Google-Chrome 25 unter Linux.
Offline-Installation einer Chrome-Erweiterung – Teil 1: CRX-Dateien herunterladen
Mein aktueller Lieblingsbrowser ist zur Zeit Google-Chrome. Dumm nur, wenn
bei manchen Unternehmen der ausgehende Internet-Verkehr so gefiltert wird,
dass nur manch andere Browser (beispielsweise Internet Explorer) zugelassen
sind.
Kommt ein Kernel geflogen … Hardware Enablement Stack für Ubuntu-12.04
Eben hab’ ich mir die Zeit genommen und die
Ankündigung für Ubuntu-12.04.2
ein wenig näher angeschaut. Offenbar gibt’s im Zuge des
LTS Enablement Stacks einen
neuen Kernel (3.5 statt 3.2). Dieser soll die Verwendung von neueren Geräten
ermöglichen.
Eigentlich bin ich mit dem Alt-Kernel recht zufrieden. Alle meine
Rechner laufen – sogar der Problemfall eines AMD-basierten Samsung-Notebooks.
Bei diesem mußte ich allerdings den Grafiktreiber selbst kompilieren, der bei
12.04 ausgelieferte Treiber unterstützt die verbaute Radeon-Karte nicht.
Ubuntu-Pakete aktualisieren – Patchverwaltung mit Quilt
Heute hatte ich die Idee, eine neue Version von NGINX zu erzeugen.
Grob sollte es nach diesem Muster klappen:
Paket aktualisieren
1234567891011
# Quellen zum Ubuntu-Paket runterladenapt-get source nginx
# Aktuelle Nginx-Quellen runterladenwget -c http://nginx.org/download/nginx-1.2.7.tar.gz
# Paket aktualisierencd nginx-1.1.19
uupdate -u ../nginx-1.2.7.tar.gz
cd ..
# Paket neu erzeugencd nginx-1.2.7
dpkg-buildpackage
Danach sollten die neuen Paketdateien bereit zur Installation sein.
Fatales Problem
Leider klappt’s nicht, es gibt fatale Fehlermeldungen:
Fatale Fehler bei der Paketerzeugung
123456789101112
uli@ubuntu-120464:/build/nginx/nginx-1.2.7$ dpkg-buildpackage
dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): -D_FORTIFY_SOURCE=2
...
dpkg-source -b nginx-1.2.7
dpkg-source: Information: Quellformat »3.0 (quilt)« wird verwendet
dpkg-source: Information: nginx wird unter Benutzung des existierenden ./nginx_1.2.7.orig.tar.gz gebaut
patching file src/http/modules/perl/Makefile.PL
Hunk #2 FAILED at 14.1 out of 2 hunks FAILED -- saving rejects to file src/http/modules/perl/Makefile.PL.rej
dpkg-source: Fehler: Fehler-Exitstatus von LC_ALL=C patch -t -F 0 -N -p1 -u -V never -g0 -E -b -B .pc/perl-use-dpkg-buildflags.patch/ < nginx-1.2.7.orig.OjasVr/debian/patches/perl-use-dpkg-buildflags.patch war 1
dpkg-buildpackage: Fehler: Fehler-Exitstatus von dpkg-source -b nginx-1.2.7 war 2
Korrektur
In der Fehlermeldung erkennt man den Hinweis auf das Werkzeug QUILT.
Dieses verwaltet die Anpassungsdateien (patches) und kann auch zur Korrektur
der fehlerhaften Anpassungen verwendet werden.
Hier der Korrekturablauf:
Patch aktualisieren
1234567
export QUILT_PATCHES=debian/patches
quilt push -f # ... eigentlich hätte ich hier einen Fehler erwartet,# stattdessen erscheint eine Meldung mit "succeeded with fuzz..."# Glück gehabt!quilt refresh
quilt pop -a
dpkg-buildpackage
Nun läuft die Erzeugung durch, DEB-Dateien werden erstellt.
Leider ist schon wieder eine Sicherheitslücke in Rails
entdeckt worden.
Analog zur Aktualisierung auf 2.3.15 erfolgt nun die auf 2.3.17:
Gems runterladen und auf Redmine-Rechner kopieren
Betriebssystem aktualisieren
Gems einspielen
Alte Gems löschen
Gems herunterladen und zum Redmine-Server übertragen
Der Redmine-Server hat keinen Zugang zum Internet. Deshalb müssen die Gems
auf einem anderen Rechner heruntergeladen und zum Redmine-Server übertragen
werden.