Bug #51151 Installing 5.2.15b to local prefix fails when 5.1.18-1 is system installed
Submitted: 12 Feb 2010 17:26 Modified: 23 Feb 2010 14:58
Reporter: Martin Eve Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Workbench Severity:S3 (Non-critical)
Version:5.2.15b OS:Linux (Arch)
Assigned to: CPU Architecture:Any

[12 Feb 2010 17:26] Martin Eve
Description:
When installing 5.2.15b to a local dir: /home/martin/mysql-workbench, with a system wide install of 5.1.18-1 (installed via arch linux pacman), the following error is encountered when launching ./mysql-workbench from /home/martin/mysql-workbench/usr/local/bin:

./mysql-workbench-bin: symbol lookup error: ./mysql-workbench-bin: undefined symbol: _ZN4base6strfmtEPKcz

This indicates that the beta is not respecting the boudns of its prefix.

How to repeat:
Install 5.1.18-1 via a package manager (sudo pacman -S mysql-workbench)

Install the beta into a local prefix (/home/martin/mysql-workbench)

cd /home/martin/mysql-workbench/usr/local/bin/

./mysqlworkbench

Suggested fix:
Check the bounds of the prefix carefully.
[12 Feb 2010 17:31] Martin Eve
Note: all comments and references to local prefix install mean: build from source using make install DESTDIR=/home/<your_username>/mysql-workbench
[19 Feb 2010 10:58] Susanne Ebrecht
Martin,

I need to know exactly how you installed both systems.

What did you do for installing Workbench globally?

What did you do for installing Workbench in home?
Did you do:
./autogen.sh --prefix=/home/martin/....
make
make install
?
[19 Feb 2010 11:06] Martin Eve
Susanne,

Many thanks for the reply.

The first step I undertook was to install the global version using Arch Linux's package management tool.

sudo pacman -Sy mysql-workbench

which installed 5.1.18 with the dependencies listed at http://www.archlinux.org/packages/community/i686/mysql-workbench/ . This worked as expected.

I then installed (locally) 5.2.11 Beta 3 to /home/martin/mysql-workbench using this procedure:

./autogen.sh
make install DESTDIR=/home/martin/mysql-workbench -j10

The next version I installed was 5.2.15b. I deleted the previous version:

rm -rf ~/mysql-workbench

untarred the source and then did:

./autogen.sh
make install DESTDIR=/home/martin/mysql-workbench -j10

Upon attempting to launch workbench, I experienced this problem.

Removing the system copy using:

sudo pacman -R mysql-workbench

fixed the problem.

Hope that helps and thanks again,

Martin
[19 Feb 2010 11:26] Susanne Ebrecht
Hello Martin,

./autogen.sh
make install DESTDIR=/home/martin/mysql-workbench -j10

This not looks correct. Because the configure will be executed already in autogen.sh.

Means, your installation will be placed in right directory but the ./configure didn't do the correct job.

Here is how I use to install in home:

./autogen.sh --prefix=/home/myhome/wb52se --with-mysql-config=/home/myhome/mysql_server_5.1/bin/mysql_config

make

make install

I also have the mysql server installed in my home that is why I need --with-mysql-config option.

I never have had problems here with having lots of versions installed mixed globally and in home directories.

Please try to give the prefix already at the configure part and let us know if that solves your problem.
[19 Feb 2010 12:02] Martin Eve
Susanne,

Thanks again for feedback.

I actually couldn't replicate by the steps I provided, so not sure entirely what the cause was.

However, the Linux Build Instructions at http://wb.mysql.com/?page_id=152 state:

-----------------
./autogen.sh

[...]

start building the packages by invoking the make command

make install DESTDIR=/home/<your_username>/mysql-workbench
-----------------

so perhaps someone could fix that?

Best,

Martin
[23 Feb 2010 8:55] Susanne Ebrecht
Many thanks for the feedback. We will discuss this.
[23 Feb 2010 14:58] Alfredo Kojima
If you didn't/couldn't use a package to install it,  you have to uninstall any previously installed versions of WB before installing a new one. You can either run make uninstall from the old sources or delete everything in /usr/local/lib/mysql-workbench /usr/local/share/mysql-workbench and /usr/local/bin/mysql-workbench* (or whatever you used to install).