Why does mariaDB wrongfully ask for missing component - mysql

I'm trying to build from source MariaDB on CentOS 7. I have only done the following commands before I get the error shown in this image:
$ cd /usr/local/src
$ wget https://downloads.mariadb.org/interstitial/mariadb-5.5.40/source/mariadb-5.5.40.tar.gz/from/http%3A//ftp.ddg.lth.se/mariadb
$ tar xzvf mariadb
$ cd mariadb-5.5.40/
$ chown -R root.root .
$ cmake . -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mariadb
proof that libaio-devel is installed

For anyone that is in a similar situation, cmake apparently does a pretty bad job of re-checking dependencies, even removing the cache file doesn't work very well.
Just delete and re-extract from the .tar.gz and then cmake again, if you actually have the dependencies then they will be found.

Related

Installation Requirements for mysql with DBIish on rakudo-star docker image

I was creating an own docker image based on the latest rakudo-star docker image. I wanted to use DBIish to connect to a mysql database. Unfortunately I am not able to get the DBDish::mysql to work.
I've installed default-libmysqlclient-dev as you can see in
# find / -name 'libmysqlclient*.so'
/usr/lib/x86_64-linux-gnu/libmysqlclient_r.so
/usr/lib/x86_64-linux-gnu/libmysqlclient.so
The error i am facing is:
# perl6 -Ilib -e 'use DBDish::mysql; DBDish::mysql.connect()'
Cannot locate native library 'mysqlclient': mysqlclient: cannot open shared object file: No such file or directory
in method setup at /usr/share/perl6/sources/24DD121B5B4774C04A7084827BFAD92199756E03 (NativeCall) line 289
in method CALL-ME at /usr/share/perl6/sources/24DD121B5B4774C04A7084827BFAD92199756E03 (NativeCall) line 539
in method connect at /root/DBIish/lib/DBDish/mysql.pm6 (DBDish::mysql) line 12
in block <unit> at -e line 1
Short answer: you need the package libmysqlclient20 (I added the documentation request to a similar DBIish issue). Debian 9 (stable at the moment) uses and older version than Ubuntu 18.04 (stable at the moment) and Debian Unstable. It also refers to mariadb instead of mysql. Pick libmariadbclient18 on images based on Debian Stable and create a link with the mysql name (see below).
On Debian Testing/Unstable and recent derivatives:
$ sudo apt-get install libmysqlclient20
$ dpkg -L libmysqlclient20
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.20.3.9
/usr/share
/usr/share/doc
/usr/share/doc/libmysqlclient20
/usr/share/doc/libmysqlclient20/NEWS.Debian.gz
/usr/share/doc/libmysqlclient20/changelog.Debian.gz
/usr/share/doc/libmysqlclient20/copyright
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.20
On Debian 9 and derivatives:
$ dpkg -L libmariadbclient18
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libmariadbclient.so.18.0.0
/usr/lib/x86_64-linux-gnu/mariadb18
/usr/lib/x86_64-linux-gnu/mariadb18/plugin
/usr/lib/x86_64-linux-gnu/mariadb18/plugin/client_ed25519.so
/usr/lib/x86_64-linux-gnu/mariadb18/plugin/dialog.so
/usr/lib/x86_64-linux-gnu/mariadb18/plugin/mysql_clear_password.so
/usr/share
/usr/share/doc
/usr/share/doc/libmariadbclient18
/usr/share/doc/libmariadbclient18/changelog.Debian.gz
/usr/share/doc/libmariadbclient18/copyright
/usr/lib/x86_64-linux-gnu/libmariadbclient.so.18
Create the link:
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libmariadbclient.so.18 /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18
In order to illustrate this, I created an Ubuntu 18.04 container for the occasion*:
docker run -ti --rm --entrypoint=bash rakudo/ubuntu-amd64-18.04
And the abbreviated commands and output:
# apt-get install -y libmysqlclient20 build-essential
# zef install DBIish
# perl6 -e 'use DBDish::mysql; DBDish::mysql.connect()'
Cannot look up attributes in a DBDish::mysql type object
[...]
The error is because I didn't pass the correct parameters for connect as I didn't have a db running. The important thing is that no .so file is missing.
*: I uploaded it to the Docker Hub, a normal run will put you right in the REPL:
$ docker run -ti --rm rakudo/ubuntu-amd64-18.04
To exit type 'exit' or '^D'
>
(I didn't use the Star image when debugging, but it does not matter because this is a more generic problem.)

PSIPRED, how to install and make it work?

I am trying to setup PSIPRED to run a secondary structure prediction but the README.md file is not detailed enough for a beginner like me to setup and run PSIPRED. I am trying to use it with BLAST+.
I am on a Linux Ubuntu 17.04 operating system, and the following are the steps I take to try and setup PSIPRED. There seems to be missing programs that I am not sure how to install or find where they are as well as missing commands:
sudo apt install ncbi-blast+ #OK: Install BLAST+
wget http://bioinfadmin.cs.ucl.ac.uk/downloads/psipred/psipred.4.01.tar.gz #OK: Get the latest PSIPRED
tar xzvf psipred.4.01.tar.gz #OK: Extract the latest PSIPRED
rm psipred.4.01.tar.gz #OK: Remove the the latest PSIPRED .tar.gz download
cd psipred/src #OK: Go to source code directory
make #OK: Compile PSIPRED binaries
make install #OK: Compile PSIPRED binaries
cd .. #OK: Go back to PSIPRED top level directory
wget ftp://ftp.uniprot.org/pub/databases/uniprot/uniref/uniref90/uniref90.fasta.gz #OK: Download the latest uniref90 database
gunzip -v uniref90.fasta.gz #OK: Uncompress the latest uniref90 database
bin/pfilt uniref90.fasta > uniref90filt #ERROR HERE: pfilt not found. Cannot find where the pfilt program is and cannot find from where to install it from
formatdb -t uniref90filt -i uniref90filt #ERROR HERE: formatdb not found. Cannot find where the formatdb program is and cannot find from where to install it from
makeblastdb -dbtype prot -in uniref90filt -out uniref90filt #OK: Not sure what this does but it works fine
./BLAST+/runpsipredplus example/example.fasta #ERROR HERE: /usr/local/bin/psiblast: Command not found. FATAL: Error whilst running blastpgp - script terminated!
How can I get PSIPRED to work? what I am doing wrong? Where can I get all the necessary external program to make PSIPRED work? What am I missing?

MySQL 5.6 install on debian ERROR:

I'm trying to install MySQL 5.6 on Debian.
Here what I do:
sudo dpkg -i mysql-5.6.12-debian6.0-i686.deb
cd /usr/local
ln -s /opt/mysql/server-5.6 mysql
cd mysql
scripts/mysql_install_db.sh --user=mysql --datadir=/var/lib/mysql
And this is the error that I get:
FATAL ERROR: Could not find #bindir#/my_print_defaults
If you compiled from source, you need to run 'make install' to
copy the software into the correct location ready for operation.
If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the --basedir option
pointing to that location.
Could you please suggest something? I'm installing MySQL from scratch (previous version was completely removed).
Thanks.
I might not be able to help with the error you're getting. But apt-get install -f mysql-server-5.5 worked for me on Debian Wheezy. Try replacing 5.5 with 5.6 and see if it works as well, and probably precede it with sudo.

Debian: ./configure fails because of PKG_CHECK

I want to build a modified version of lighttpd.
I follow this tutorial:
http://h264.code-shop.com/trac/wiki/Mod-H264-Streaming-Lighttpd-Version2
This is what I've done so far
apt get install lighttpd
apt get install automake autoconf libtool
cd /var/tmp
wget http://h264.code-shop.com/download/lighttpd-1.4.18_mod_h264_streaming-2.2.9.tar.gz
tar -zxvf lighttpd-1.4.18_mod_h264_streaming-2.2.9.tar.gz
wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.28.tar.gz
tar ...
after I copied all files and data to the directory and Makefile.am I entered:
./autogen.sh
./configure --enable-maintainer-mode --prefix=${HOME}/test/lighttpd-1.4.28
the console returnes:
...
checking for pkg-config... no
checking for libev support... ./configure: line 12184: syntax error near unexpected token `LIBEV,'
./configure: line 12184: ` PKG_CHECK_MODULES(LIBEV, libev, ,'
root#foo...
Some people solved this by installing "pkg-config". I installed this package but I still can't run the configuration.
I just found out that this version of lighttpd contains a bug. I switched from 1.4.28 to 1.4.30 and everything went good.

cannot find -lmysqlclient

I'm trying to compile a C++ program and one of the classes uses . g++ is not able to find the libraries would be my guess. The command i use to compile is -
g++ c1.cpp c2.cpp c3.cpp c4.cpp -o c4 -lm -lmysqlclient
c3.cpp is the file that needs mysql.h. This works perfectly on my local machine, but refuses to run on the server with the error
cannot find -lmysqlclient
I tried finding the libmysqlclient.so files on the server using the find command, I don't think they are present there
uname -a
reveals
SunOS opteron 5.10 Generic_139556-08 i86pc i386 i86pc
user#opteron 12:26:02 ~/c++/projname/
I realize that i need to link some libraries, but where and how?
Any help would be appreciated.
Thanks.
Whatever library packages u think is not installed can be installed using sudo apt-get install. But the problem is to find the right name of the package apt-get can understand. So how to do that ?! simple
use command : sudo apt-cache search <filename>
For eg.: in this case lmysqlclient
sudo apt-cache search mysqlclient
(remember to exclude 'l' from the actual name ,ie, mysqlclient and not lmysqlclient).
This outputs:
libmysqlclient-dev - MySQL database development files
In the above -libmysqlclient-dev is the name that apt-get can recognize and solve our cannot find lmysqlclient problem
so now type: sudo apt-get install libmysqlclient-dev from interface.
After its done, try making your required file.
Simplifying #SriHariY.S's answer-
Try installing it with sudo apt-get install libmysqlclient-dev.
Do you have the MySQL client libraries? Can you look for it as
find / -name "libmysqlclient.so" -type f -print 2>/dev/null
Also, you can use the -R flag on linker to hardlink the libmysqlclient as
g++ -R/usr/local/mysql/lib ....
Or, you can export the LD_LIBRARY_PATH_32 or LD_LIBRARY_PATH_64 as
export LD_LIBRARY_PATH_32=$MYSQL_HOME/lib
Urko,
On Ubuntu 18 I used this command to find a name of required package for fixing this error:
apt search lmysqlclient
After this I installed missing package:
sudo apt install libmariadbclient-dev-compat