Update RubyGem für Ruby on Rails bei Domainfactory

28. Juli 2010

Der Hoster Domainfactory bietet seid einiger Zeit Ruby on Rails-Unterstützung. Leider sind die installierten Gem-Pakete etwas veraltet und die FAQ von D)F etwas verwirrend, da sie sich nicht an den Standardweg halten.
Folgende Anleitung bezieht sich auf Managed Hosting-Pakete mit ssh Zugang.
Variablen in der Datei .bash_profile setzen:

export PATH="$HOME/.gem/ruby/1.8/bin:$PATH"
export RUBYLIB="$HOME/.gem/ruby/1.8/lib:$RUBYLIB"
export GEM_HOME="$HOME/.gem/ruby/1.8"
export GEM_PATH="/usr/lib/ruby/gems/1.8:$GEM_HOME"

Variablen in die laufende Shell laden. Bei einem erneuten Login wird die Datei von alleine geladen:

source ~/.bash_profile

Zunächst installiert man ein neues RubyGems:

gem install rubygems-update
update_rubygems --prefix=$GEM_HOME
ln -s $GEM_HOME/bin/gem18 $GEM_HOME/bin/gem
gem -v

Homeverzeichnis feststellen:

echo $HOME
/kunden/xxxxxxxx

In der Datei .gemrc werden die Information hinterlegt damit der Webserver die Gems verwenden kann. Die Datei verwendet YAML-Syntax:

gem: --no-ri --no-rdoc
gemhome: &GemHome /kunden/xxxxxxxx/.gem/ruby/1.8
gempath:
- *GemHome
- /usr/lib/ruby/gems/1.8

Vor den minus – Zeichen befinden sich jeweils 2 Leerschritte.

Große Festplatte / Raid-Verbund formatieren

15. Februar 2010

Beim Erstellen von Partitionen > 2 TB gibt es mit fdisk/cfdisk Probleme.
Derartig große Platten / Verbünde laufen unter Linux als “Large Block Device”.
Das Programm parted schafft hier Abhilfe.
Partitionstabelle auf gpt umstellen und schon läuft’s.

server:~# parted /dev/sdb
GNU Parted 1.8.8
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel Yes gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk
will be lost. Do you want to continue?
(parted) p
Model: AMCC 9500S-8 DISK (scsi)
Disk /dev/sdb: 4500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
(parted) mkpart primary 1 4500GB
(parted) q

So nur noch Dateisystem anlegen und Kaffee holen:

server:~# mkfs.ext4 /dev/sdb1
mke2fs 1.41.3 (12-Oct-2008)
Dateisystem-Label=
OS-Typ: Linux
Blockgröße=4096 (log=2)
Fragmentgröße=4096 (log=2)
274661376 Inodes, 1098624759 Blöcke
54931237 Blöcke (5.00%) reserviert für den Superuser
Erster Datenblock=0
Maximale Dateisystem-Blöcke=0
33528 Blockgruppen
32768 Blöcke pro Gruppe, 32768 Fragmente pro Gruppe
8192 Inodes pro Gruppe
Superblock-Sicherungskopien gespeichert in den Blöcken:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Schreibe Inode-Tabellen: erledigt
Erstelle Journal (32768 Blöcke): erledigt
Schreibe Superblöcke und Dateisystem-Accountinginformationen: erledigt
Das Dateisystem wird automatisch nach jeweils 32 Einhäng-Vorgängen bzw.
alle 180 Tage überprüft, je nachdem, was zuerst eintritt. Veränderbar mit
tune2fs -c oder -t .

Fertig

History Befehl in der Bash verwenden

16. September 2009

Die letzten aptitude-Befehle anzeigen lassen …

$ history | grep aptitude

Als Ausgabe bekommt man …

14 aptitude update
15 aptitude upgrade
16 history | grep aptitude

Befehl 14 nochmal ausführen …

$ !14

Seiten von Salesforce im Firefox bescheunigen

30. Juni 2009

about:config
browser.cache.disk_cache_ssl;true

Detect charset with php5 – utf8 or not

8. Juni 2009


/**
* Checks the charset of a text by a given charst
* Works by comparing text with double encoded text.
*
* @param string $text The text string to check for charset.
* IE "test" or "töster" or "100 €" or "Пред" or "留学生"
* @param string $encoding The charset to check with.
* IE "ASCII" or "ISO-8859-1" or "ISO-8859-15" or "UTF-8"
* @param string $middle_encoding The charset to use between the both encoding steps.
* "UTF-8" is default.
* @return boolean true or false
* @author Christof E. Spies
* @copyright ICEF GmbH
* @since 2009-04-20
* @link http://de.php.net/mb_convert_encoding
*/
function check_charset ( $text, $encoding, $middle_encoding = "UTF-8" )
{
return $text === mb_convert_encoding ( mb_convert_encoding ( $text, $encoding, $middle_encoding ), $middle_encoding , $encoding );
}

