Libelektra: μΊμ‹œ : kdb 내보내기 μ‹œμŠ€ν…œ

에 λ§Œλ“  2019λ…„ 11μ›” 28일  Β·  29μ½”λ©˜νŠΈ  Β·  좜처: ElektraInitiative/libelektra

# 3115μ—μ„œ kdb export system (PRμ—μ„œ kdb export system:/ )κ°€ system/elektra/modules λͺ¨λ“  ν•­λͺ©μ„ λ‚΄ λ³΄λƒ…λ‹ˆλ‹€. 이것은 μ˜λ„ 된 κ²ƒμž…λ‹ˆκΉŒ?

ꡬ체적인 상황은 https://github.com/ElektraInitiative/libelektra/pull/3115#issuecomment -559576223을 μ°Έμ‘°

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

AFAIK이 λŒ“κΈ€κ³Ό λ‹€μŒ λŒ“κΈ€ (즉, μ›λž˜ 문제)은 아직 ν•΄κ²°λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. https://github.com/ElektraInitiative/libelektra/issues/3299#issuecomment -695814469

λͺ¨λ“  29 λŒ“κΈ€

λ¬Όλ‘ , μ™œ μ•ˆλ©λ‹ˆκΉŒ? λ˜ν•œ κ°€μ Έ μ˜€κΈ°μ— μœ μš©ν•˜μ§€ μ•Šμ€ 버전 및 기타 ν•­λͺ©μ„ λ‚΄ λ³΄λƒ…λ‹ˆλ‹€. μ΄λŸ¬ν•œ 뢀뢄을 λ‚΄ 보내지 μ•ŠμœΌλ €λ©΄ --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. Elektra의 λͺ¨λ“  λ‚΄λΆ€κ°€ 내보내 μ§€μ§€λ§Œ Elektraλ₯Ό μ—‰λ§μœΌλ‘œ λ§Œλ“€μ§€ μ•Šλ„λ‘ 버전 확인도 μžˆμŠ΅λ‹ˆλ‹€.
  2. Elektra의 λ‚΄λΆ€λ₯Ό κ°€μ Έ μ˜€κ±°λ‚˜ λ‚΄ 보내지 μ•ŠμœΌλ―€λ‘œ 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" 캐싱과 μœ μ‚¬ν•˜κ²Œ λͺ¨λ‘ λ‹€μŒκ³Ό 같은 κ²ƒμž…λ‹ˆλ‹€.

  1. 였λ₯˜ 및
  2. μ–΄μ¨Œλ“  μ΄λŸ¬ν•œ ν‚€λ₯Ό κ°€μ Έ μ˜€λŠ” 것이 λΉ λ₯΄κΈ° λ•Œλ¬Έμ— 관련이 μ—†μŠ΅λ‹ˆλ‹€.

νŽΈμ§‘ : ν˜„μž¬ μΊμ‹œλ₯Ό κ°€μ Έ 였면 ksAppend 및 기타 μž‘μ—…μ„ μ™„μ „νžˆ ν”Όν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μš°λ¦¬λŠ” OPMPHMκ³Ό λͺ¨λ“  것을 λ³΄μ‘΄ν•©λ‹ˆλ‹€. μ‹œμŠ€ν…œ 마운트 μ§€μ μ˜ λ‚˜λ¨Έμ§€ 뢀뢄에 ksAppend-ing "system/elektra/modules" λ₯Ό μ‹œμž‘ν•˜λ©΄ ν™•μ‹€νžˆ μ„±λŠ₯이 μ €ν•˜λ©λ‹ˆλ‹€. μ‹œμŠ€ν…œ λ„€μž„ μŠ€νŽ˜μ΄μŠ€μ™€ 관련이 없을 μˆ˜λ„ μžˆμ§€λ§Œ λͺ¨λ“  곳에 이와 같은 엣지 μΌ€μ΄μŠ€κ°€ 있으면 μ„±λŠ₯이 ν™•μ‹€νžˆ μ €ν•˜ 될 κ²ƒμž…λ‹ˆλ‹€.

μ°Έκ³  : kdb rm system ν•­λͺ©μ— λŒ€ν•œ λŒ“κΈ€μ„ ν•΄κ²° 된 κ²ƒμœΌλ‘œ ν‘œμ‹œν•˜μ—¬ Github에 μ˜ν•΄ μˆ¨κ²¨μ‘ŒμŠ΅λ‹ˆλ‹€. 그러면이 λ¬Έμ œκ°€ μ’€ 더 λͺ…ν™• ν•΄μ§‘λ‹ˆλ‹€.

μ§€κΈˆ 문제λ₯Ό μ˜¬λ°”λ₯΄κ²Œ μ΄ν•΄ν–ˆλ‹€λ©΄ "system/elektra/modules" 캐싱과 μœ μ‚¬ν•˜κ²Œ λͺ¨λ‘ λ‹€μŒκ³Ό 같은 κ²ƒμž…λ‹ˆλ‹€.

  1. 였λ₯˜ 및
  2. μ–΄μ¨Œλ“  μ΄λŸ¬ν•œ ν‚€λ₯Ό κ°€μ Έ μ˜€λŠ” 것이 λΉ λ₯΄κΈ° λ•Œλ¬Έμ— 관련이 μ—†μŠ΅λ‹ˆλ‹€.

κ·Έλƒ₯ μΊμ‹±ν•˜λŠ” 것은 잘λͺ»λœ κ²ƒμž…λ‹ˆλ‹€.ν•˜μ§€λ§Œ ν‚€κ°€ λ³€κ²½λ˜μ—ˆμŒμ„ κ°μ§€ν•˜λŠ” λ‘œμ§μ΄μžˆλŠ” ν•œ μ—¬μ „νžˆ 캐싱 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 속도에 λŒ€ν•΄μ„œλŠ” μ–ΈκΈ‰ ν•  수 μ—†μ§€λ§Œ μΊμ‹œλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ—¬μ „νžˆ 더 λΉ λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 당신이 λ§ν–ˆλ“―μ΄, 그것은 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에 μ €μž₯λ˜μ–΄ μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

μ£„μ†‘ν•©λ‹ˆλ‹€. μž¬ν˜„ν•˜λ €λŠ” λŒ“κΈ€ 사이λ₯Ό λ›°μ–΄ λ‹€λ‹ˆλ©΄μ„œ 보지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰

κ΄€λ ¨ 문제

markus2330 picture markus2330  Β·  3μ½”λ©˜νŠΈ

markus2330 picture markus2330  Β·  3μ½”λ©˜νŠΈ

markus2330 picture markus2330  Β·  3μ½”λ©˜νŠΈ

mpranj picture mpranj  Β·  3μ½”λ©˜νŠΈ

sanssecours picture sanssecours  Β·  3μ½”λ©˜νŠΈ