[python] Building and installing python3.x with python2.x in Linux

RHEL 6.x doesn't comes with python3. So if any of your project require python3 and also some of the projects need python2 then you may need those 2 version same time in your system.

gcc (C89)/g++

1. Download python3.x package from https://www.python.org/downloads/release/python-343/
2. Extract it and move inside the package python-3.4.3
$ cd /python-3.4.3
3. Open a console and run the following configure command. We will build python with shared library support as many of the other project will require python3 dynamic library linking.

so, configure it by,
$ ./configure --prefix=/opt/python3 --enable-shared

We are putting build output directory as /opt/python3.

4. After completion now build it by,

$ make
 5. Then install it by alternate installation by,
$ make altinstall

6. Now create a symlink of the newly created python3 binary and copy the shared library to the /lib64/ directory of filesystem.
$ ln -s /opt/python3/bin/python3.4 /usr/bin/python3
$ cp /opt/python3/libpython3.* /lib64/
7.  Now run python script by,
 $ python3 my.py
And your python2 is also ok and usable!

[IPv6] Various address reachability scope on IPv6 network

IPv6 comes with various IP address terminology which can be assign to a system. Lets simply clarify their name and scope of reachability respect to IPv6. 

 In general it has four address type one of which is depreciated by RFC standard.

1. Link Local Address (LLA)
Description: Link-local address can be access in directly connected router. Its basically same as IPv4 private address. 
2. Unique Local Address (ULA)
Description:Unique Local Address(ULA), they will often be advertised by IPv6 home gateways for subscriber local use only, and won't be reachable anywhere outside the home. Unique Local Address (ULA), which is an address that is used for local communication in a site – within a company, within a campus or within a set of networks in branch offices.

3. Site Local Address
Description: Deprecated.

4. Global Unicast Address
Description: Global unicast address is basically reachable from anywhere in internet. IPv6 unicast global addresses are similar to IPv4 public addresses.

[MySql] relocation error: /usr/lib64/libmyodbc5.so: symbol strmov, version libmysqlclient_16 not defined

When using myDSN and connection to remote DB(MySQL) this issue arise.


: relocation error: /usr/lib64/libmyodbc5.so: symbol strove  version libmysqlclient_16 not defined in file libmysqlclient_r.so.16 with link time reference


this is an issue of back dated odbc-connector. You can check by systems' isql command that it's also returning same error. It's happen when there is a mismatch between the version of, 



Download and install mysql-connector-odbc-5.3.4-1.el6.x86_64.rpm by,

rpm -Uvh mysql-connector-odbc-5.3.4-1.el6.x86_64.rpm

And after that change the following file,

$ vi /etc/odbcinst.ini

Description             = ODBC for MySQL
Driver          = /usr/lib64/libmyodbc5w.so
Setup           = /usr/lib64/libodbcmyS.so
Driver64                = /usr/lib64/libmyodbc5w.so
Setup64         = /usr/lib64/libodbcmyS.so
FileUsage               = 1

[MySQL ODBC 5.3 Unicode Driver]
Driver          = /usr/lib64/libmyodbc5w.so
UsageCount              = 1

[MySQL ODBC 5.3 ANSI Driver]
Driver          = /usr/lib64/libmyodbc5a.so
UsageCount              = 1

[Node.js] https connection return curl: (35) Unknown SSL protocol error


curl: (35) Unknown SSL protocol error

Cause: For node.js https connection you are using invalid certificate. Invalid certificate is because the procedure you create the certificate.

Solution: Use the following mechanism to generate certificate and key.

openssl req -x509 -sha256 -newkey rsa:2048 -keyout key.pem -out cert.pem -days XXX

[Node.js] Error: EISDIR, illegal operation on a directory at Error (native)


fs.js:552  var r = binding.read(fd, buffer, offset, length, position);                  ^Error: EISDIR, illegal operation on a directory    at Error (native)    at Object.fs.readSync (fs.js:552:19)    at Object.fs.readFileSync (fs.js:384:28)    at /usr/eyeball/auth_server/js/server.js:98:15    at Socket.<anonymous> (/usr/eyeball/auth_server/js/util/process.js:11:5)    at Socket.emit (events.js:129:20)    at _stream_readable.js:908:16    at process._tickCallback (node.js:355:11)

This error happen when you use invalid file path for opening and reading using nodejs dependency library fs. 


File must be the file path with the file name. Not the file directory.