/**
* Detects the charset of a text from an array of charsets
*
* @param string $text The text string to check for charset. IE "test" or "töster" or "100 €" or "Пред" or "留学生"
* @param array $encoding The charset to check with.
* Default is array(
* "ASCII",
* "ISO-8859-1",
* "ISO-8859-15",
* "UTF-8"
* );
* @retrun string charset or false
* @author Christof E. Spies
* @copyright ICEF GmbH
* @since 2009-04-20
*/
function detect_charset ($text, array $possible_charsets=array("ASCII","ISO-8859-1","ISO-8859-15","UTF-8"))
{
foreach ($possible_charsets as $code)
{
if (check_charset($text, $code))
{
return $code;
}
}
return false;
}

Sprache für Rechtschreibprüfung in Thunderbird leichter Umstellen

3. April 2009

Wer permanent in zwei oder mehr Sprachen kommuniziert, kennt das Problem sicherlich. Ständig muss man seine Programme auf die richtigen Spracheinstellungen bringen.
Für das Email-Programm Mozilla Thunderbird habe ich eine schöne Erweiterung entdeckt, mit der sich das Umschalten mit einem Mausklick erledigen lässt. Die Lösung heißt etwas ausschweifend Wörterbuch-Manager für Thunderbird. Funktioniert gut, viel Spaß damit.

Dateianhang winmail.dat

1. April 2009

Da war es wieder dieses Problem. Eine neue Email mit der Datei winmail.dat darin. Dem Kunden sagen er soll die Mail nochmal mit einem ordentlichen Programm versenden – zu zeitraubend.
Also schnell bei Google winmail.dat eingeben und schon landete man bei einem alten Bekannten. Nur leider ist dort irgendwie die Zeit stehen geblieben – wie bei den Kunden ;). Das Programm läuft nicht mehr unter Windows XP.
Nach weiteren Einträgen in die Suchmaschine landet man bei EOLSOFT und deren Produkt Winmail Opener. Runter laden, ausführen und alles ist schön.

PHP IDE

31. März 2009

Nach langem Suchen bin ich nun endlich auf eine brauchbare IDE für PHP gestossen.
PHP Development Tools Project
Weiterhin möchte man folgende Erweiterungen haben:

Subversion mit sasl sicheren ohne die Verwendung von https

20. März 2009

Als Server dient in diesem Howto das Betriebssystem Linux der Distribution Debian in der Version Lenny.

Zunächst installieren wir die benötigte Software:
aptitude install subversion subversion-tools sasl2-bin libsasl2-modules

Neuen Benutzer anlegen:
adduser svn

Verzeichnisstruktur anlegen, sowie Eigentümer und Rechte setzen:
mkdir -p /var/svn
chown svn. /var/svn
chmod 0771 /var/sv

Als Benutzer svn ein neues Lager für die nativen SVN-Daten anlegen:
su - svn
svnadmin create /var/svn/repos

Original Konfiguration sichern und eigen Konfiguration anlegen:
cp /var/svn/repos/conf/svnserve.conf /var/svn/repos/conf/svnserve.conf.org
vim /var/svn/repos/conf/svnserve.conf
[general]
realm = Subversion seips.net
[sasl]
use-sasl = true
min-encryption = 128
max-encryption = 256

exit

Anmeldeverwaltung konfigurieren:
vim /usr/lib/sasl2/svn.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
sasldb_path: /var/svn/svn_sasldb2
mech_list: DIGEST-MD5

Neue Passwort-Datenbank anlegen und füllen, sowie Recht und Eigentümer der Datei setzten:
saslpasswd2 -c -f /var/svn/svn_sasldb2 -u "Subversion seips.net" benutzername
chmod 0660 /var/svn/svn_sasldb2
chown svn /var/svn/svn_sasldb2

SVN-Server als Benutzer svn starten:
su - svn
svnserve -d -r /var/svn/repos/

Fehlerbehebung:
tail -f /var/log/auth.log
svnserve -daemon -root /var/svn/repos/ --foreground

Hinweis:
Folgt man den einschlägigen Anleitungen landet man oft bei der Fehlermeldung “Could not obtain the list of SASL mechanisms”. Diese lässt sich mit einem einfachen aptitude install libsasl2-modules beheben.

Debian aktualisieren leicht gemacht

28. Februar 2009

Wem geht es nicht auf die Nerven bei Debian aktualisieren immer einen Code-Bandwurm eingeben zu müssen.
aptitude update
aptitude safe-upgrade

Seit Debian Lenny heißt aptitude upgrade nun aptitude safe-upgrade. Also noch länger :(

Gebt doch einfach mal den Befehl alias aptdate='aptitude update && aptitude safe-upgrade' ein. Und schon wird alles mit einem einfachen aptdate erldigt.

Jetzt die Änderung noch dauerhaft verewigen, sonst ist das Pseudonym beim nächsten Login wieder weg.
echo "# Macht Updates mit aptitude leichter." >> .bashrc
echo "alias aptdate='aptitude update && aptitude safe-upgrade'" >> .bashrc