November 20, 2009

Centos 5.4 mysql-server install problem

I ran into a problem installing mysql-server on Centos 5.4. I did the usual

[root@myserver]# yum install mysql-server

The installation works, but this error appears when trying to start mysqld

[root@myserver]# service mysqld start
Initializing MySQL database: Installing MySQL system tables…
ERROR: 1004 Can’t create file ‘/tmp/#sql30e0_1_0.frm’ (errno: 13)
091119 20:43:10 [ERROR] Aborting

091119 20:43:10 [Note] /usr/libexec/mysqld: Shutdown complete

Installation of system tables failed!

Examine the logs in /var/lib/mysql for more information.
You can try to start the mysqld daemon with:
/usr/libexec/mysqld –skip-grant &
and use the command line tool
/usr/bin/mysql to connect to the mysql
database and look at the grant tables:

shell> /usr/bin/mysql -u root mysql
mysql> show tables

Try ‘mysqld –help’ if you have problems with paths. Using –log
gives you a log in /var/lib/mysql that may be helpful.

The latest information about MySQL is available on the web at

http://www.mysql.com

Please consult the MySQL manual section: ‘Problems running mysql_install_db’,
and the manual section that describes problems on your OS.
Another information source is the MySQL email archive.
Please check all of the above before mailing us!
And if you do mail us, you MUST use the /usr/bin/mysqlbug script!
[FAILED]

The problem was with SELinux. Issuing

[root@myserver]# sestatus

shows SELinux is enabled and in enforcing mode.

[root@myserver]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 21
Policy from config file: targeted

Disabling SELinux enforcing temporarily allowed the install to proceed.

First we take out the old mysql-server install (the tables weren’t written to correctly):

[root@myserver]# yum remove mysql-server

Make sure mysqld is not running:

[root@myserver]# service mysqld stop

Then we move the corrupt mysql tables out of the way:

[root@myserver]# mv /var/lib/mysql/* /home/some-where-safe/

Next, we set SELinux to permissive mode:

[root@myserver]# setenforce 0

and check that it is so

[root@myserver]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: enforcing
Policy version: 21
Policy from config file: targeted

Now we reinstall mysql-server

[root@myserver]# yum install mysql-server

and start it:

[root@melstar mysql]# service mysqld start
Initializing MySQL database: Installing MySQL system tables…
OK
Filling help tables…
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password ‘new-password’
/usr/bin/mysqladmin -u root -h melstar.theplanet.host password ‘new-password’

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at

http://www.mysql.com

Support MySQL by buying support/licenses at http://shop.mysql.com
[ OK ]
Starting MySQL: [ OK ]

The initialisation proceeded correctly, so we can re-enable SELinux enforcing mode.

[root@myserver]# setenforce 1

and then move on to securing and configuring mysql.

August 9, 2008

Pidgin 2.4.3 Debian Lenny

Ok, I know pidgin binaries are available for Lenny, but let’s build Pidgin 2.4.3 from source anyway… Lenny will be the new “stable” soonish (September?) and the Pidgin team don’t provide Debian binaries for stable.

(This will probably work on etch. I posted build instructions here for Pidgin 2.4.1 a while back. The configure script in that case was more lenient with respect to dependencies than the current 2.4.3 configure script.)

Before you build

Required stuff (For a minimal install.)

apt-get install gettext libglib2.0-dev libgtk2.0-dev libxml2-dev libxml-perl libperl-dev

We need this if we’re going to use MSN or Google talk since they need ssl (Pidgin uses the gnutls ssl libraries)

apt-get install libgnutls-dev

Optional Stuff (Probably a good idea to install these.)

Spell checking
apt-get install libgtkspell-dev

X Screen Saver extension (needed for determining idle time from mouse and keyboard use)
apt-get install libxss-dev

Startup notification (visual feedback of startup)
apt-get install libstartup-notification0-dev

Sound support
apt-get install libgstreamer0.10-dev

More optional stuff (Install these if you need them.)

Tcl/Tk support (if you need tcl/tk scripting)
apt-get install tcl-dev tk-dev

Meanwhile support (Lotus Sametime support)
apt-get install libmeanwhile-dev

Avahi support (for Bonjour)
apt-get install libavahi-glib-dev

D-bus support (message bus support)
apt-get install libdbus-glib-1-dev

NetworkManager support (A D-Bus service providing connection management and selection of best available connection).
apt-get install network-manager-dev

Build and Install

Download the source package from http://downloads.sourceforge.net/pidgin/pidgin-2.4.3.tar.bz2

Unpack pidgin
tar jxvf pidgin-2.4.3.tar.bz2

Configure

cd pidgin-2.4.3
./configure

You can pass the following options to configure if you want to disable things you don’t need

--disable-gtkui compile without GTK+ user interface
--disable-consoleui compile without console user interface
--disable-screensaver compile without X screensaver extension
--disable-sm compile without X session management support
--disable-startup-notification compile without startup notification support
--disable-gtkspell compile without GtkSpell automatic spell checking
--disable-gstreamer compile without GStreamer audio support
--disable-meanwhile compile without meanwhile
--disable-avahi compile without avahi
--disable-nm compile without NetworkManager support

(To see all available options ./configure --help)

Build and install

make
su
make install

Pidgin is then at /usr/local/bin/pidgin

(Actually I do the whole install as root.)

