рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ test_kdb.lua
рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ:
Start 69: test_kdb.lua
69/117 Test #69: test_kdb.lua .......................***Failed 0.00 sec
Start 70: test_key.lua
70/117 Test #70: test_key.lua ....................... Passed 0.00 sec
Start 71: test_keyset.lua
71/117 Test #71: test_keyset.lua .................... Passed 0.00 sec
рдЕрдЧрд░ рдореИрдВ lua ../src/bindings/swig/lua/tests/test_kdb.lua
рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд┐рд░реНрдл рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп 0
рд╕рд╛рде рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреА рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рд┐рдП, рддреЛ рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВред
рдореБрдЭреЗ рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ OS X рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ ctest -V
рдЖрдкрдХрд╛ рдорд┐рддреНрд░ рд╣реИред
рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ lua $file
рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдЬреИрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд╛рдкрд┐рдд kdb рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд┐рд▓реНрдб рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╕реНрдерд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо LUA_CPATH
рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреЗрдЦреЗрдВ https://github.com/ElektraInitiative/libelektra/blob/master/src/bindings/swig/lua/tests/CMakeLists.txt#L12
рд╕реНрд╡рд┐рдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд 90% рджреБрд░реНрдШрдЯрдирд╛рдПрдВ рдмрд┐рд▓реНрдб рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдлреЙрд▓реНрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдереАрдВред рддреЛ рдкрд╣рд▓реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ (!) + рд╕реНрд╡рд┐рдЧ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВред
рдпрд╣ рд╕рдорд╕реНрдпрд╛ ad537b3 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИ (рдХрдо рд╕реЗ рдХрдо Linux kdb*lua|python рдкрд░ рдХреНрд░реИрд╢ рд╣реЛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди Linux рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ ad537b3 рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ)ред рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмрд┐рдирд╛ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдк make run_all
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рджрдмрд╛ рджреЗрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрд╕рдлрд▓ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
@sanssecours рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
рдпрд╣ рд╕рдорд╕реНрдпрд╛ ad537b3 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИ (рдХрдо рд╕реЗ рдХрдо Linux kdb*lua|python рдкрд░ рдХреНрд░реИрд╢ рд╣реЛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди Linux рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ ad537b3 рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ)ред рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмрд┐рдирд╛ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИред
@sanssecours рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
рджреЗрд░реА рд╕реЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдлреАред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рд▓реА рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд▓рд┐рдЦреА рд╣реИред рдореБрдЭреЗ рдпрд╣ рдХрд╣рдХрд░ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореЗрд░реА рдорд╢реАрди рдкрд░ testpy2_kdb.py
рднреА рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рддреЛ рдпрд╣ рдореЗрд░реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдореИрдВрдиреЗ Homebrew рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ SWIG рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ Elektra рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд cmake
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
cmake .. -GNinja -DENABLE_TESTING=ON -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5 -DTOOLS='qt-gui;kdb' -DBUILD_PDF=ON -DBINDINGS=SWIG
ctest -V -R test_kdb.lua
рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
test 65
Start 65: test_kdb.lua
65: Test command: /usr/local/bin/lua "/Users/rene/Dropbox/Studium/Master Thesis/Configuration Parsing/Source/Elektra/src/bindings/swig/lua/tests/test_kdb.lua"
65: Environment variables:
65: LUA_CPATH=/Users/rene/Dropbox/Studium/Master Thesis/Configuration Parsing/Source/Elektra/build/src/bindings/swig/lua/?.so
65: Test timeout computed to be: 1500
65: /usr/local/bin/lua: kdb:1 Warning was issued:
65: Warning number: 1
65: Description: could not load module, dlopen failed
65: Ingroup: modules
65: Module: dl
65: At: ../src/libs/loader/dl.c:82
65: Reason: of module: libelektra-resolver.so, because: dlopen(libelektra-resolver.so, 2): image not found
65: Mountpoint:
65: Configfile:
65: Error (#40) occurred!
65: Description: Failed to open default backend (see warnings for more information)
65: Ingroup: kdb
65: Module:
65: At: ../src/libs/elektra/kdb.c:282
65: Reason: could not open default backend
65: Mountpoint:
65: Configfile:
65:
65: stack traceback:
65: [C]: in ?
65: [C]: in function 'KDB'
65: .../Source/Elektra/src/bindings/swig/lua/tests/test_kdb.lua:20: in main chunk
65: [C]: in ?
1/1 Test #65: test_kdb.lua .....................***Failed 0.00 sec
0% tests passed, 1 tests failed out of 1
Label Time Summary:
bindings = 0.00 sec (1 test)
kdbtests = 0.00 sec (1 test)
memleak = 0.00 sec (1 test)
Total Test time (real) = 0.01 sec
The following tests FAILED:
65 - test_kdb.lua (Failed)
Errors while running CTest
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реБрдЖ рдХреЛ libelektra-resolver.so
, рдЬреЛ рдореЗрд░реА рдорд╢реАрди рдкрд░ build/lib
рдФрд░ /usr/local/lib/elektra
ред рдХреНрдпрд╛ рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрде рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рд╡реИрд╕реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ testpy2_kdb.py
рднреА рдЙрд╕реА рд╕рдЯреАрдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдХрд┐рд╕реА рднреА рдЗрд▓реЗрдХреНрдЯреНрд░рд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рд╡реЗ рд╕рд┐рд░реНрдл рдмрдВрдзрди рд╣реИрдВред рдЖрдк рдЗрд╕реЗ рд╕рдЯреАрдХ рддреНрд░реБрдЯрд┐ рд╕реНрдерд╛рди рдХреЛ рджреЗрдЦрдХрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ ../src/libs/loader/dl.c:82
ред
рддреЛ рдпрд╣ рдпрд╛ рддреЛ рдЖрдкрдХреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИ, рдУрдПрд╕рдПрдХреНрд╕ рдкрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЗрд▓реЗрдХреНрдЯреНрд░рд╛ рдореБрджреНрджрд╛ рдпрд╛ рдУрдПрд╕рдПрдХреНрд╕ рдкрд░ рдПрдХ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореБрдЭреЗ рдкреВрд░реНрд╡ рдкрд░ рд╕рдВрджреЗрд╣ рд╣реИред рдкрд┐рдВрдЧ @markus2330
dlopen(libelektra-resolver.so, 2): image not found
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рд▓реБрдЖ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред
libelektra-resolver.so
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдорд▓рд┐рдВрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП KDB_DEFAULT_RESOLVER
, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рд╕реЗрдЯрдЕрдк/рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЯреВрдЯ рдЧрдпрд╛ рд╣реЛ? рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд┐рдореНрд▓рд┐рдВрдХ рд╕рд╣реА рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ?
рдЕрдЬреАрдм рдмрд╛рдд рд╣реИ: libelektra-resolver.so
рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рддреНрдпреЗрдХ рдХреЗрдбреАрдмреА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ _not_ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ (рдФрд░ рдкрд╛рдпрдерди рдПрдХ) рд╕реНрдерд╛рдкрд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗ, рди рдХрд┐ рдмрд┐рд▓реНрдб рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ред рдХреНрдпрд╛ рдЖрдк рд╕реНрдЯреНрд░реЗрд╕ рд╕реЗ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ libelektra-resolver.so
рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ?
image not found
рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рднреАрддрд░ рдЖрдкрдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рдЫрд╡рд┐ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реЛ? рдХреНрдпрд╛ рдЖрдк рд╡рд╕рд╛ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?
libelektra-resolver.so
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдорд▓рд┐рдВрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПKDB_DEFAULT_RESOLVER
, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рд╕реЗрдЯрдЕрдк/рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЯреВрдЯ рдЧрдпрд╛ рд╣реЛ?
рдХреНрдпрд╛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рдЗрд▓реЗрдХреНрдЯреНрд░рд╛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ рдпрд╛ рдирд╣реАрдВ? рдЖрджреЗрд╢ kdb
рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд┐рдореНрд▓рд┐рдВрдХ рд╕рд╣реА рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ?
рджреЛрдиреЛрдВ libelektra-resolver.so
рдЙрдкрдирд╛рдо рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рддреЗ рд╣реИрдВ libelektra-resolver_fm_hpu_b.so
рдЙрдкрдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╕рд╣реА рд╣реИрдВред
рдХреНрдпрд╛ рдЖрдк рд╕реНрдЯреНрд░реЗрд╕ рд╕реЗ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛
libelektra-resolver.so
рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ?
рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА sudo dtruss ctest -V -R test_kdb.lua
ред рдпрд╣рд╛рдБ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ:
test_kdb.lua - dtruss Output.txt ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдмрд┐рд▓реНрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЗрд▓реЗрдХреНрдЯреНрд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ sudo ninja uninstall
рдорд╛рдзреНрдпрдо рд╕реЗ Elektra рдХреЛ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рджрд┐рдпрд╛ред рдореИрдВрдиреЗ рдлрд┐рд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдпрд╛ред рдЖрдЙрдЯрдкреБрдЯ рдЕрднреА рднреА рд╡рд╣реА рд╣реИред
рдХреНрдпрд╛ рдЖрдк рд╡рд╕рд╛ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?
рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВред
рдХреНрдпрд╛ рдЖрдк OSX El Capitan рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? рдпрд╣ рдПрдХ рдЕрдЬреАрдм рд╕рд┐рд╕реНрдЯрдо рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдкреНрд░реЛрдЯреЗрдХреНрд╢рди рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА
рдпрд╣ рдЕрдЬреАрдм рддрд░рд╣ рдХрд╛ рд╣реИ рдХрд┐ kdb
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЕрдЧрд░ рдЗрд╕реЗ рдкрд╛рдЗрдерди/рд▓реБрдЖ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рдХрд╛рд░рдг рд╕рд┐рд╕реНрдЯрдо рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдкреНрд░реЛрдЯреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реИ рддреЛ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк OSX El Capitan рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? рдпрд╣ рдПрдХ рдЕрдЬреАрдм рд╕рд┐рд╕реНрдЯрдо рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдкреНрд░реЛрдЯреЗрдХреНрд╢рди рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рд╣рд╛рдВ, рдореИрдВ рдУрдПрд╕ рдПрдХреНрд╕ 10.11.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдПрд╕рдЖрдИрдкреА рдХреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдпрд╛ред рдЕрднреА рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрд╕рдЖрдИрдкреА рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрдХ рдирдП рдкрд░реАрдХреНрд╖рдг рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬреЛ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛: testscr_check_kdb_internal_suite
ред рдФрд░ рдЕрдм testscr_check_merge
рднреА рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ .
рдореИрдВ 0.8.16 рдкрд░ рд╡рд╛рдкрд╕ рдЧрдпрд╛, рдЕрдкрдиреА рдмрд┐рд▓реНрдб рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ рд╕рд╛рдл рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ ninja test
рдЪрд▓рд╛рдпрд╛ред testscr_check_kdb_internal_suite
рдФрд░ testscr_check_merge
рдЕрднреА рднреА рд╡рд┐рдлрд▓ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛, рдХрд┐ Elektra 0.8.16 рдЬрд╛рд░реА рд╣реЛрдиреЗ рдкрд░ рдХрдо рд╕реЗ рдХрдо testscr_check_kdb_internal_suite
рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред рдпрд╣рд╛рдБ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ рдЬреЛ рдЕрдм рднреА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
testscr_check_kdb_internal_suite.txt
testscr_check_merge.txt
рдореИрдВрдиреЗ рд╢реАрд░реНрд╖рдХ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЦреБрдж рдХреЛ рд╣рдЯрд╛ рд▓рд┐рдпрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ OSX рдорд╢реАрди рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдЧрд╣рди рдЬреНрдЮрд╛рди рдХреА рдХрдореА рд╣реИред рдПрдХ рдорд╢реАрди рдХреЗ рдмрд┐рдирд╛ рдЪрд╛рд░реЛрдВ рдУрд░ рдкреНрд░рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЯреЗрдХреНрд╕реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдХреБрдЫ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ред
рдХреНрдпрд╛ рдЖрдкрдиреЗ рд▓рд┐рдВрдХ рдХреЗ рдЕрдиреНрдп рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рднреА рджреЗрдЦрд╛? рдЬреИрд╕реЗ рдЕрдЬрдЧрд░/рд▓реБрдЖ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛?
@ petermax2 @mpranj рдХреНрдпрд╛ рдЖрдк рдЗрди рдореБрджреНрджреЛрдВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдХреНрдпрд╛ рдЖрдкрдиреЗ рд▓рд┐рдВрдХ рдХреЗ рдЕрдиреНрдп рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рднреА рджреЗрдЦрд╛? рдЬреИрд╕реЗ рдЕрдЬрдЧрд░/рд▓реБрдЖ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛?
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВред рдкрд╛рдпрдерди 2 рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╡рд╣ рд╣реИ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ред рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдкреВрд░реЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рд▓реБрдЖ рдЗрд▓реЗрдХреНрдЯреНрд░рд╛ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реБрдЖ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЬреНрдпрд╛рджрд╛ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЪреВрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ, brew reinstall lua
рдореИрдВрдиреЗ ctest -VV -R test_kdb.lua
рдЪрд▓рд╛рдпрд╛ред рдкрд░реАрдХреНрд╖рдг рдЕрднреА рднреА рд╡рд╣реА рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
рд╡реИрд╕реЗ: рдкрд░реАрдХреНрд╖рдг testscr_check_kdb_internal_suite
рдФрд░ testscr_check_merge
рдЕрдм рднреА рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ /etc/kdb
рд╕реЗ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рджред
рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рджреВрд╕рд░рд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИред (рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓реА рдЕрд▓рдЧрд╛рд╡ рдХреЛ рдЫреЛрдбрд╝рдХрд░: dlopen рдХреЙрд▓ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛) рддреЛ рдпрд╣ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдирдИ рд░реЛрд╢рдиреА рдЪрдордХрддрд╛ рд╣реИред
рдореИрдВ рдЕрдкрдиреА рдорд╢реАрди рдкрд░ рдЙрд╕реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рд╕рдорд╛рдзрд╛рди: рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрде рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ: рдЬреИрд╕реЗ
LD_LIBRARY_PATH="/Users/mpranj/workspace/libelektra/build/lib" ctest -V -R test_kdb.lua
рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ dlopen
рдЦреЛрдЬ $LD_LIBRARY_PATH, $DYLD_LIBRARY_PATH, current working directory, $DYLD_FALLBACK_LIBRARY_PATH
, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рдХреНрд░рдо рдореЗрдВред
рдкреАрдЖрд░ # 710 рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдлрд┐рдХреНрд╕ рдмрд╣реБрдд рд╕рд╛рдл рд╣реИред
рдирд╣реАрдВ, рдлрд┐рдХреНрд╕ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдл рдирд╣реАрдВ рд╣реИред
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдпрд╛рдж рд╣реИ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг DT_RPATH
рдореЗрдВ рд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ libelektra-kdb.so
ред рдпрджрд┐ рдпрд╣ OSX рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ рддреЛ рд╣рдореЗрдВ рдЗрд╕реЗ рдХреБрдЫ рд╡реИрд╢реНрд╡рд┐рдХ рдмрд┐рд▓реНрдб рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдкреНрд▓реЗрд╕ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд▓реЗрдХрд┐рди рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
RPATH
рд╕рднреА рдореБрдЦреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж libelektra-core
рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ dlopen
рд╣реЛрддрд╛ рд╣реИред
рдХреНрдпрд╛ image not found
рд╕реАрдзрд╛ рд╕рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рдорд┐рд▓рд╛? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ RPATH
рд▓реБрдЖ рдФрд░ рдкрд╛рдпрдерди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдХреЗрд╡рд▓ рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП: рдЗрд▓реЗрдХреНрдЯреНрд░рд╛ рдХреЗрд╡рд▓ TARGET_PLUGIN_FOLDER
рдХреЛ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рдмрд┐рдирд╛ RPATH
(рдЙрджрд╛.
рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдлреНрд░реАрдмреАрдПрд╕рдбреА рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдкрд░ рднреА рдРрд╕реА рд╣реА рдЪреАрдЬреЗрдВ рд╣реЛрддреА рд╣реИрдВред
66/118 Test #66: test_kdb.py ........................***Failed 0.09 sec
..EEEE
======================================================================
ERROR: test_ctor (__main__.KDB)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/mpranj/workspace/libelektra/src/bindings/swig/python/tests/test_kdb.py", line 25, in test_ctor
self.assertIsInstance(kdb.KDB(), kdb.KDB)
File "/home/mpranj/workspace/libelektra/build/src/bindings/swig/python/kdb.py", line 1742, in __init__
_kdb.KDB_swiginit(self, _kdb.new_KDB(*args))
kdb.KDBException: 1 Warning was issued:
Warning number: 1
Description: could not load module, dlopen failed
Ingroup: modules
Module: dl
At: /home/mpranj/workspace/libelektra/src/libs/loader/dl.c:82
Reason: of module: libelektra-resolver.so, because: Shared object "libelektra-resolver.so" not found, required by "python3"
Mountpoint:
Configfile:
Error (#40) occurred!
Description: Failed to open default backend (see warnings for more information)
Ingroup: kdb
Module:
At: /home/mpranj/workspace/libelektra/src/libs/elektra/kdb.c:282
Reason: could not open default backend
Mountpoint:
Configfile:
рдЕрднреА рддрдХ рдлреНрд░реАрдмреАрдПрд╕рдбреА рдкрд░ рд▓реБрдЖ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░ рдкрд╛рдП рд╣реИрдВред
@mpranj рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлреНрд░реАрдмреАрдПрд╕рдбреА рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдВрдХреЗрдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ kdb
рдЯреЗрд╕реНрдЯрдХреЗрд╕ рдФрд░ kdb
рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЯреВрд▓ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ?
рдХреНрдпрд╛ рдЖрдк рдореБрджреНрджреЛрдВ рдХреЛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЙрди рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ OpenBSD рдореБрджреНрджреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ FreeBSD рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ?
рдпрджрд┐ рдЖрдкрдХрд╛ рдорддрд▓рдм рдпреЗ рд╣реИ:
Start 115: testkdb_allplugins
115/118 Test #115: testkdb_allplugins ................. Passed 0.02 sec
Start 116: testkdb_nested
116/118 Test #116: testkdb_nested ..................... Passed 0.27 sec
Start 117: testkdb_conflict
117/118 Test #117: testkdb_conflict ................... Passed 0.17 sec
Start 118: testkdb_simple
118/118 Test #118: testkdb_simple ..................... Passed 0.42 sec
... рддреЛ рд╣рд╛рдВред kdb
рдЯреВрд▓ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ (рдПрд▓рдПрд╕ рдХреЗ рд╕рд╛рде рдмрд╕ рдПрдХ рддреНрд╡рд░рд┐рдд рдЬрд╛рдВрдЪ)ред
рдЕрдиреНрдпрдерд╛ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣реА рд╣реИрдВ рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдЬ рдкреВрд░реА рдЬрд╛рдВрдЪ/рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░ рдкрд╛рдКрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рдЗрд╕рдХрд╛ рдареАрдХ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдВрдЧрд╛ рддреЛ рдореИрдВ рд╕рдм рдХреБрдЫ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдВрдЧрд╛ред
рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдХреЗрдбреАрдмреА рдкрд░реАрдХреНрд╖рдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рд╣реИ рдирд╛?
рдЕрдЧрд░ рдореИрдВ BUILD_STATIC
рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдкрд░реАрдХреНрд╖рдг рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
@markus2330 рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдХреБрдЫ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ LD_LIBRARY_PATH
рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред TARGET_PLUGIN_FOLDER
рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ? рдпрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдпрд╣ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЦреЛрдЬ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ?
рдзрдиреНрдпрд╡рд╛рдж рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ: @sanssecours рдХреНрдпрд╛ рдЖрдк BUILD_STATIC рдФрд░ BUILD_FULL рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА ( testkdb
) рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ?
рдпрджрд┐ TARGET_PLUGIN_FOLDER рдЦрд╛рд▓реА рд╣реИ, рддреЛ рдкреНрд▓рдЧ рдЗрди рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ рдЬрд╣рд╛рдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдФрд░ RPATH
рдпрд╛ LD_LIBRARY_PATH
рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╕реНрдерд╛рдкрд┐рдд рдЗрд▓реЗрдХреНрдЯреНрд░рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреЛ python
/ lua
рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред
https://cmake.org/Wiki/CMake_RPATH_handling рдХрд╣рддрд╛ рд╣реИ ".. рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ RPATHред рдпрд╣ рдмрд┐рд▓реНрдб рдЯреНрд░реА рдФрд░ рдЗрдВрд╕реНрдЯрд╛рд▓ рдЯреНрд░реА рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛", рдЗрд╕рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд┐рд▓реНрдб рдЯреНрд░реА рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдореЗрдВ RPATH рд╕реЗрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред @sanssecours рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП readelf -a lib/libelektra-core.so.0.8.16 | grep RPATH
ред
рдореБрджреНрджрд╛ рдЖрд░рдкреАрдПрдЯреАрдПрдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рд▓рд┐рдирдХреНрд╕ рдкрд░ DT_RPATH рдмрдирд╛рдо рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрдврд╝рдиреЗ рдкрд░ dlopen
рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред
man dlopen
рдЧреНрд▓рд┐рдмрдХ рд╕реЗ:
- (рдХреЗрд╡рд▓ рдИрдПрд▓рдПрдл) рдпрджрд┐ рдХреЙрд▓рд┐рдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ DT_RPATH рдЯреИрдЧ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ DT_RUNPATH рдЯреИрдЧ рдирд╣реАрдВ рд╣реИ, рддреЛ DT_RPATH рдЯреИрдЧ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХреА рдЬрд╛рддреА рд╣реИред
- рдпрджрд┐, рдЙрд╕ рд╕рдордп рдЬрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ LD_LIBRARY_PATH рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рдПрдХ рдХреЛрд▓рди-рдкреГрдердХ рд╕реВрдЪреА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдлрд┐рд░ рдЗрдиреНрд╣реЗрдВ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред (рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдЪрд░ рдХреЛ рд╕реЗрдЯ-рдпреВрдЬрд╝рд░-рдЖрдИрдбреА рдФрд░ рд╕реЗрдЯ-рдЧреНрд░реБрдк-рдЖрдИрдбреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред)
- (рдХреЗрд╡рд▓ рдИрдПрд▓рдПрдл) рдпрджрд┐ рдХреЙрд▓рд┐рдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ DT_RUNPATH рдЯреИрдЧ рд╣реИ, рддреЛ рдЙрд╕ рдЯреИрдЧ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХреА рдЬрд╛рддреА рд╣реИред
- рдХреИрд╢ рдлрд╝рд╛рдЗрд▓ /etc/ld.so.cache (ldconfig(8) рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░рдХреНрд╖рд┐рдд) рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ рдпрд╛ рдирд╣реАрдВред
- рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ /lib рдФрд░ /usr/lib рдЦреЛрдЬреА рдЬрд╛рддреА рд╣реИрдВ (рдЙрд╕ рдХреНрд░рдо рдореЗрдВ)ред
OSX рдкрд░ man dlopen
:
рдЬрдм рдкрде рдореЗрдВ рд╕реНрд▓реИрд╢ рд╡рд░реНрдг рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдкрддреНрддреА рдХрд╛ рдирд╛рдо рд╣реИ), dlopen() рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рддрдм рддрдХ рдЦреЛрдЬрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЙрд╕реЗ рдПрдХ рд╕рдВрдЧрдд Mach-O рдлрд╝рд╛рдЗрд▓ рди рдорд┐рд▓ рдЬрд╛рдП: $LD_LIBRARY_PATH, $DYLD_LIBRARY_PATH, рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛, $DYLD_FALLBACK_LIBRARY_PATHред
dlopen рдХреЛ рдпрд╣рд╛рдВ рдкреВрд░реНрдг рдкрде рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдЗрд╕реЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдкрдереЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рд▓реЗрдХрд┐рди рд╣рдо рдкреВрд░реНрдг рдкрде рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рддреЛ рдкрддрд╛ рдирд╣реАрдВ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдХреИрд╕реЗ рдорджрдж рдХрд░рддреА рд╣реИ
рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдЖрд░рдкреАрдПрдЯреАрдПрдЪ рдпрд╛ рдкреВрд░реНрдг рдкрде? рд╕реАрдПрдордХреЗ рдХрд╛ рджрд╛рд╡рд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдмрд┐рд▓реНрдб-рдкреЗрдбрд╝ рдЖрд░рдкреАрдПрдЯреАрдПрдЪ рдХрд╛ рд╕рдорд░реНрдерди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЗрд╕реЗ рдкреВрд░реНрдг рдЖрд░рдкреАрдПрдЯреАрдПрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдкрде рд╡рд╣реА рд╣реИ рдЬреЛ рдХрдИ рд▓реЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдПрдХ рдЖрд╕рд╛рди рдмрджрд▓рд╛рд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЗрди-рдмрд┐рд▓реНрдб рдЯреЗрд╕реНрдЯ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИред рдХреНрдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдЬреИрд╕реЗ kdb run_all
рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ (рдЬреЛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдКрдкрд░ рд▓рд┐рдЦрд╛ рдерд╛)ред
dlopen рдореИрдирдкреЗрдЬ рд╕реЗ рдореЗрд░рд╛ рдкреЗрд╕реНрдЯ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИред
рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ dlopen(libelektra-resolver.so) рдХрд╛ рдЦреЛрдЬ рдкрде рдЕрд▓рдЧ рд╣реИред Linux рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ dlopen libelektra-kdb.so рдХреЗ DT_RPATH рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реИ
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ LD_LIBRARY_PATH
рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рд╡рд╣реА рд╣реИ рдЬреЛ рд╡рд╛рд▓реНрд╡ рднреА рдХрд░ рд░рд╣рд╛ рд╣реИред
https://github.com/ValveSoftware/steam-runtime/blob/master/runtime/run.sh
рдЖрдкрдХрд╛ рдорддрд▓рдм рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ? @rpath
рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╡рд╣рд╛рдВ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рддрдХ рд╣рдо рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ BUILD_SHARED рдХреЗ рд╕рд╛рде/рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдкрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рдореЗрдВ рдЖрдЧреЗ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
@ рдорд╛рд░реНрдХрд╕2330
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: BUILD_STATIC рдФрд░ BUILD_FULL рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛:
testkdb* рдкрд░реАрдХреНрд╖рдг рдареАрдХ рдЪрд▓рддрд╛ рд╣реИред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╡реЗ рдпрд╣рд╛рдБ @rpath
рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ
рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рдореЗрд░реЗ рдХрдерди рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА:
runtimelib
... рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред (рдЗрд▓реЗрдХреНрдЯреНрд░рд╛-рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рдХреА рддрд░рд╣)lib
...рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ runtimelib
рдХреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ dlopen
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ DT_RPATH runtimelib
рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реЗрдЯ рд╣реИред (рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ kdb.so рдХреА рддрд░рд╣)runner
... рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдЬреЛ lib
рд░рдирдЯрд╛рдЗрдо рдкрд░ dlopen
(рдЬреИрд╕реЗ рд▓реБрдЖ/рдкрд╛рдпрдерди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИрджреЗрдЦреЗрдВ https://gist.github.com/manuelm/43a4fa9dd424b4dcf03bd1d773a0e122
рдпрд╣ рдкрд░рд┐рджреГрд╢реНрдп рд▓рд┐рдирдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлреНрд░реАрдмреАрдПрд╕рдбреА рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╕реЗрдЯ RPATH рдкреЛрд░реНрдЯреЗрдмрд▓ рдирд╣реАрдВ рд╣реИ (рдпрд╣ рднреА musl рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ ( @mpranj рдиреЗ рдпрд╣ рднреА рдмрддрд╛рдпрд╛ рдХрд┐ testkdb* рдкрд░реАрдХреНрд╖рдг рдареАрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ @omnidan рдиреЗ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдХреЗ рд╕рд╛рде kdb
рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реВрдЪрдирд╛ рджреА)ред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореИрдВрдиреЗ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдХрд┐ рдХреЗрд╡рд▓ рдкрд╛рдпрдерди/рд▓реБрдЖ рдкрд░реАрдХреНрд╖рдг рдХреНрдпреЛрдВ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
Elektra рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреЛрд░реНрдЯреЗрдмрд▓ рддрд░реАрдХрд╛ TARGET_PLUGIN_FOLDER
рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) LD_LIBRARY_PATH
ред (рд╣рдореЗрдВ рдЗрд╕реЗ рдХреЗрд╡рд▓ run_memcheck рдФрд░ run_all рдХреЗ рднреАрддрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА)ред
@mpranj рдиреЗ рдпрд╣ рднреА рдмрддрд╛рдпрд╛ рдХрд┐ testkdb* рдкрд░реАрдХреНрд╖рдг рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ @omnidan рдиреЗ рдХреЗрдбреАрдмреА рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реВрдЪрдирд╛ рджреА
testkdb*
рдФрд░ kdb
рдиреЗ DT_RPATH рдХреЛ рд╕реНрд╡рдпрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдкрд╛рдпрдерди рдФрд░ рд▓реБрдЖ рджреБрднрд╛рд╖рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рд╣реИред
[...] рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) LD_LIBRARY_PATHред
рдлрд┐рд░ рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЬреЛрдбрд╝реЗрдВред рдзрдиреНрдпрд╡рд╛рдж
рд╣рд╛рдВ, рдЖрдк рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИрдВ: рд╕реАрдПрдордХреЗ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкрд░ рдЖрд░рдкреАрдПрдЯреАрдПрдЪ рд╕реЗрдЯ рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╛рдпрдерди/рд▓реБрдЖ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдкрд░, рдЗрд╕реЗ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рддреЛ рдХреГрдкрдпрд╛ рдХреЛрдИ рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ kdb
рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ( TARGET_PLUGIN_FOLDER
рд╕реЗрдЯ рдХреЗ рд╕рд╛рде)ред
@sanssecours рдХреНрдпрд╛ рдЖрдк BUILD_STATIC рдФрд░ BUILD_FULL рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА (
testkdb
) рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ?
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ ninja test
рдХрдо рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реИ (114 рдХреЗ рдмрдЬрд╛рдп 54)ред рдкрд░реАрдХреНрд╖рдг test_kdb.lua
рдФрд░ testpy2_kdb.py
рдЕрднреА рднреА рд╡рд┐рдлрд▓ рд╣реИрдВред рдЕрдиреНрдп рд╕рднреА рдкрд░реАрдХреНрд╖рдг (рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ) рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
https://cmake.org/Wiki/CMake_RPATH_handling рдХрд╣рддрд╛ рд╣реИ ".. рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ RPATHред рдпрд╣ рдмрд┐рд▓реНрдб рдЯреНрд░реА рдФрд░ рдЗрдВрд╕реНрдЯрд╛рд▓ рдЯреНрд░реА рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛", рдЗрд╕рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд┐рд▓реНрдб рдЯреНрд░реА рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдореЗрдВ RPATH рд╕реЗрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
readelf -a lib/libelektra-core.so.0.8.16 | grep RPATH
ред
рдореИрдВрдиреЗ рдХрдорд╛рдВрдб рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ otool -l lib/libelektra-resolver.so
тАФ libelektra-core.so.0.8.16
рдореЗрд░реА рдорд╢реАрди рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░:
тАж
Load command 12
cmd LC_RPATH
cmdsize 104
path /Users/rene/Dropbox/Studium/Master Thesis/Configuration Parsing/Source/Elektra/build/lib (offset 12)
тАж
RPATH
рд╕реЗрдЯ рд╣реИред
рдЬреИрд╕реЗ kdb run_all рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ (рдЬреЛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдКрдкрд░ рд▓рд┐рдЦрд╛ рдерд╛ рдЙрд╕рдХреЗ рдЖрдЧреЗ)ред
рдореЗрд░реА рдорд╢реАрди рдкрд░ ремрелрел рдореЗрдВ рд╕реЗ рел рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕реЗ 4 ( testmod_crypto
, testmod_iterate
, testmod_semlock
рдФрд░ testmod_template
) рдПрдХ рд╣реА рдореВрд▓ рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ:
dyld: Library not loaded: @rpath/libelektra-full.4.dylib
Referenced from: /usr/local/lib/elektra/tool_exec/testmod_crypto
Reason: Incompatible library version: testmod_crypto requires version 4.0.0 or later, but libelektra-full.4.dylib provides version 0.0.0
/usr/local/lib/elektra/tool_exec/run_all: line 1070: 76960 Trace/BPT trap: 5 "$KDB" $t
error: testmod_crypto
dyld: Library not loaded: @rpath/libelektra-full.4.dylib
Referenced from: /usr/local/lib/elektra/tool_exec/testmod_iterate
Reason: Incompatible library version: testmod_iterate requires version 4.0.0 or later, but libelektra-full.4.dylib provides version 0.0.0
/usr/local/lib/elektra/tool_exec/run_all: line 1070: 77093 Trace/BPT trap: 5 "$KDB" $t
error: testmod_iterate
dyld: Library not loaded: @rpath/libelektra-full.4.dylib
Referenced from: /usr/local/lib/elektra/tool_exec/testmod_semlock
Reason: Incompatible library version: testmod_semlock requires version 4.0.0 or later, but libelektra-full.4.dylib provides version 0.0.0
/usr/local/lib/elektra/tool_exec/run_all: line 1070: 77239 Trace/BPT trap: 5 "$KDB" $t
error: testmod_semlock
dyld: Library not loaded: @rpath/libelektra-full.4.dylib
Referenced from: /usr/local/lib/elektra/tool_exec/testmod_template
Reason: Incompatible library version: testmod_template requires version 4.0.0 or later, but libelektra-full.4.dylib provides version 0.0.0
/usr/local/lib/elektra/tool_exec/run_all: line 1070: 77272 Trace/BPT trap: 5 "$KDB" $t
error: testmod_template
рдкрд░реАрдХреНрд╖рдг testmod_python2
рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:
PYTHON TESTS
==================
Testing simple variable passing...
There are 1 warnings
buffer is: warnings/#00
number: 11
description: open of plugin returned unsuccessfully (reason contains plugin, see other warnings for details)
ingroup: kdb
module:
file: ../src/libs/elektra/plugin.c
line: 297
reason: python2
reason:
reason:
../src/plugins/python2/../python/testmod_python.c:53: error in test_variable_passing: warnings in kdbOpen for plugin python2
number: 111
description: : python error
ingroup: : plugin
module: : python
at: ../src/plugins/python2/../python/python.cpp:245
reason: : Unable to import kdb module
mountpoint: :
configfile: :
../src/plugins/python2/../python/testmod_python.c:53: error in test_variable_passing: error in kdbOpen for plugin python2
../src/plugins/python2/../python/testmod_python.c:53: fatal in test_variable_passing: could not open python2 plugin
error: testmod_python2
рдиреАрдЪреЗ testmod_lua
рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
--- running testmod_lua ---
LUA TESTS
==================
Testing simple variable passing...
[LUA-1] open -->
[LUA-1] get
[LUA-1] <-- close
Testing loading of two active lua plugins...
[LUA-1] open -->
[LUA-2] open -->
[LUA-2] <-- close
[LUA-1] <-- close
========================================================================
NOTE: The following errors are intended. We're testing error conditions!
========================================================================
Testing return values from lua functions...
Testing lua script with syntax error...
There are 1 warnings
buffer is: warnings/#00
number: 11
description: open of plugin returned unsuccessfully (reason contains plugin, see other warnings for details)
ingroup: kdb
module:
file: ../src/libs/elektra/plugin.c
line: 297
reason: lua
reason:
reason:
number: 131
description: : lua error
ingroup: : plugin
module: : lua
at: ../src/plugins/lua/lua.cpp:80
reason: : /usr/local/share/elektra/test_data/lua/lua_plugin_wrong.lua:2: attempt to call global 'wrong' (a nil value)
mountpoint: :
configfile: :
test_lua RESULTS: 29 test(s) done. 0 error(s).
OS X рдкрд░ dylibs рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, .so рдирд╣реАрдВред рд╡рд╣рд╛рдБ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ libelektra-core.0.8.16.dylib рдпрд╛ рд╕рдорд╛рди рд╣реИред
рд╡рд╣рд╛рдБ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ libelektra-core.0.8.16.dylib рдпрд╛ рд╕рдорд╛рди рд╣реИред
рддреБрдо рд╕рд╣реА рд╣реЛред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ RPATH
libelektra-core.0.8.16.dylib
рд▓рд┐рдП рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ otool -l lib/libelektra-core.0.8.16.dylib | grep RPATH
рдХреЛрдИ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
grep рдЖрдЙрдЯрдкреБрдЯ рдЫреЛрдЯрд╛ рди рд╣реЛ, рдпрд╛ grep рд▓реЛрдЕрд░рдХреЗрд╕ rpath
grep рдЖрдЙрдЯрдкреБрдЯ рдЫреЛрдЯрд╛ рди рд╣реЛ, рдпрд╛ grep рд▓реЛрдЕрд░рдХреЗрд╕ rpath
рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ "рдЖрдЙрдЯрдкреБрдЯ grep рдордд рдХрд░реЛ, рдЬреЛ рдЫреЛрдЯрд╛ рд╣реИ, рдпрд╛ grep рд▓реЛрдЕрд░рдХреЗрд╕ rpath"? рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЦреЛрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ RPATH
рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ otool -l lib/libelektra-core.0.8.16.dylib
рдЦреЛрдЬ рдХреАред рдпрд╣ LC_RPATH
рдХреА рдХреЛрдИ рдШрдЯрдирд╛ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
рдЕрдЧрд░ рдореИрдВ rpath
рдЦреЛрдЬрддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ @rpath
рдХреА рдПрдХ рдШрдЯрдирд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:
...
Load command 3
cmd LC_ID_DYLIB
cmdsize 56
name @rpath/libelektra-core.4.dylib (offset 24)
time stamp 1 Thu Jan 1 01:00:01 1970
current version 0.0.0
compatibility version 0.0.0
...
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ @rpath
рдХреЗрд╡рд▓ рдПрдХ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рд╣реИ (рдорд╛рдиреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд) RPATH
ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ rpath
рдХреА рдпрд╣ рдШрдЯрдирд╛ рд╣рдореЗрдВ рдмрддрд╛рддреА рд╣реИ рдХрд┐ RPATH
рд╕реЗрдЯ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рд╕реАрдПрдордХреЗ рд╡рд┐рдХреА рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрдорд╛рдВрдб otool -l <file> | grep LC_RPATH -A2
рдХреБрдЫ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрд░рдкреАрдПрдЯреАрдПрдЪ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдо рдлреИрдВрд╕реА рд╕рдВрд╕реНрдХрд░рдг рдЬреЛ рдореИрдВрдиреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ - otool -l lib/libelektra-core.0.8.16.dylib | grep RPATH
- рдХрдореЛрдмреЗрд╢ рдареАрдХ рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рджреЛрд╕реНрддреЛрдВ, рдЖрдк рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдХреНрдпреЛрдВ рдЪреЗрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
@sanssecours рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдлреЛрди рд╕реЗ рд╕рдВрджреЗрд╢ рдЬрд▓реНрджреА рднреЗрдЬ рджрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдирд╣реАрдВ рджреЗрдЦрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред
рдореИрдВ otool -L
рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬреЛ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ @rpath
рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рд╛рдБ рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ otool -l
рд╕рд╣реА рдЖрджреЗрд╢ рд╣реИред
рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рдЗрд▓реЗрдХреНрдЯреНрд░рд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЖрд░рдкреАрдПрдЯреАрдПрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
/usr/local/lib/libelektra.0.8.13.dylib
cmd LC_RPATH
cmdsize 40
path /usr/local/lib/elektra (offset 12)
рдЬреИрд╕рд╛ рдХрд┐ @manuelm рдХрд╣рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпреЗ рдЪреЗрдХ рд╡реНрдпрд░реНрде рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ ...
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдореБрджреНрджреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдЬрд┐рд╕ рддрд░рд╣ рдХреА рд░рд┐рдореЛрдЯ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдХреБрд╢рд▓ рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рдХреЛ рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЧреИрд░-рдЧреНрд▓рд┐рдмреИрдХ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИред рдЖрдЗрдП рдмреИрдардХ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВ рдХрд┐ рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рд╣реИред
@ рдорд╛рд░реНрдХрд╕ реирейрейреж рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВред рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ LD_LIBRARY_PATH рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдореИрдВ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рджреВрд░ рд╣реЛ рдЧрдИ рд╣реИред
рдЕрдиреНрдп рд╕рднреА рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдореБрджреНрджреЗ рд▓рд╛рд▓ рдЭреБрдВрдб рд╣реИрдВ рдпрд╛ рд╕рд┐рд░реНрдл рдЧрд▓рдд рд╣реИрдВред
@manuelm рдореИрдВ рдЕрдЪреНрдЫрд╛ рдмрдирдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдХрд╣рд╛ "рд╣рдо"ред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ LD_LIBRARY_PATH рдмрд┐рд▓реНрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдвреВрдВрдврдиреЗ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛ (рдЬрдм рддрдХ рдХрд┐ рдЗрд╕реЗ рдХрд╣реАрдВ рд░реАрд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдкрд╛рдпрдерди/рд▓реБрдЖ рдЬреАрдЖрдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рд╣реА рд╣реИ рдХрд┐ RPATH рдХреЛ рдмрд╛рдЗрдирд░реА рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рднреА рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреА рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреБрд╖реНрдЯрд┐ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдореЗрд░рд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдЕрдм рдХреЗрд╡рд▓ рдПрдХ рд╕рд┐рджреНрдзрд╛рдВрдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдкреНрд░рдорд╛рдг рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред
рдПрдХ рдмрд╛рд░ рдлрд┐рд░: рд▓рд┐рдирдХреНрд╕ рдкрд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ (рд▓реБрдЖ/рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП kdb.so
рдФрд░ рдЧреНрд▓рд┐рдм рдХреЗ рд▓рд┐рдП libgelektra-4.0.so
) рдореЗрдВ DT_RPATH
рд╕реЗрдЯ _AND_ dlopen
рдЗрд╕рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реИред
рдЗрд▓реЗрдХреНрдЯреНрд░рд╛ рдХреЛ рдЧреНрд▓реЛрдмрд▓ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрде рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛рдо рдХрд░реЗрдЧреАред рдореБрдЭреЗ рдмрд┐рд▓реНрдХреБрд▓ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рдХрд┐ рдпрд╣ рдЕрдЪрд╛рдирдХ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗред
рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рдкрд░реАрдХреНрд╖рдг !=linux рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдмрд╕ рдЗрддрдирд╛ рд╣реАред
рдкреБрдирд╢реНрдЪ: рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЬреАрдЖрдИ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП LD_LIBRARY_PATH рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореИрдХреНрд░реЛ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдЬреАрдЖрдИ рдорд╛рдорд▓реЗ рдХреЛ рдПрдХреАрдХреГрдд/рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдкрд░реАрдХреНрд╖рдг рд╣реА рдПрдХрдорд╛рддреНрд░ рд╕реНрдерд╛рди рд╣реИ рдЬрд╣рд╛рдВ LD_LIBRARY_PATH рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд╣реАрдВ рдЬреЛрдбрд╝рд╛ред
@mpranj рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЬрд▓реНрдж рд╣реА рдПрдХ рдЯреНрд░реИрд╡рд┐рд╕ рдорд┐рд▓реЗрдЧрд╛ рдЬреЛ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ?
@ рдорд╛рд░реНрдХрд╕ реирейрейреж рдирд╣реАрдВ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред (рди рддреЛ рдЯреНрд░реИрд╡рд┐рд╕ рдкрд░ рдФрд░ рди рд╣реА рдореЗрд░реА рдорд╢реАрди рдкрд░)
@mpranj рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЯреНрд░реИрд╡рд┐рд╕ рдлрд╝рд╛рдЗрд▓ рдХрд┐рд╕реА рдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ? рджреЛрдиреЛрдВ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдЕрднреА рднреА рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ? рдХреНрдпрд╛ рдореИрдВ LD_LIBRARY_PATH рдХреЛ рдХрд╣реАрдВ рднреВрд▓ рдЧрдпрд╛ рдерд╛ рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ?
@ рдорд╛рд░реНрдХрд╕ реирейрейреж рд╣рд╛рдБ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЯреНрд░реИрд╡рд┐рд╕ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реА рдорд╢реАрди рдХреЗ рд╕рдорд╛рди рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ da243f9e25d8fa14f8286c48b4338a73c1e7242d рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рд╛ред
рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: https://travis-ci.org/mpranj/libelektra
рдФрд░ рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ
рд╣рд╛рдБ, рдЙрд╕рдиреЗ рдРрд╕рд╛ рдХрд╣рд╛ред рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдФрд░ рдЕрдиреНрдп рдХреЛ рдПрдХ рдЯреНрд░реИрд╡рд┐рд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗрдЯрдЕрдк рдЧрд╛рдпрдм рдерд╛ред
рдЖрдкрдХреА рд╕рднреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрднреА рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред