RPM 4.16 ๋ฆด๋ฆฌ์Šค

XNUMX๋…„์˜ ๊ฐœ๋ฐœ ๋์— ์ผ์–ด๋‚ฌ๋‹ค ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๋ฆด๋ฆฌ์Šค RPM 4.16.0. RPM4 ํ”„๋กœ์ ํŠธ๋Š” Red Hat์—์„œ ๊ฐœ๋ฐœํ–ˆ์œผ๋ฉฐ RHEL(ํŒŒ์ƒ ํ”„๋กœ์ ํŠธ CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux ํฌํ•จ), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen ๋ฐ ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€. ์ด์ „์— ๋…๋ฆฝ์ ์ธ ๊ฐœ๋ฐœํŒ€ ๊ฐœ๋ฐœ๋จ ๊ณ„ํš RPM5, ์ด๋Š” RPM4์™€ ์ง์ ‘์ ์ธ ๊ด€๋ จ์ด ์—†์œผ๋ฉฐ ํ˜„์žฌ ํ๊ธฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(2010๋…„ ์ดํ›„ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์Œ). ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ๋ฐฐํฌ์ž GPLv2 ๋ฐ LGPLv2์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ฃผ๋ชฉํ• ๋งŒํ•œ ๊ฐœ๋Ÿ‰ RPM 4.16์—์„œ:

  • SQLite DBMS์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๋ฐฑ์—”๋“œ๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฑ์—”๋“œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค BerkeleyDB ๊ธฐ๋ฐ˜ ๋ฐฑ์—”๋“œ ๋Œ€์‹  Fedora Linux 33์—์„œ.
  • ์ฝ๊ธฐ ์ „์šฉ ๋ชจ๋“œ๋กœ ์ž‘๋™ํ•˜๋Š” BDB(Oracle Berkeley DB)์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์‹คํ—˜์  ๋ฐฑ์—”๋“œ๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋ ˆ๊ฑฐ์‹œ BerkeleyDB ๋ฐฑ์—”๋“œ์˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์‹คํ—˜์ ์ธ LMDB ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—”๋“œ๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • NDB ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ฐฑ์—”๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์•ˆ์ •์ ์œผ๋กœ ์„ ์–ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • "%if" ๋งคํฌ๋กœ ๋ฐ ํ‘œํ˜„์‹์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. thenar ์—ฐ์‚ฐ์ž (%{expr:1==0?"yes":"no"}) ๋‚ด์žฅ๋œ ๋ฒ„์ „ ๋น„๊ต ๊ธฐ๋Šฅ('%[v"3:1.2-1โ€ณ > v"2.0โ€ณ]')์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์ฝ˜ํ…์ธ ์˜ MIME ์œ ํ˜•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํŒŒ์ผ์„ ๋ถ„๋ฅ˜ํ•˜๋Š” ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ๋งคํฌ๋กœ.
  • C ๋ฐ Python์šฉ ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐ ๋น„๊ต API์˜ ์ƒˆ ๋ฒ„์ „์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • brp-strip ๋ฐ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ ๊ตฌ์„ฑ ์š”์†Œ ์‹คํ–‰์˜ ๋ณ‘๋ ฌํ™”๊ฐ€ ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. ํŒจํ‚ท ์ƒ์„ฑ ํ”„๋กœ์„ธ์Šค์˜ ๋ณ‘๋ ฌํ™” ์ตœ์ ํ™”๊ฐ€ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • rpmdb ์œ ํ‹ธ๋ฆฌํ‹ฐ๋กœ ์ถ”๊ฐ€ ์†์ƒ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณต์›ํ•˜๊ธฐ ์œ„ํ•œ ์˜ต์…˜ โ€œโ€”salvagedbโ€(NDB ๋ฐฑ์—”๋“œ์—์„œ๋งŒ ์ž‘๋™)
  • ์•„ํ‚คํ…์ฒ˜ ๊ฐ์ง€๋ฅผ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๋งคํฌ๋กœ %arm32, %arm64 ๋ฐ %riscv๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋งคํฌ๋กœ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ๋‚ด์žฅ ๋งคํฌ๋กœ %{macrobody:...}๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ‘œํ˜„์—์„œ ๋”ฐ์˜ดํ‘œ๋กœ ๊ตฌ๋ถ„๋˜์ง€ ์•Š์€ ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ธˆ์ง€๋ฉ๋‹ˆ๋‹ค. ์ด์ œ 'a == b' ๋Œ€์‹  '"a" == "b"'๋ฅผ ์จ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ‘œํ˜„์‹ ํŒŒ์„œ๋Š” ๋งคํฌ๋กœ ํ™•์žฅ์ด ํฌํ•จ๋œ ํ‘œํ˜„์‹์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด "%[...]" ๊ตฌ๋ฌธ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค(๋งคํฌ๋กœ๊ฐ€ ๋จผ์ € ์‹คํ–‰๋œ๋‹ค๋Š” ์ ์—์„œ "%{expr:...}"์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค).
  • ํ‘œํ˜„์‹์—์„œ ๋…ผ๋ฆฌ ๋ฐ thenar ์—ฐ์‚ฐ์ž์˜ ์งง์€ ํ™•์žฅ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค("%[0 && 1 / 0]"์€ 0์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ ์‹œ๋„๋กœ ์ธํ•ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋Œ€์‹  XNUMX์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค).
  • ์ž„์˜์˜ ์ปจํ…์ŠคํŠธ(!"%?foo")์—์„œ NOT ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • "||" ์—ฐ์‚ฐ์ž์˜ ๋™์ž‘ "&&"๋Š” Perl/Python/Ruby์™€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ถ€์šธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋Œ€์‹  ์ด์ œ ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ณ„์‚ฐ๋œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "%[2 || 3]"์€ 2๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๋””์ง€ํ„ธ ์„œ๋ช… ๋ฐ ํ•ด์‹œ์˜ ๋Œ€์ฒด ํ˜•์‹์„ ํ™•์ธํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์„ค์น˜ ๋ฐ ์ œ๊ฑฐ ์ˆœ์„œ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ๋ฉ”ํƒ€ ์ข…์†์„ฑ(Requires(meta): somepkg)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • RPM3 ํ˜•์‹์˜ ๋””์ง€ํ„ธ ์„œ๋ช…์„ ๊ฐ•์ œ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก rpmsign์— "--rpmv3" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์„ค๋ช…์„œ, ์˜ˆ์ œ ๊ตฌ์„ฑ ํŒŒ์ผ ๋ฐ ๊ธฐํƒ€ ๊ด€๋ จ ๋ฐ์ดํ„ฐ์˜ ์„ค์น˜๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ธฐ ์œ„ํ•œ ์„ค์น˜ ์˜ต์…˜ "--excludeartifacts"๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • RPMv3, beecrypt ๋ฐ NSS ์•”ํ˜ธํ™” ๋ฐฑ์—”๋“œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • DSA2(gcrypt) ๋ฐ EdDSA์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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