# 3115μμ kdb export system
(PRμμ kdb export system:/
)κ° system/elektra/modules
λͺ¨λ νλͺ©μ λ΄ λ³΄λ
λλ€. μ΄κ²μ μλ λ κ²μ
λκΉ?
ꡬ체μ μΈ μν©μ https://github.com/ElektraInitiative/libelektra/pull/3115#issuecomment -559576223μ μ°Έμ‘°
λ¬Όλ‘ , μ μλ©λκΉ? λν κ°μ Έ μ€κΈ°μ μ μ©νμ§ μμ λ²μ λ° κΈ°ν νλͺ©μ λ΄ λ³΄λ
λλ€. μ΄λ¬ν λΆλΆμ λ΄ λ³΄λ΄μ§ μμΌλ €λ©΄ --without-elektra
λ₯Ό μΆκ° ν μ μμ΅λλ€.
μ λ μ½λμ κ²½μ° μ£Όμ΄μ§ λΆλΆ λ§ λ°±μ λ° λ³΅μ λ κ²μΌλ‘ μμν©λλ€.
λ¬Όλ‘ , μ μλ©λκΉ?
kdbSet
μ΄λ»κ² λ μ κ±°ν©λκΉ? νλ¬κ·ΈμΈ get ν¨μμ νΉμ λΆλΆμ ν΅ν΄ νλ μ½λ© λ κ²½μ° μ΄λ¬ν ν€λ₯Ό μ§λ ¬ννλ κ²μ μλͺ»λ κ² κ°μ΅λλ€.
λ²μ μ 보μ κ²½μ° kdbSetμ λμΌν μ§ νμΈνκ³ λμΌν κ²½μ° kdbSetμ 무μν©λλ€. κ·Έλ μ§ μμΌλ©΄ μ€λ₯κ° λ°μν©λλ€.
λͺ¨λ (iirc)μ κ²½μ° kdbSetμ΄ μμΌλ―λ‘ μ€μ ν ν€λ 무μλ©λλ€. Iirc "constants"νλ¬κ·ΈμΈμ λμΌν λμμν©λλ€. λ³΄ν΅ system / info / elektraμ λ§μ΄νΈλμ΄ μμΌλ―λ‘ system / elektraμ μμ΅λλ€. --without-elektra
λ μ μ©νκ² λ§λ€κΈ° μν΄ λ³κ²½ν΄μΌν κΉμ?
κ·Έλ¬λ μ΄μ¨λ : λ λμ (λμΌν ν€ λ¬΄μ λ° νμΈ)μ κ°μ Έ μ€κΈ°μ ν΄λ₯Ό λΌμΉ μ§ μμμΌν©λλ€.
λ°λΌμ λ§€μ° λΆμμ ν Elektraμ νμ¬ μν©μ λν΄ μλ²½νκ² μ΄ν΄ν μ μμ΅λλ€. λ²μ μ΄ λμΌνμ§ μμΌλ©΄ μμ€ν
/ elektraμ κ°μ Έ μ€κΈ°κ° κ±°λΆλ©λλ€. μ΄ μ€λ₯λ₯Ό λ°©μ§νλ €λ©΄ --without-elektra
λ₯Ό μ λ¬ν μ μμ΅λλ€.
1.0 μ΄νμλ μ€μ λ‘ λ νΈμνκ² Elektra λ²μ 1.0 μ΄μμμ κ°μ Έ μ€κΈ°λ₯Ό μλ½ ν μ μμ΅λλ€. ( @mpranj μ΄λ»κ² μκ°νμΈμ?)
ν μ€νΈλ₯Ό μ‘°μ ν΄μΌν©λλ€. νμ¬λ λ€μκ³Ό κ°μ΅λλ€.
kdb import system < sys
Sorry, module kdb issued the error C01320:
Interface: Read only plugin, 'kdbSet' not supported but the key system/elektra/version/constants/KDB_VERSION_MICRO (expected system/elektra/version/constants/KDB_VERSION_MICRO) was tried to be modified to '1' (expected '2')
μ΄μ¨λ κ·νμ μ§λ¬Έμ --without-elektra
λ¬Έμλ₯Ό κ°μ ν μμλ λ°©λ²μ λν ν΅μ°°λ ₯μ μ 곡ν©λλ€. κ°μ Έ μ€κΈ° / λ΄λ³΄λ΄κΈ°μ λ§₯λ½μμ --without-elektra
μ μμ΄λμ΄λ λ€μ μ€ νλμ
λλ€.
1.0 μ΄νμλ μ€μ λ‘ λ νΈμνκ²
λλ μ μμ λμν©λλ€.
@kodebachκ° μΈκΈνλ―μ΄ μ΄κ²μ΄ λ°©κΈ # 3115μ λν λ¬κ³ μ΄μ μλ λνλμ§ μμλ€λ κ²μ΄ λ€μ μ΄μν©λλ€. --without-elektra
μΆκ°νλ λμ λ°±μ
λ° λ³΅μμ΄ μ²μμ μμμ΄μΌνμ§λ§ PRμ΄ μΌλΆ λμμ λ³κ²½ ν κ²μΌλ‘ 보μ
λλ€.
@kodebach κ·Έ ν
μ€νΈλ₯Ό μν΄ μΊμλ₯Ό λ€μ νμ±ν νμ΅λκΉ? λλ¨Έμ§ PRμ΄ μλ£ λ λκΉμ§ κΈ°λ€λ¦¬λ©΄ mmapstorage λ° μΊμλ₯Ό μμ ν μ μμ΅λλ€. μΊμκ° μ¬λ°λ₯΄κ² ꡬνλμ§ μμ λμ μ΄λ¬ν / μ μ¬ν μ€λ₯ ( Postcondition of backend was violated: drop key [...] not belonging to [...]
)λ₯Ό 보μμ΅λλ€.
ν΄λΉ ν μ€νΈλ₯Ό μν΄ μΊμλ₯Ό λ€μ νμ±ν νμ΅λκΉ?
μ, μΊμκ° μμ ν νμ±νλμμ΅λλ€.
mmapstorage λ° μΊμλ₯Ό μμ ν μ μμ΅λλ€.
mmapstorage
μ (λ) μ΄λ―Έ μλν©λλ€. μ΄λκ°μ ukey
λμ key
κ°μλ κ²μΌλ‘ λνλ¬μ΅λλ€.
μ μ λ§μ΄νΈ ν΄μ ν μ€νΈμ λ¬Έμ μ λ³λλ‘ μΊμλ μλνλ κ² κ°μ΅λλ€. λ§μ§λ§μΌλ‘ νμΈν κ²°κ³Ό μΊμκ° μ»΄νμΌλμ§ μμ λ μ€λ₯κ° λ°μνμ§ μμμ΅λλ€.
kdbGet
, elektraCacheGet
λ° κ΄λ ¨ κΈ°λ₯μ μΌλΆλ₯Ό λ³κ²½νμ΅λλ€. λ΄κ° λκ°λ₯Ό λ§ μ³€μ κ°λ₯μ±μ΄ μμ§λ§ λ΄κ° λ°κΎΌ κ²λ€μ μλ§λ # 2969 μ΄νμ λ€μ λ°λ νμκ° μκΈ° λλ¬Έμ μ§κΈ λΉμ₯ μ΄ν΄λ³Ό νμκ° μλ€κ³ μκ°ν©λλ€.
νμΈ. cache + mmapstorageλ‘ μΈν΄ λ¬Έμ κ° λ°μνλ κ²½μ° λκΉμ§ λΉνμ±ν λ μνλ‘ μ μ§νκ³ νμ±ννλ©΄ μ μ© ν μ μμ΅λλ€.
PRμ λ§€μ° κ·Όλ³Έμ μΈ λ³κ²½μ΄λ―λ‘ μΊμκ° κΉ¨μ Έμ λ©μΆμ§ μμΌλ©΄ ν¨μ¬ μ¬μΈ κ²μ λλ€. κΈ°λ³Έμ μΌλ‘ μ€λΉκ°λλ©΄ μΊμλ₯Ό λ€μ νμ±ννκ³ λμκ² pingμνμ¬ λλ¨Έμ§ λΆλΆμ μ΄ν΄λ³΄κ³ μμ ν μ μμ΅λλ€.
@mpranj : μΊμμ κ΄λ ¨μ΄ μμΌλ―λ‘ ν λΉνμ΅λλ€.
νμ¬ λ§μ€ν°μμ λΉμ·ν κ²μ μ¬ν ν μ μμ΅λλ€. λκ΅°κ° κ±°κΈ°μμ κ·Έκ²μ μ¬ννλ λ°©λ²μ μμ§ λͺ»νλ©΄ λ§μ κ²μ ν μ μμ§λ§ λ§μ€ν°μλ μ‘΄μ¬νμ§ μλ κ² κ°μ΅λλ€.
# 3115μ μ§μ μμ μ€λͺ νλλ‘ μ€λ₯κ° λ°μν©λλ€. @kodebach λ΄κ° κ±°κΈ°λ‘ κ°μ λ³κ²½ μ¬ν μμ μΊμ κ΄λ ¨ νλͺ©μ μμ ν΄μΌν©λκΉ? μλλ©΄ λ무 빨리 μμ ν μ μμ΅λκΉ? νμ¬ λ§μ€ν°μμ λΈλμΉλ₯Ό λ¦¬λ² μ΄μ€νλ κ²μ΄ μΌλ§λ κ³ ν΅ μ€λ½μ΅λκΉ (μ¬μ λ°±μλ νλ¬κ·ΈμΈ)?
# 2969μ κ΄λ ¨ PRμ΄ ν©μ³μ§κΈ° μ κΉμ§λ # 3115μμ μμ ν κ°μΉκ° μλ€κ³ μκ°ν©λλ€. κ·Έ ν λλ λ¦¬λ² μ΄μ€νκ³ PRμ λλ΄λ €κ³ λ Έλ ₯ν κ²μ λλ€. κΈ°λ³Έμ μΌλ‘ μ μ ν λ¦¬λ² μ΄μ€λ₯Ό 보μ₯νκΈ° μν΄ ν€ μ΄λ¦ ꡬ문μ μμ‘΄νλ λͺ¨λ 컀λ°μ νμΈν΄μΌνλ―λ‘ κ°λ₯ν ν μ κ² λ¦¬λ² μ΄μ€νκ³ μΆμ΅λλ€.
μνλ€λ©΄ νμ¬ PR λ²μ μμ λ²κ·Έλ₯Ό μ°Ύμ μ μμ΅λλ€. κ·Έλ¬λ λ΄κ° κΈ°μ΅νλ ν λ¬Έμ λ₯Ό λ§λ€κΈ° μ μ master
μμ μ΄κ²μ μλνκΈ° λλ¬Έμ κ·Έ λμ μμ λμμ μ μμ΅λλ€.
# 2969μ κ΄λ ¨ PRμ΄ ν©μ³μ§κΈ° μ κΉμ§λ # 3115μμ μμ ν κ°μΉκ° μλ€κ³ μκ°ν©λλ€.
λ€, κ°μ¬ν©λλ€! κ·ΈλΌ κ΄λ ¨ PRμ΄ ν©μ³μ§ νμ΄ λ¬Έμ λ₯Ό νμΈν΄λ³΄μΈμ!
PRμ κΈ°λ€λ¦¬κ³ μλ μ΄μμ νκ·Έλ₯Ό μ§μ ν μ μμ΅λκΉ? μ§κΈμ μ λͺ©μ λ³κ²½νμ΅λλ€.
μ λ μ€μ λ‘ μ€λ master
μμ μ΄κ²μ μ¬ννμ΅λλ€. νΉν, λλ scripts/docker/fedora/32/Dockerfile
λ§λ€μμ΅λλ€ (κΈ°μ μ μΌλ‘λ master
μ΄ μλλΌ # 3447μμ λ§λ€μμ§ λ§ νμΌμ λμΌνκ³ μμ ν λ
립νμ
λλ€). κ·Έλ° λ€μ 컨ν
μ΄λλ₯Ό μμνμ΅λλ€.
docker run -it -w /home/jenkins elektra-fedora-32:latest
컨ν μ΄λ λ΄λΆμλ λ€μ μ€μ΄ μ€νλμμ΅λλ€.
git clone https://github.com/ElektraInitiative/libelektra
cd libelektra && mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug -DKDB_DB_SPEC="$PWD/config/spec" -DKDB_DB_SYSTEM="$PWD/config/system" -DKDB_DB_USER="cdbg-1/.config" -DCMAKE_INSTALL_PREFIX="$PWD/install" -DINSTALL_SYSTEM_FILES=OFF -DENABLE_DEBUG=ON -DENABLE_LOGGER=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=TRUE -DPLUGINS="ALL;-lua;-ccode;-tcl" -DBINDINGS="ALL" -DCOMMON_FLAGS="-Werror"
make -j 24
bin/kdb export system toml
λ§μ§λ§ λͺ λ Ήμ μΆλ ₯μ λ€μκ³Ό κ°μ΅λλ€.
elektra.modules.cache = "cache plugin waits for your orders"
elektra.modules.cache.exports = ""
elektra.modules.cache.exports.close = "(binary)"
elektra.modules.cache.exports.get = "(binary)"
elektra.modules.cache.exports.open = "(binary)"
elektra.modules.cache.exports.set = "(binary)"
elektra.modules.cache.infos = "Information about the cache plugin is in keys below"
elektra.modules.cache.infos.author = "Mihael Pranjic <[email protected]>"
elektra.modules.cache.infos.licence = "BSD"
elektra.modules.cache.infos.metadata = ""
elektra.modules.cache.infos.needs = ""
elektra.modules.cache.infos.placements = "pregetcache postgetcache"
elektra.modules.cache.infos.provides = ""
elektra.modules.cache.infos.recommends = ""
elektra.modules.cache.infos.status = "maintained unittest shelltest specific global"
elektra.modules.cache.infos.version = 1
elektra.modules.dump = "dump plugin waits for your orders"
elektra.modules.dump.config.needs.fcrypt.textmode = 0
elektra.modules.dump.exports = ""
elektra.modules.dump.exports.get = "(binary)"
elektra.modules.dump.exports.serialise = "(binary)"
elektra.modules.dump.exports.set = "(binary)"
elektra.modules.dump.exports.unserialise = "(binary)"
elektra.modules.dump.infos = "Information about the dump plugin is in keys below"
elektra.modules.dump.infos.author = "Markus Raab <[email protected]>"
elektra.modules.dump.infos.licence = "BSD"
elektra.modules.dump.infos.metadata = ""
elektra.modules.dump.infos.needs = ""
elektra.modules.dump.infos.placements = "getstorage setstorage"
elektra.modules.dump.infos.provides = "storage/dump storage dump"
elektra.modules.dump.infos.recommends = ""
elektra.modules.dump.infos.status = "productive maintained conformant unittest tested nodep -1000 default"
elektra.modules.dump.infos.version = 1
elektra.modules.list = "list plugin waits for your orders"
elektra.modules.list.exports = ""
elektra.modules.list.exports.addPlugin = "(binary)"
elektra.modules.list.exports.close = "(binary)"
elektra.modules.list.exports.deferredCall = "(binary)"
elektra.modules.list.exports.editPlugin = "(binary)"
elektra.modules.list.exports.error = "(binary)"
elektra.modules.list.exports.findplugin = "(binary)"
elektra.modules.list.exports.get = "(binary)"
elektra.modules.list.exports.mountplugin = "(binary)"
elektra.modules.list.exports.open = "(binary)"
elektra.modules.list.exports.set = "(binary)"
elektra.modules.list.exports.unmountplugin = "(binary)"
elektra.modules.list.infos = "Information about the list plugin is in keys below"
elektra.modules.list.infos.author = "Thomas Waser <[email protected]>"
elektra.modules.list.infos.licence = "BSD"
elektra.modules.list.infos.needs = ""
elektra.modules.list.infos.placements = "pregetstorage procgetstorage postgetstorage postgetcleanup presetstorage presetcleanup precommit postcommit prerollback postrollback"
elektra.modules.list.infos.provides = ""
elektra.modules.list.infos.status = "unittest nodep libc configurable global"
elektra.modules.list.infos.version = 1
elektra.modules.resolver_fm_hpu_b = "resolver_fm_hpu_b plugin waits for your orders"
elektra.modules.resolver_fm_hpu_b.constants = ""
elektra.modules.resolver_fm_hpu_b.constants.ELEKTRA_VARIANT_BASE = "fm"
elektra.modules.resolver_fm_hpu_b.constants.ELEKTRA_VARIANT_SYSTEM = "b"
elektra.modules.resolver_fm_hpu_b.constants.ELEKTRA_VARIANT_USER = "hpu"
elektra.modules.resolver_fm_hpu_b.constants.KDB_DB_DIR = ".dir"
elektra.modules.resolver_fm_hpu_b.constants.KDB_DB_HOME = "/home"
elektra.modules.resolver_fm_hpu_b.constants.KDB_DB_SPEC = "/home/jenkins/libelektra/build/config/spec"
elektra.modules.resolver_fm_hpu_b.constants.KDB_DB_SYSTEM = "/home/jenkins/libelektra/build/config/system"
elektra.modules.resolver_fm_hpu_b.constants.KDB_DB_USER = "cdbg-1/.config"
elektra.modules.resolver_fm_hpu_b.exports = ""
elektra.modules.resolver_fm_hpu_b.exports.checkfile = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.close = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.commit = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.error = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.filename = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.freeHandle = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.get = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.open = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.set = "(binary)"
elektra.modules.resolver_fm_hpu_b.infos = "All information you want to know is in keys below"
elektra.modules.resolver_fm_hpu_b.infos.author = "Markus Raab <[email protected]>"
elektra.modules.resolver_fm_hpu_b.infos.licence = "BSD"
elektra.modules.resolver_fm_hpu_b.infos.needs = ""
elektra.modules.resolver_fm_hpu_b.infos.placements = "rollback getresolver setresolver commit"
elektra.modules.resolver_fm_hpu_b.infos.provides = "resolver"
elektra.modules.resolver_fm_hpu_b.infos.status = "productive maintained specific unittest tested libc nodep configurable default"
elektra.modules.resolver_fm_hpu_b.infos.version = 1
elektra.version = "Below are version information of the Elektra Library you are currently using"
elektra.version.constants = ""
elektra.version.constants.KDB_VERSION = "0.9.2"
elektra.version.constants.KDB_VERSION_MAJOR = 0
elektra.version.constants.KDB_VERSION_MINOR = 9
elektra.version.constants.KDB_VERSION_PATCH = 2
elektra.version.constants.SO_VERSION = 4
elektra.version.infos = "All information you want to know"
elektra.version.infos.author = "Markus Raab <[email protected]>"
elektra.version.infos.description = "Information of your Elektra Installation"
elektra.version.infos.licence = "BSD"
elektra.version.infos.version = 1
(μ°Έκ³ : .description
ν€λ ```
λ¬Έμμ΄μ ν¬ν¨νκ³ μμΌλ―λ‘ Githubμ Markdown νμμ κΉ¨κΈ° λλ¬Έμ μΆλ ₯μμ .description
ν€λ₯Ό μ κ±°νμ΅λλ€.)
IMOλ λͺ¨λ ν€κ° νΉμ Elektra μ€μΉμμ νμλκ³ KDBλ‘ κ°μ Έ μμλ μλλ―λ‘ μΆλ ₯μ μ€μ λ‘ λΉμ΄ μμ΄μΌν©λλ€. μλ§λ μμΆ version.constants
κ²½μ°, κ°κ°μ λ§λ€ μμλ ν€λ₯Ό kdb import
μ λλ‘μ 무μ (λ€λ₯Έ version
λν ν€λ₯Ό λ΄λ³΄λΌ μ μμ΅λλ€νλ€).
~ Postcondition of backend was violated: drop key system:/elektra/modules/cache/infos/licence not belonging to "system:/elektra/modules/cache" with name "modules" but instead to "(null)" with name "(null)" because it is hidden by other mountpoint
λ¬Έμ λ # 3447 λ° cache
νλ¬κ·ΈμΈμμλ§ λ°μν©λλ€. λ°λΌμ # 3447μλ μ¬μ ν λ²κ·Έκ° μμ΅λλ€. κ·Έλ¬λμ΄ kdb export
λ¬Έμ λ₯Ό μμ νλ©΄ λ¬Έμ λ μ κ±°λ©λλ€. ~
μμ : μ¬ν 쑰건 λ¬Έμ λ μ€μ λ‘ λ컀 컨ν μ΄λμμλ λ°μν©λλ€.
μμ 컨ν μ΄λμμ μ€ννμ΅λλ€ (λ€λ₯Έ νλͺ© λ°λ‘ λ€μμ).
ctest -R kdb_global_umount --output-on-failure
κ·Έ ν KDBμ μ‘μΈμ€νλ €λ kdb
λͺ
λ Ήμ postcondition
κ²½κ³ (μ : kdb ls system
ν©λλ€.
λν kdb rm -r system
μ€ννλ €κ³ νλ©΄ λ€μκ³Ό κ°μ κ²°κ³Όκ° λνλ©λλ€.
Interface: Read only plugin, 'kdbSet' not supported but the key system/elektra/version (value Below are version information of the Elektra Library you are currently using) tried to be removed
kdb rm -r system
μ€ν¨λ κ³ μμ
λλ€. 무μμ κΈ°λ νμ΅λκΉ?
νμ§λ§ μ€λ₯ λ©μμ§κ° λ§€μ° λμλ€λ κ²μ μΈμ ν΄μΌν©λλ€ (λ¬Έλ²μ μΌλ‘λ μλ―Έ μ μΌλ‘λ μ¬μ©μκ° ν€κ° μλ 무μΈκ°λ₯Ό μλνμ΅λλ€).
무μμ κΈ°λ νμ΅λκΉ?
곡ννκ² λ§νμλ©΄, kdb rm -r system
λ μ€μ μμ€ν
μμ κ·Έλ€μ§ μλ―Έκ° μμ΅λλ€. κ°λ° μ€μ μμλ μ μ© ν μ μμ§λ§ νμΌμ μλμΌλ‘ μμ νλ κ²λ μ΄λ ΅μ§ μμ΅λλ€.
νμ§λ§ μ€λ₯ λ©μμ§κ° λ§€μ° λμλ€λ κ²μ μΈμ ν΄μΌν©λλ€.
λλ μ΄κ²μ΄ λλ₯Ό κ°μ₯ νΌλμ€λ½κ²νλ κ²μ΄λΌκ³ μκ°νλ€. λ©μμ§μ "μ κ±° μ€ ... νμ©λμ§ μμ"κ³Ό κ°μ λ΄μ©μ΄ νμλλ©΄ λ΄κ° μλͺ»ν κ²μμ μ΄ν΄νμ κ²μ
λλ€. λν AFAIKλ Interface Errors
λ₯Ό μ¬μ©μκ° μμΈμ΄ μλ μ½λ μ€λ₯λ‘ μ μνμ΅λλ€.
μΌλ°μ μΌλ‘ version
νλ¬κ·ΈμΈ λ° μ½κΈ° μ μ© νλ¬κ·ΈμΈ : kdb rm
νΈμΆμ μ½κΈ° μ μ© νλ¬κ·ΈμΈμμ μ΄λ¬ν μ€λ₯λ₯Ό 무μνλ λ°©λ²μ΄ μμ΄μΌνλ€κ³ μκ°ν©λλ€ ( kdb rm -rf
).
μ΄λ€ μμ€μμλ μ½κΈ° μ μ© ν€λ₯Ό "μ κ±°"νλ κ²μ΄ ν©λ¦¬μ μ
λλ€. μ μ΄λ μ½κΈ° μ μ© λ§μ΄νΈ μ§μ μλμ λͺ¨λ κ²μ ν λ²μ μ κ±° ν λ λ§μ
λλ€. kdb rm -r some/mountpoint
λ some/mountpoint
λν μ 체 κΈ°λ³Έ κ΅¬μ± νμΌμ μ κ±°ν΄μΌν©λλ€. μ¦, μ¬ν 쑰건μ κ΅¬μ± νμΌμ΄ μλ€λ κ²μ
λλ€. μ½κΈ° μ μ© νλ¬κ·ΈμΈ (μ μ΄λ version
μ²λΌ μλνλ νλ¬κ·ΈμΈ)μλ κ΅¬μ± νμΌμ΄ μμΌλ―λ‘ μ¬ν μ‘°κ±΄μ΄ μλμΌλ‘ μΆ©μ‘±λ©λλ€.
κ°λ° μ€μ μμ μ μ© ν μ μμ΅λλ€.
κ°λ°μλ kdb reset
μμ΅λλ€.
λ©μμ§μ "μ κ±° μ€ ... νμ©λμ§ μμ"κ³Ό κ°μ λ΄μ©μ΄ νμλλ κ²½μ°
λ μ μ μΌλ‘ λμν©λλ€! # 3498μ μ΄λ?
μλ§λ kdb rm -rf
-f
λΉμ μ΄ κ·Έκ²μ κ°μ ν μμκ³ λ¬΄μν λΏμ΄λ―λ‘ νΌλ μ€λ½μ΅λλ€. κ·Έλμ --without-elektra
μ΄ λ μ ν©ν κΉμ?
μ 체 κΈ°λ³Έ κ΅¬μ± νμΌμ μ κ±°ν΄μΌν©λλ€.
μ, μ΄κ²μ΄ μ¬μ€μ΄λ©° 리쑸λ²κ° μ²λ¦¬ν©λλ€.
μ¬ν μ‘°κ±΄μ΄ μλμΌλ‘ μΆ©μ‘±λ©λλ€.
Naja, kdb rm key
kdb get key
μ°Ύμ μμλ ν€λ₯Ό λ°ννλ μ¬ν 쑰건λ μμ΅λλ€. μ΄ μ¬ν 쑰건μ μΆ©μ‘±λμ§ μμ΅λλ€.
μ€λ₯ λ©μμ§λ₯Ό λ³κ²½νλ©΄ μΆ©λΆν©λλ€.
μ΄ λ¬Έμ μ μ€λͺ λ λλ¨Έμ§ λ²κ·Έκ° μμ΅λκΉ?
AFAIKμ΄ λκΈκ³Ό λ€μ λκΈ (μ¦, μλ λ¬Έμ )μ μμ§ ν΄κ²°λμ§ μμμ΅λλ€. https://github.com/ElektraInitiative/libelektra/issues/3299#issuecomment -695814469
μ£μ‘ν©λλ€. μ²μμλμ΄ λ¬Έμ λ₯Ό μλͺ» μ΄ν΄ ν κ² κ°μ΅λλ€. μ΄μ λ΄κ° μ¬λ°λ₯΄κ² μ΄ν΄νλμ§ μμ½ ν΄ λ³΄κ² μ΅λλ€.
μΊμμ κ΄μ μμ μ°λ¦¬λ mmap νμΌμ κ°λ₯ν ν λ§μ΄ μ¬μ¬μ©νκ³ μΆμ΅λλ€. λκ΅°κ°κ° νΈμΆνλ κ²½μ° λ°λΌμ, kdbGet
μ "system/this"
λ° λ§μ΄νΈ μ§μ μ΄ μ€μ λ‘ "system"
, μ°λ¦¬λ μ§μλ©λλ€ "system"
μμ ν. λκ΅°κ°κ° λ€μ νΈμΆνλ©΄ kdbGet
μ "system/other"
, μΊμλ κ½€μΌλ‘ μΌμ μλ, μ΄λ μ΄λ―Έ μ‘΄μ¬ν©λλ€. κΈ°λ³Έμ μΌλ‘ λ§μ΄νΈ μ§μ λ§λ€ mmap μΊμ νμΌμ μμ±νμ§λ§ λͺ¨λ ν€λ₯Ό λ§μ΄νΈ μ§μ μλμ μ μ₯ν©λλ€.
μ§κΈ λ¬Έμ λ₯Ό μ¬λ°λ₯΄κ² μ΄ν΄νλ€λ©΄ "system/elektra/modules"
μΊμ±κ³Ό μ μ¬νκ² λͺ¨λ λ€μκ³Ό κ°μ κ²μ
λλ€.
νΈμ§ : νμ¬ μΊμλ₯Ό κ°μ Έ μ€λ©΄ ksAppend λ° κΈ°ν μμ
μ μμ ν νΌν μ μμ΅λλ€. λ°λΌμ μ°λ¦¬λ OPMPHMκ³Ό λͺ¨λ κ²μ 보쑴ν©λλ€. μμ€ν
λ§μ΄νΈ μ§μ μ λλ¨Έμ§ λΆλΆμ ksAppend-ing "system/elektra/modules"
λ₯Ό μμνλ©΄ νμ€ν μ±λ₯μ΄ μ νλ©λλ€. μμ€ν
λ€μ μ€νμ΄μ€μ κ΄λ ¨μ΄ μμ μλ μμ§λ§ λͺ¨λ κ³³μ μ΄μ κ°μ μ£μ§ μΌμ΄μ€κ° μμΌλ©΄ μ±λ₯μ΄ νμ€ν μ ν λ κ²μ
λλ€.
μ°Έκ³ : kdb rm system
νλͺ©μ λν λκΈμ ν΄κ²° λ κ²μΌλ‘ νμνμ¬ Githubμ μν΄ μ¨κ²¨μ‘μ΅λλ€. κ·Έλ¬λ©΄μ΄ λ¬Έμ κ° μ’ λ λͺ
ν ν΄μ§λλ€.
μ§κΈ λ¬Έμ λ₯Ό μ¬λ°λ₯΄κ² μ΄ν΄νλ€λ©΄
"system/elektra/modules"
μΊμ±κ³Ό μ μ¬νκ² λͺ¨λ λ€μκ³Ό κ°μ κ²μ λλ€.
- μ€λ₯ λ°
- μ΄μ¨λ μ΄λ¬ν ν€λ₯Ό κ°μ Έ μ€λ κ²μ΄ λΉ λ₯΄κΈ° λλ¬Έμ κ΄λ ¨μ΄ μμ΅λλ€.
κ·Έλ₯ μΊμ±νλ κ²μ μλͺ»λ κ²μ
λλ€.νμ§λ§ ν€κ° λ³κ²½λμμμ κ°μ§νλ λ‘μ§μ΄μλ ν μ¬μ ν μΊμ± ν μ μμ΅λλ€. μλμ λν΄μλ μΈκΈ ν μ μμ§λ§ μΊμλ₯Ό μ¬μ©νλ κ²μ΄ μ¬μ ν λ λΉ λ₯Ό μ μμ΅λλ€. λΉμ μ΄ λ§νλ―μ΄, κ·Έκ²μ ksAppend
λ₯Ό νΌνκ³ λν νλ¬κ·ΈμΈμ λν λ§μ νΈμΆμ νΌν©λλ€.
μλ λ¬Έμ λ kdb export
μ λμμ κ΄ν κ²μ
λλ€. μΆλ ₯μ system/elektra/modules
λλ system/elektra/version
μλμ ν€λ₯Ό ν¬ν¨ν΄μλ μλ©λλ€. μ΄λ Elektra μ€μΉμλ§ ν΄λΉλλ©° λ€λ₯Έ KDBλ‘ κ°μ Έμ¬ μ μκΈ° λλ¬Έμ
λλ€.
μ΄ ν€μ μΆμ²λ₯Ό μ‘°μ¬νμ§ μμμΌλ―λ‘ cache
νλ¬κ·ΈμΈμ΄ μ€μ λ‘ μ¬κΈ°μ ν¬ν¨λμ΄ μλμ§ νμ€νμ§ μμ΅λλ€. κ°μ₯ μ’μ ν΄κ²°μ±
μ νμ λλ¬ΈμΌ μ μμ΅λλ€ ksCut
μ΄ λΆλΆμμ kdb export
. μ΄λ κ²νλ©΄ λ¬Έμ κ° λ³κ²½ λμ΄λ λ€μ λνλ μ μμ΅λλ€.
"λ°±μλμ μ¬ν μ‘°κ±΄μ΄ μλ°λμμ΅λλ€"λ¬Έμ λ μμ΅λλ€. μ§κΈκΉμ§ λ΄ μ΄ν΄λμ΄ λ¬Έμ κ° system/elektra/modules
μμ ν€λ₯Ό μμ±νλ kdb export
λ‘ μΈν κ²μ΄μ§λ§ 100 % νμ ν©λλ€.
https://github.com/ElektraInitiative/libelektra/issues/3299#issuecomment -695814469μ λ¨κ³λ₯Ό λ°λ₯Έ λ€μ μ€ννλ©΄
ctest -R kdb_global_umount --output-on-failure
bin/kdb ls system
(λ€μ λκΈμμ λ§νλ―μ΄) λ€μμ λ§μ΄ μ»μ μ μμ΅λλ€.
Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/licence not belonging to "system/elektra/modules/cache" with name "modules" but instead to "(null)" with name "(null)" because it is hidden by other mountpoint
μ΄κ²μ μ€μ λ‘ cache
νλ¬κ·ΈμΈμ λν μ μΌν μ°Έμ‘°μ
λλ€. AFAICT μ΄κ²μ μ¬κΈ°μ μΌμ΄λλ μΌμ
λλ€.
kdb export
λ° kdb import
ν©λλ€.system/elektra/modules/cache
μ ν€κ° elektra.ecf
νμΌμ μ§μμ μΌλ‘ κΈ°λ‘λ©λλ€.kdb ls system
λ₯Ό ν΅ν΄ kdbGet
νμμ νΈμΆνλ©΄ λ¬Έμ κ° λ°μν©λλ€.system/elektra/modules/...
ν€κ° λμ€ν¬μ κΈ°λ‘λμ§ μμμΌνλ€κ³ νμ ν©λλ€.elektra.ecf
μμ system/elektra/modules/...
ν€λ₯Ό _ μλ _ μ κ±°νλ κ²μ
λλ€.μλ§λ μ΄κ²μ μΊμκ° μλ kdb import
μμ μμ λμ΄μΌν©λλ€.
μ κ³ ν΄μ£Όμ μ κ°μ¬ν©λλ€!
kdbGet
μμ λ°ν λ KeySetμμλ κ²½μ° μΊμλ μ΄λ¬ν (λͺ¨λ ) ν€λ₯Ό νμ€ν μ μ₯ν©λλ€. μΊμμ λν μμΈλ μμ΅λλ€. κ·Έλ¬λ λ§νλ―μ΄ kdb import
μμ μ΄λ¬ν ν€λ₯Ό νμ©νλ κ²μ μλ―Έκ° μμ΅λλ€. μ€λͺ
μμμ΄ λ¬Έμ λ₯Ό μ¬ννκ³ μμ ν μ μλμ§ νμΈνκ² μ΅λλ€.
kdb import
μ¬μ©ν λλ§ λ¬Έμ κ° λ°μνλ©΄ κ°μ Έ μ€κΈ°μ μ΄λ¬ν νΉμ ν€λ₯Ό μμ νκΈ° λ§νλ©΄λ©λλ€.
μΊμκ° λͺ¨λ κ²μ μμ ν λ°νν΄μΌνλ€λ @mpranjμ λμν©λλ€.
μΆλ ₯μ system / elektra / modules λλ system / elektra / version μλμ ν€λ₯Ό ν¬ν¨ν΄μλ μλ©λλ€. μ΄λ Elektra μ€μΉμλ§ ν΄λΉλλ©° λ€λ₯Έ KDBλ‘ κ°μ Έ μμλ μλ©λλ€.
λ΄λ³΄λ΄κΈ°λ κ°μ Έ μ€κΈ°λΏλ§ μλλΌ μ¬μ©μμ λν μ¬λ¬ ν€ / κ°μ νμνκΈ°μν κ²μ
λλ€. λͺ¨λ λ²μ μ 보λ₯Ό λ³΄λ €λ©΄ kdb export system/elektra/version/constants simpleini
μ λ¬Έμ κ° μμ΅λλ€.
μ΄λ¬ν ν€μ μΆμ²λ₯Ό μ‘°μ¬νμ§ μμμΌλ―λ‘ μΊμ νλ¬κ·ΈμΈμ΄ μ€μ λ‘ μ¬κΈ°μ ν¬ν¨λμ΄ μλμ§ νμ€νμ§ μμ΅λλ€. κ°μ₯ μ’μ ν΄κ²°μ± μ kdb λ΄λ³΄λ΄κΈ°μμ μ΄λ¬ν λΆλΆμ νμ ksCutνλ κ²μ λλ€. μ΄λ κ²νλ©΄ λ¬Έμ κ° λ³κ²½ λμ΄λ λ€μ λνλ μ μμ΅λλ€.
μ΄λ¬ν ksCut
λ --without-elektra
λΌκ³ λ§ν λ λ°μν©λλ€. μ°λ¦¬κ° ν μμλ κ²μ κΈ°λ³Έκ°μ λ³κ²½νλ κ²μ
λλ€ : / elektraλ₯Ό λͺ
μ μ μΌλ‘ κ°μ Έ μ€κΈ° / λ΄λ³΄λ΄κΈ° λλ --with-elektra
λΌκ³ λ§νλ κ²½μ°λ₯Ό μ μΈνκ³ κΈ°λ³Έμ μΌλ‘ elektra μ μΈ.
λ°±μλμ μ¬ν μ‘°κ±΄μ΄ μλ°λμμ΅λλ€.
μ΄κ²μ κ΄λ ¨μλ λ²κ·Έμ²λΌ 보μ
λλ€. (μ λ μ½λκ° --without-elektra
μ¬μ©νμ§ μμ μ μμ΅λλ€). https://github.com/ElektraInitiative/libelektra/issues/3299#issuecomment -695814469 κ·Έλ¬λ κ·ΈλμΌ ν κ² κ°μ΅λλ€. (λλ μ¬ν ν μ μμ΅λλ€. Error response from daemon: pull access denied for elektra-fedora-32, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
λ°μ΅λλ€)
λλ μ¬ν ν μ μλ€
μ΄ μ΄λ―Έμ§λ Docker νλΈμ κ²μνμ§ μμμ΅λλ€.
μ¬κΈ°μ μ μ 쑰건μ κ·Έκ°μμ κ³ μ νμκΈ° μ΄λ―Έμ§λ₯Ό κ΅¬μΆ ν κ²μ
λλ€ scripts/docker/fedora/32/Dockerfile
νκ³ ν¨κ» λΉλ νκ·Έ -t elektra-fedora-32:latest
μ€ννλ κ²½μ° docker build
.
λ€μκ³Ό κ°μ κ² :
cd scripts/docker/fedora/32/
docker build -t elektra-fedora-32:latest -f ./Dockerfile .
κ°μ¬ν©λλ€. μ, μ΄μ λ§μ€ν°μμ Postcondition of backend was violated
λ¬Έμ λ₯Ό μ¬ν ν μ μμ΅λλ€ (λ컀 μ΄λ―Έμ§μ @kodebach μ μ€λͺ
λ
Sorry, 17 warnings were issued ;(
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/exports not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/exports/close not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/exports/get not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/exports/open not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/exports/set not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/author not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/description not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/licence not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/metadata not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/needs not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/placements not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/provides not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/recommends not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/status not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
Sorry, module kdb issued the warning C01320:
Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/version not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
λ¬Έμ λ kdb ls
λλ kdb cache clear
μ κ°μ΄ λ°μνκΈ° λλ¬Έμ kdb export
μ λΆλͺ
ν κ΄λ ¨μ΄ μμ΅λλ€.
ν₯λ―Έλ‘κ²λ kdb cache clear
λ λμμ΄λμ§ μμ§λ§ μ¬μ ν μΊμ λ¬Έμ μΌ μ μμ΅λλ€ ( kdb
λκ΅¬κ° λ¨Όμ KDB
λ₯Ό μ¬μ©νμ¬ κ΅¬μ±μ κ°μ Έ μ€κΈ° λλ¬Έμ).
@mpranj λΉμ μ μμ΄λμ΄κ° μμ΅λκΉ?
μ°λ¦¬κ° ν μμλ κ²μ κΈ°λ³Έκ°μ λ³κ²½νλ κ²μ λλ€. / elektraλ₯Ό λͺ μ μ μΌλ‘ κ°μ Έ μ€κΈ° / λ΄λ³΄λ΄κΈ°νκ±°λ --with-elektraλΌκ³ λ§νλ κ²½μ°λ₯Ό μ μΈνκ³ κΈ°λ³Έμ μΌλ‘ elektraλ₯Ό μ μΈν©λλ€.
μ, νμ€ν λ λμ ν΄κ²°μ±
μ΄ λ κ²μ
λλ€. μ΄μμ μΌλ‘λ system/elektra/modules
/ system/elektra/version
μ λλ¨Έμ§ system/elektra
ν©λλ€. λ§μ΄νΈ μ§μ κ΅¬μ± λ° μ μ νλ¬κ·ΈμΈ ꡬμ±μ λ°νμμ μμ±λλ λͺ¨λ λ° λ²μ ν€λ³΄λ€ ν¨μ¬ λ μ μ©ν©λλ€.
λ¬Έμ λ
kdb ls
λλkdb cache clear
μ κ°μ΄ λ°μνκΈ° λλ¬Έμkdb export
μ λΆλͺ ν κ΄λ ¨μ΄ μμ΅λλ€.
λ΄κ° μΈκΈνλ―μ΄ "μ¬ν 쑰건"νλͺ©μ kdb import
μ λ²κ·Έ μΌ κ°λ₯μ±μ΄ λμ΅λλ€.
ν₯λ―Έλ‘κ²λ
kdb cache clear
λ λμμ΄λμ§ μμ΅λλ€.
μ κ·Έλ΄κΉμ? λ΄κ° λ§νλ―μ΄ λ¬Έμ λ system/elektra/modules
ν€κ° elektra.ecf
μ μ₯λλ€λ κ²μ
λλ€. μμ λ¨κ³λ₯Ό μννλ€λ©΄ (νΉν λμΌν cmake
μ΅μ
μ μ¬μ©) λ€μμ μ€ννμ¬ νμΈν μ μμ΅λλ€.
cat config/system/elektra.ecf
build
λλ ν 리 λ΄.
λ΄κ° λ§νλ―μ΄ "μ¬ν 쑰건"νλͺ©μ kdb κ°μ Έ μ€κΈ°μ λ²κ·Έ μΌ κ°λ₯μ±μ΄ λμ΅λλ€.
kdb import
λ KeySetμ μμ±νκ³ kdbSet
νΈμΆνλ κ² μ΄μμ μννμ§ μμΌλ―λ‘ λ¬Έμ κ° kdbSet
μ΄λκ°μμλ κ² κ°μ΅λλ€. system/elektra/modules
무μμ΄λ μ μ₯νλ μ¬λ°λ₯Έ λμμ μ€λ₯ λλ νκΈ° μ¬μΌνλ©° νμ€ν μ§μλμ§ μμμΌν©λλ€. κ·Έλ¬λ λΆλͺ
ν μ΄κ²μ νλμ΄ μλλλ€.
kdb set system/elektra/modules/NOTALLOWED
kdb ls system/elektra/modules
#> system/elektra/modules/NOTALLOWED
#> system/elektra/modules/cache
...
λ°λΌμ NOTALLOWED νλ¬κ·ΈμΈμ΄ λ§μ΄νΈλλ©΄ μ¬κΈ°μ μ€λͺ
λ λ¬Έμ κ° μμ΅λλ€. μ°λ¦¬κ° νμλ‘νλ κ·Έλμ kdbSet
μ΄λ€ μλμ μ€ν¨μ μΈ system/elektra/modules
.
μ€μ λ‘ μ°λ¦¬λ μ 체 /elektra
κ³μΈ΅ ꡬ쑰μ μλ―Έλ₯Ό μ μν΄μΌν©λλ€. μλ§λ λ ν° μμ
μΌ κ²μ
λλ€ ...
λ¬Έμ λ μμ€ν / elektra / λͺ¨λ ν€κ° elektra.ecfμ μ μ₯λμ΄ μλ€λ κ²μ λλ€.
μ£μ‘ν©λλ€. μ¬ννλ €λ λκΈ μ¬μ΄λ₯Ό λ°μ΄ λ€λλ©΄μ λ³΄μ§ λͺ»νμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
AFAIKμ΄ λκΈκ³Ό λ€μ λκΈ (μ¦, μλ λ¬Έμ )μ μμ§ ν΄κ²°λμ§ μμμ΅λλ€. https://github.com/ElektraInitiative/libelektra/issues/3299#issuecomment -695814469