Oktober 2013 Archive

Ich habe mir mal die Freiheit genommen die MySQL 5.6 als Debian-Paket von dev.mysql.com zu installieren.
Ich weiß auch nicht ob es mal anders war, da ich sonst immer die Tarballs runter lade.
Die Debianpakete von MySQL sind zumindest sinnbefreit. Genaugenommen sind sie nichts weiter als
ein Tarball als Paket

root@debianmy56:/var/tmp# dpkg -i mysql.deb 
Selecting previously deselected package mysql.
(Reading database ... 8799 files and directories currently installed.)
Unpacking mysql (from mysql.deb) ...
Setting up mysql (5.6.14) ...
Ok schauen wir ob es User/Gruppe angelegt hat:

root@debianmy56:/var/tmp# getent passwd mysql
root@debianmy56:/var/tmp# getent group mysql
Ok das nicht. Ein init-Skript?

root@debianmy56:/var/tmp# ls /etc/init.d/| grep -i mysql
Ok konsequent und ja den Pfad muss man auch setzen:

root@debianmy56:/var/tmp# PATH=$PATH:/opt/mysql/server-5.6/bin/
Und ja Abhängigkeiten hat das Paket auch nicht und selbstredend ist MySQL nicht eingerichtet:

root@debianmy56:/var/tmp# mysqld --console
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
root@debianmy56:/var/tmp# apt-get install libaio1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  libaio1
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/7928 B of archives.
After this operation, 73.7 kB of additional disk space will be used.
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously deselected package libaio1.
(Reading database ... 18390 files and directories currently installed.)
Unpacking libaio1 (from .../libaio1_0.3.107-7_amd64.deb) ...
Setting up libaio1 (0.3.107-7) ...
root@debianmy56:/var/tmp# mysqld --console
2013-10-12 22:52:57 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2013-10-12 22:52:57 307 [Warning] Can't create test file /opt/mysql/server-5.6/data/debianmy56.lower-test
2013-10-12 22:52:57 307 [Warning] Can't create test file /opt/mysql/server-5.6/data/debianmy56.lower-test
mysqld: Can't change dir to '/opt/mysql/server-5.6/data/' (Errcode: 2 - No such file or directory)
2013-10-12 22:52:57 307 [ERROR] Aborting
Und so weiter.
Die Idee von Paketen und der Verwendung in einem Paketmanager ist eine andere. 

# dpkg-query -W -f='${Provides}\n${Depends}\n${Conflicts}\n' mysql



#
Es ist also nichts weiter als ein Tarball in einem Deb versteckt. 
Z.B. werden andere Pakete davon ausgehen, dass kein MySQL installiert ist und den Paketmanager anweisen MySQL zu installieren.
Na viel Spaß :/

Gruß
Erkan

Wer sich für Network Namespaces interessiert sollte den tollen Blogpost von Dr. T. lesen.
Namespaces (auch Network) sind ein Bestandteil von LXC. So ist es irritierend, dass trotz laufender Instanzen die Namespaces von LXC mit
ip netns list
nicht gesehen werden können. 

ip(route) verwaltet seine/die Namespaces unter /var/run/netns die Namespace einer LXC Instanz findet sich unter /proc/$PID/ns/net.
So ist lediglich ein symbolischer Link zu setzen um diese Network Namespaces auch für ip sichtbar/managebar zu machen. Irgendwie doof aber ist wohl so :/

# ip netns list
# ls /var/run/netns/
# ip netns add ImaNameSpace
# ls /var/run/netns/
ImaNameSpace
# ip netns exec ImaNameSpace ip l
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
# lxc-info -n mariadb_galera01
state: RUNNING
pid: 4979
# ln -s /proc/4979/ns/net /var/run/netns/mariadb_galera01
# ip netns exec mariadb_galera01 ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
13: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:16:3e:0f:71:d5 brd ff:ff:ff:ff:ff:ff
#
Und ja lxc-attach exists :)

Viel Spaß
Erkan