Conflicts in Shared Library

If you are migrated from 32 bit OS (Linux) to 64 bit OS, you may faced some problems with shared libraries. Most of the open source applications are developed in 32 bit OS and ported to 64 bit OS.

More of the people having wrong thought about the use of 64 bit OS. We don’t need 64 bit programs to run on 64 bit OS. Then, you can why we are facing many issues regarding 64 bit shared libraries. This is because of the incompatible use of shared libraries.

That means, you have 32 bit library which depends on 64 bit libraries. This will cause problems.

Recently i faced this issue in fedora 64 bit os, i solved this by installing all required 32 bit shared libraries.

For example : I have libstdc++.i386 and libstdc++.x86_64 shared libraries.
This doesn’t cause any issues. If you are facing any issues or conflicts means, that shared library is not strictly followed the standards of the shared libraries.

Executable Stack and Shared Objects in Subversion Edge

Some shared objects requires to run as an executable stack. If you are using fedora and SELinux Enabled. Then you may faced this warning message from SELinux.

While running the CollabNet SvnEdge server, i found some shared objects requires executable stack and raises some exception along with debug messages. Because of this svnserver fails to start.


DEBUG services.CommandLineService - testForPassword command: [sudo, -S, /opt/src/csvn/svn-server/bin/httpd, -f, /opt/src/csvn/svn-server/data/conf/httpd.conf, -t] result=null

DEBUG services.CommandLineService - Process error: [sudo] password for sriram:
Sorry, try again.

Then i tried to run the SvnEdge httpd server separately, by running


$ /opt/src/csvn/svn-server/bin/httpd -f /opt/src/csvn/svn-server/data/conf/httpd.conf

I got the following error :


httpd: Syntax error on line 24 of /opt/src/csvn/svn-server/data/conf/httpd.conf: Cannot load /opt/src/csvn/svn-server/lib/modules/mod_dav_svn.so into server: libcrypto.so.0.9.8: cannot enable executable stack as shared object requires: Permission denied

Then I checked the mod_dav_svn shared object wherethere it requires executable stack or not.

execstack -q /opt/src/csvn/svn-server/lib/libcrypto.so.0.9.8

If its output starts with ‘X’ means, it requires an executable stack. In my case it prints

X /opt/src/csvn/svn-server/lib/libcrypto.so.0.9.8

So, I changed mod_dav_svn shared object to not request an executable stack.

execstack -c /opt/src/csvn/svn-server/lib/libcrypto.so.0.9.8

Then it look like this :

- /opt/src/csvn/svn-server/lib/libcrypto.so.0.9.8

After that everything works fine.

Cron Alarm Clock

What is Cron?

Cron enables users to schedule jobs (commands or shell scripts) to run automatically at a certain time or date. It is commonly used to perform system maintenance or administration, though its general purpose nature means that it can be used for other purposes, such as connecting to the Internet and downloading email.

Cron uses the crontab, a configuration file that specifies shell commands to run periodically on a given schedule.

Crontab has following options:

-l    list the crontab

-e    edit the crontab

-r    remove the crontab

The application “crontab” is used to create and edit cron jobs and the cron daemon checks for cronjobs a the top of every minute.

For example :

crontab -e

It opens the vi editor to enter the cron jobs.

It looks like

#   minute (0-59),
#   |   hour (0-23),
#   |   |   day of the month (1-31),
#   |   |   |   month of the year (1-12),
#   |   |   |   |   day of the week (0-6 with 0=Sunday).
#   |   |   |   |   |   commands

For Example:
55 10 8 11 * echo “This runs at 10:55 on 8th November”

To list all cron jobs:

crontab -l

To remove a cron job :

crontab -r

For alarm clock, A Command Line Mp3 player can be used here that is mpg321. you may use any mp3 player here but you have to specify what X display to play your player.

For Command Line Mp3 Player,

30  04  *   *   * mpg321 "/home/sriram/Music/Alarm1.mp3"

 

For Other Mp3 Player(Audacious):

30  04  *   *   * env DISPLAY=:0.0 audacious "/home/sriram/Music/Alarm1.mp3"

 

The asterik can be used (*) to satisfy all variables. I found some good alarm tracks at this site the were perfect for the task