Caveats

  1. It’s a good idea to uninstall any previous version of pidgin, if you installed binaries, do an apt-get remove --purge pidgin
  2. Keep the source/build tree! Tar and gzip it, then put it somewhere safe. In the future you might want to upgrade pidgin. To do it cleanly, issue a make uninstall from the build directory. Apparently, make uninstall needs to know which options were passed to ./configure to uninstall pidgin properly.

    Alternatively, note down the options you passed to ./configure, download the old source tarball, unpack and run ./configure with the options you used to build, then do a make uninstall.

  3. You might need to run ldconfig after install if you get this error when you try to run pidgin
    pidgin: error while loading shared libraries: libpurple.so.0: cannot open shared object file: No such file or directory
  4. This might work on Ubuntu, I haven’t tried it.
  5. I doubt anyone will need this informaton until Lenny becomes stable. If you aren’t comfortable building from source, use a binary.
  6. Substitute sudo for su if that’s your thing.

I did the final build with

./configure --disable-meanwhile --disable-avahi --disable-dbus

but built it with these enabled while testing dependencies.

December 16, 2007

keepass debian etch

1. KeePassX depends on the Qt libraries so fetch the necessary dependencies first

apt-get install libqt4-core libqt4-gui libpng3

2. Get the debian package from http://www.keepassx.org/downloads

3. Install it

dpkg -i KeePassX-0.2.2.deb

October 25, 2007

Pidgin debian etch

We need these to build it

apt-get install gettext libglib2.0-dev libgtk2.0-dev libxml2-dev

perl-xml libraries may also be needed

apt-get install libxml-perl

To build it with ssl (needed for msn and google talk), we need the gnutls development headers

apt-get install libgnutls-dev

Get the source

http://superb-east.dl.sourceforge.net/sourceforge/pidgin/pidgin-2.3.1.tar.bz2

Build it

tar jxvf pidgin-2.3.1.tar.bz2
cd pidgin-2.3.1
./configure --enable-gnutls=yes
make
make install

pidgin is at /usr/local/bin/pidgin

June 3, 2007

FreeBSD Firefox Flash Java

I’ve tried to get Flash working with Firefox on FreeBSD a number of times, but haven’t been able to get it just right until recently.

I’m using,
FreeBSD 6.1-RELEASE #0: Sun May 7 04:32:43 UTC 2006
with
firefox-2.0_2,1.

The following worked for me (Thanks to a post from Lluis López: here).

1. First install linuxpluginwrapper from the ports tree:

cd usr/ports/www/linuxpluginwrapper
make
make install
make clean

2. Now go to /usr/src and get this patch and patch

cd /usr/src
patch < /home/work/rtld_dlsym_hack.diff
cd libexec/rtld-elf
make clean
make
make install

Substitute the correct path above !! (I downloaded the patch to /home/work/).

This assumes you have sources installed. If the tree under /usr/src is empty, then

sysinstall

[configure >> distributions >> src >> all ]

See The FreeBSD handbook if you’ve forgotten how to use sysinstall.

3. Install linux-flashplugin7

cd /usr/ports/www/linux-flashplugin7
make
make install
make clean

4. Copy /usr/local/share/examples/linuxpluginwrapper/libmap.conf-FreeBSD6 to /etc/libmap.conf

cp /usr/local/share/examples/linuxpluginwrapper/libmap.conf-FreeBSD6 /etc/libmap.conf

No need to edit /etc/libmap.conf.

5. Add symlinks in /usr/local/lib/browser_plugins to libflashplayer.so and flashplayer.xpt to

cd /usr/local/lib/browser_plugins
ln -s /usr/X11R6/lib/linux-mozilla/plugins/libflashplayer.so .
ln -s /usr/X11R6/lib/linux-mozilla/plugins/flashplayer.xpt .

6. Restart your browser, and navigate to about:plugins, you should see shockwave_flash listed:

Shockwave Flash
File name:
libflashplayer.so
Shockwave Flash 7.0 r69
MIME Type Description Suffixes Enabled
application/x-shockwave-flash Shockwave Flash swf Yes
application/futuresplash FutureSplash Player spl Yes

7. Install javavmwrapper

Before we can install Java (I’m using the diablo-jdk from the FreeBSD Foundation in this example) we need to install javavmwrapper from ports.

cd /usr/ports/java/javavmwrapper/
make
make install
make clean

8. Now we can install Java. Download the appropriate JDK package from The FreeBSD foundation and simply issue a pkg_add.

In my case,

pkg_add diablo-jdk-freebsd6.i386.1.5.0.07.01.tbz

8. We need to add a symlink in /usr/local/lib/browser to /usr/local/diablo-jdk1.5.0/jre/plugin/i386/ns7/libjavaplugin_oji.so

cd /usr/local/lib/browser_plugins
ln -s /usr/local/diablo-jdk1.5.0/jre/plugin/i386/ns7/libjavaplugin_oji.so .

9. Restart your browser and navigate to about:plugins you should see

Java(TM) Plug-in diablo-1.5.0-b01
File name:

libjavaplugin_oji.so

Java(TM) Plug-in 1.5.0
MIME Type Description Suffixes Enabled
application/x-java-vm Java Yes
application/x-java-applet Java Yes
application/x-java-applet;version=1.1 Java Yes
application/x-java-applet;version=1.1.1 Java Yes
application/x-java-applet;version=1.1.2 Java Yes
… snipped …
application/x-java-bean;jpi-version=1.5 Java Yes

I tested the Java install by trying the Rubik’s Cube Java Applet. It worked without problems.

Verifiying the Java installation at Sun’s site gives a (soft) error:

Oops! You don’t have the recommended Java installed.
Your Java version is 1.5.0. Please click the button below to get the recommended Java for your computer.

It does however verify that Java version 1.5.0 is installed.


Addendum: An alternative way to install Flash for Firefox, that bypasses the Linux compatibility layer altogether is to use the GNU Flash movie playergnash.

cd /usr/ports/graphics/gnash/
make
make install
make clean

Thanks to Matteo at Matteo’s Wasps’ Nest for this one. See his post for more details.