DNF 5 ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๊ฐœ๋ฐœ ๋ฐ PackageKit ๋Œ€์ฒด ์‹œ์ž‘

Red Hat์˜ Daniel Mach ัะพะพะฑั‰ะธะป Python์œผ๋กœ ๊ตฌํ˜„๋œ DNF ๋กœ์ง์ด C++๋กœ ์ž‘์„ฑ๋œ libdnf ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ „์†ก๋˜๋Š” DNF 5 ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๊ฐœ๋ฐœ์˜ ์‹œ์ž‘์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. DNF 5๋Š” Fedora 33 ๊ฐœ๋ฐœ ์ค‘ 2020์›”๋ถ€ํ„ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ•  ์˜ˆ์ •์ด๋ฉฐ, ์ดํ›„ 2021๋…„ 4์›” Rawhide ์ €์žฅ์†Œ์— ์ถ”๊ฐ€๋˜๊ณ  4๋…„ 8์›” DNF XNUMX๋ฅผ ๋Œ€์ฒดํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. DNF XNUMX ๋ธŒ๋žœ์น˜์˜ ์œ ์ง€ ๊ด€๋ฆฌ๋Š” ๊ทธ๋Œ€๋กœ ๊ณ„์†๋ฉ๋‹ˆ๋‹ค. Red Hat Enterprise Linux XNUMX์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

API/ABI ์ˆ˜์ค€์—์„œ ํ˜ธํ™˜์„ฑ์„ ๊นจ์ง€ ์•Š๊ณ ๋Š” ์ฝ”๋“œ ๊ฐœ๋ฐœ์„ ์ง€์†ํ•˜๋Š” ๊ฒƒ์ด ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์— ์ด๋ฅด๋ €๋‹ค๋Š” ์ ์— ์ฃผ๋ชฉ๋œ๋‹ค. ์ด๋Š” ์ฃผ๋กœ ๋‹ค์Œ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์†์‹ค PackageKit์˜ ๊ด€๋ จ์„ฑ๊ณผ "libhif" API๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋Š” libdnf๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋™์‹œ์— API๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ์˜๋„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค์™€ API ์ˆ˜์ค€์—์„œ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ตœ์šฐ์„  ๊ณผ์ œ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

DNF์˜ Python API์— ๋Œ€ํ•œ ์ง€์›์€ ์œ ์ง€๋˜์ง€๋งŒ Python์œผ๋กœ ์ž‘์„ฑ๋œ ๋น„์ฆˆ๋‹ˆ์Šค ๋…ผ๋ฆฌ๋Š” libdnf(C++) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ „์†ก๋˜์–ด ๋ฐฐํฌํŒ์—์„œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์˜ ๋™์ผํ•œ ์ž‘๋™์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์€ C++ API๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Python API๊ฐ€ Wrapper ํ˜•ํƒœ๋กœ ์ž๋™ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
Go, Perl ๋ฐ
๋ฃจ๋น„. C++ API๊ฐ€ ์•ˆ์ •ํ™”๋˜๋ฉด ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ C API๊ฐ€ ์ค€๋น„๋˜์–ด rpm-ostree๊ฐ€ ์ด์ „๋ฉ๋‹ˆ๋‹ค. Hawkey Python API๊ฐ€ ์ œ๊ฑฐ๋˜๊ณ  ๋‹ค์Œ์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. libdnf ํŒŒ์ด์ฌ API.

DNF์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ํ…Œ์ŠคํŠธ ๋ชจ์Œ(์•ฝ 1400๊ฐœ ํ…Œ์ŠคํŠธ)์œผ๋กœ ์ธํ•ด API ์žฌ์ž‘์—…์ด ์ตœ์ข… ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ์ธ์ˆ˜ ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐ ์ถœ๋ ฅ์ด ์•ฝ๊ฐ„ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์ž˜ ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฑฐ๋œ ๋ฒ„์ „์—์„œ ๋งˆ์ดํฌ๋กœ์—”ํ”„, ์ปจํ…Œ์ด๋„ˆ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ DNF ๊ธฐ๋Šฅ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ๊ตฌํ˜„ํ•  ๊ณ„ํš์ด์ง€๋งŒ ๊ธฐ๋Šฅ์˜ ์™„์ „ํ•œ ํŒจ๋ฆฌํ‹ฐ ๋‹ฌ์„ฑ์€ ๊ณ ๋ ค๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋Œ€์‹ ์— ํŒจํ‚ค์ง€ ํ‚คํŠธ ๊ทธ๋ž˜ํ”ฝ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ํŒจํ‚ค์ง€ ๋ฐ ์—…๋ฐ์ดํŠธ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ƒˆ๋กœ์šด DBus ์„œ๋น„์Šค๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ณธ ์„œ๋น„์Šค๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฐœ๋ฐœํ•  ์˜ˆ์ •์ด๋ฏ€๋กœ ์ œ์ž‘์— ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PackageKit์€ ์ตœ๊ทผ์— ๊ฐœ๋ฐœ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๊ด€๋ จ์„ฑ ์ƒ์‹ค๋กœ ์ธํ•ด 2014๋…„๋ถ€ํ„ฐ ์œ ์ง€ ๊ด€๋ฆฌ ๋ชจ๋“œ์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Snaps ๋ฐ Flatpak ์‹œ์Šคํ…œ์˜ ๋ฐœ์ „์œผ๋กœ ๋ฐฐํฌํŒ์€ PackageKit์— ๋Œ€ํ•œ ๊ด€์‹ฌ์„ ์žƒ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋” ์ด์ƒ ๋นŒ๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํŽ˜๋„๋ผ ์‹ค๋ฒ„ ๋ธ”๋ฃจ. ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ถ”์ƒํ™” ๊ณ„์ธต์€ ๊ธฐ๋ณธ GNOME ๋ฐ KDE ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ œ์–ด ์„ผํ„ฐ์—์„œ ์ฃผ๋กœ ์ œ๊ณต๋˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž ์ˆ˜์ค€์—์„œ flatpak ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ค๋Š” ํ†ตํ•ฉ ์‹œ์Šคํ…œ API๋Š” ์ด์ „๋งŒํผ ์œ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€