$ env -i PERL5LIB=.local/lib/perl5 perl -MSybase::Simple
Can't load '.local/lib/perl5/x86_64-linux-thread-multi/auto/Sybase/CTlib/CTlib.so' for module Sybase::CTlib: libsybct_r64.so: cannot open shared object file: No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 193.
at .local/lib/perl5/Sybase/Simple.pm line 19.
Compilation failed in require at .local/lib/perl5/Sybase/Simple.pm line 19.
BEGIN failed--compilation aborted at .local/lib/perl5/Sybase/Simple.pm line 19.
Compilation failed in require.
BEGIN failed--compilation aborted.
$
####
$ env -i ldd .local/lib/perl5/x86_64-linux-thread-multi/auto/Sybase/CTlib/CTlib.so
linux-vdso.so.1 (0x00007ffcebdce000)
libsybct_r64.so => not found
libsybcs_r64.so => not found
libsybblk_r64.so => not found
libperl.so.5.32 => /lib64/libperl.so.5.32 (0x00007f4970c00000)
libc.so.6 => /lib64/libc.so.6 (0x00007f4970800000)
libm.so.6 => /lib64/libm.so.6 (0x00007f4970b25000)
libcrypt.so.2 => /lib64/libcrypt.so.2 (0x00007f4970fc3000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4971032000)
$
####
#!/usr/bin/perl
BEGIN {
my $shellcode = <<__KOEKOEK__;
. sybsdk/SYBASE.sh
perl -MData::Dumper -e 'print Dumper [\%ENV]'
__KOEKOEK__
%ENV = (%ENV => @{eval qx{/bin/sh -c "$shellcode"}});
};
print $ENV{LD_LIBRARY_PATH};
require Sybase::Simple;
####
$ env -i PERL5LIB=.local/lib/perl5 perl ./do_shell_source.pl
~/sybsdk/DataAccess64/ODBC/lib:~/sybsdk/DataAccess/ODBC/lib:~/sybsdk/OCS-20_0/lib:~/sybsdk/OCS-20_0/lib3p64:~/sybsdk/OCS-20_0/lib3p:
Can't load '.local/lib/perl5/x86_64-linux-thread-multi/auto/Sybase/CTlib/CTlib.so' for module Sybase::CTlib: libsybct_r64.so: cannot open shared object file: No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 193.
at .local/lib/perl5/Sybase/Simple.pm line 19.
Compilation failed in require at .local/lib/perl5/Sybase/Simple.pm line 19.
BEGIN failed--compilation aborted at .local/lib/perl5/Sybase/Simple.pm line 19.
Compilation failed in require at ./do_shell_source.pl line 14.
$
####
#!/usr/bin/perl
BEGIN {
my $shellcode = <<__KOEKOEK__;
. sybsdk/SYBASE.sh
perl -MData::Dumper -e 'print Dumper [\%ENV]'
__KOEKOEK__
%ENV = (%ENV => @{eval qx{/bin/sh -c "$shellcode"}});
};
use DDP;
p %ENV;
####
$ env -i PERL5LIB=.local/lib/perl5 perl ./do_shell_source.pl
{
_ "/usr/bin/perl",
INCLUDE "~/sybsdk/OCS-20_0/include:",
LD_LIBRARY_PATH "~/sybsdk/DataAccess64/ODBC/lib:~/sybsdk/DataAccess/ODBC/lib:~/sybsdk/OCS-20_0/lib:~/sybsdk/OCS-20_0/lib3p64:~/sybsdk/OCS-20_0/lib3p:",
LIB "~/sybsdk/OCS-20_0/lib:",
PATH "~/sybsdk/tools/bin:~/sybsdk/OCS-20_0/bin:/usr/local/bin:/usr/bin",
PERL5LIB ".local/lib/perl5",
PWD "/tmp",
SAP_JRE8 "~/sybsdk/shared/SAPJRE-8_1_062_64BIT",
SAP_JRE8_64 "~/sybsdk/shared/SAPJRE-8_1_062_64BIT",
SHLVL 0,
SYBASE "~/sybsdk",
SYBASE_OCS "OCS-20_0",
SYBROOT "~/sybsdk"
}
$
####
$ cat sybsdk/SYBASE.sh
#
# SAP Product Environment variables
#
SAP_JRE8="~/sybsdk/shared/SAPJRE-8_1_062_64BIT"
export SAP_JRE8
SAP_JRE8_64="~/sybsdk/shared/SAPJRE-8_1_062_64BIT"
export SAP_JRE8_64
SYBASE_OCS="OCS-20_0"
export SYBASE_OCS
INCLUDE="~/sybsdk/OCS-20_0/include":$INCLUDE
export INCLUDE
LIB="~/sybsdk/OCS-20_0/lib":$LIB
export LIB
PATH="~/sybsdk/OCS-20_0/bin":$PATH
export PATH
#
# Replace lib, lib3p, and lib3p64 with devlib, devlib3p, and devlib3p64 when debugging
#
LD_LIBRARY_PATH="~/sybsdk/OCS-20_0/lib:~/sybsdk/OCS-20_0/lib3p64:~/sybsdk/OCS-20_0/lib3p":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
SYBASE="~/sybsdk"
export SYBASE
LD_LIBRARY_PATH="~/sybsdk/DataAccess/ODBC/lib":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
LD_LIBRARY_PATH="~/sybsdk/DataAccess64/ODBC/lib":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
SYBROOT="~/sybsdk"
export SYBROOT
PATH="~/sybsdk/tools/bin":$PATH
export PATH
$