I'm writing a ruby wrapper for a proprietary api. I compiled it, but when I
require it in irb i get the following error. I'm stumped as to why its
throwing this error. Anyone help?
irb(main):001:0> require 'metadata'
LoadError: ./metadata.so: failed to map segment from shared object:
Operation not permitted - ./metadata.so
from ./metadata.so
from (irb):1
=cut
#include <ruby.h>
#include "mdc.h"
/* Module and class names */
static VALUE md_mMetadata;
static VALUE md_cClientAPI;
VALUE
md_initialize(int argc, VALUE *argv, VALUE self)
{
VALUE login, password, server, table_name, table_version;
rb_scan_args(argc, argv, "41", &login, &password, &server,
&table_name, &table_version);
if(NIL_P(table_version)) {
rb_iv_set( self, "@table_version", Qnil );
}
rb_iv_set(self, "@login", rb_funcall(login, rb_intern("to_s"), 0) );
rb_iv_set(self, "@password", rb_funcall(password, rb_intern("to_s"),
0) );
rb_iv_set(self, "@server", rb_funcall(server, rb_intern("to_s"), 0) );
rb_iv_set(self, "@table_name", rb_funcall(table_name,
rb_intern("to_s"),0) );
return self;
}
void Init_metadata() {
md_mMetadata = rb_define_module("Metadata");
md_cClientAPI = rb_define_class_under(md_mMetadata, "ClientAPI",
rb_cObject);
rb_define_method(md_cClientAPI, "initialize", md_initialize, 4);
}
> I'm writing a ruby wrapper for a proprietary api. I compiled it,
> but when I
> require it in irb i get the following error. I'm stumped as to why
> its
> throwing this error. Anyone help?
>
> irb(main):001:0> require 'metadata'
> LoadError: ./metadata.so: failed to map segment from shared object:
> Operation not permitted - ./metadata.so
> from ./metadata.so
> from (irb):1
Are you compiling the code as one user and attempting to use it from a
different user account? The "Operation not permitted" usually refers
to a permissions problem.
Found this link ...
<http://citydesknews.com/FogBugz/KB/errors/fogutil.sofailedtomapsegm.html?isl=23903
>
Give the "restorecon" method a shot.
Oh, and this link might shed some light as well ...
<http://objectmix.com/tcl/34666-failed-map-segment-shared-object-operation-not-permitted.html
>
Blessings,
TwP
I tried it the solution in the 1st link, but it didn't help.
I"m on Ubuntu 4.2.3-2ubuntu7.
Anyone else have any suggestions. I've checked and rechecked the code. I
can't find anything wrong at all.
On Fri, Jul 4, 2008 at 12:17 AM, Tristin Davis <tristi...@gmail.com>
wrote:
Nevermind, I figured it out. I'm running working off of a flash drive and I
guess by default, Ubuntu mounts it with the noexec option.
/dev/sdb1 on /media/ext type vfat (rw,noexec,nosuid,nodev)
Moving it to another directory fixed it.
On Fri, Jul 4, 2008 at 1:55 PM, Tristin Davis <tristi...@gmail.com>