Feeds - Leo-Mun/UROP_SDN GitHub Wiki

OpenWrtμ—μ„œ "Feed"λŠ” 곡톡 μœ„μΉ˜λ₯Ό κ³΅μœ ν•˜λŠ” νŒ¨ν‚€μ§€(packages) λͺ¨μŒμž…λ‹ˆλ‹€. ν”Όλ“œλŠ” 원격 μ„œλ²„, 버전 μ œμ–΄ μ‹œμŠ€ν…œ, 둜컬 파일 μ‹œμŠ€ν…œ λ˜λŠ” μ§€μ›λ˜λŠ” ν”Όλ“œ λ©”μ†Œλ“œκ°€ μžˆλŠ” ν”„λ‘œν† μ½œμ„ ν†΅ν•œ 단일 이름 (경둜 / URL)으둜 μ£Όμ†Œ 지정이 κ°€λŠ₯ν•œ λ‹€λ₯Έ μœ„μΉ˜μ— 상주 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

FeedsλŠ” OpenWrt Buildroot에 λŒ€ν•œ 미리 μ •μ˜λœ νŒ¨ν‚€μ§€ λΉŒλ“œ λ ˆμ‹œν”Όμž…λ‹ˆλ‹€.

Working with Feeds

ν”Όλ“œ ꡬ성

μ‚¬μš© κ°€λŠ₯ν•œ ν”Όλ“œ λͺ©λ‘μ€ feeds.conf 파일 (λ˜λŠ” feeds.confκ°€μ—†λŠ” 경우 feeds.conf.default)μ—μ„œ κ΅¬μ„±λ©λ‹ˆλ‹€. 이 νŒŒμΌμ—λŠ” ν”Όλ“œ λͺ©λ‘, ν–‰ λ‹Ή ν•˜λ‚˜, 빈 쀄 수 등이 λ“€μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 주석은 #둜 μ‹œμž‘ν•˜κ³  쀄 끝으둜 ν™•μž₯되며 ꡬ문 뢄석 쀑에 λ¬΄μ‹œλ©λ‹ˆλ‹€. 각 ν”Όλ“œ 행은 3 개의 곡백으둜 ꡬ뢄 된 ꡬ성 μš”μ†Œλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€ : ν”Όλ“œ λ©”μ†Œλ“œ, ν”Όλ“œ 이름 및 ν”Όλ“œ μ†ŒμŠ€.

r41875λΆ€ν„° /feeds.conf.default νŒŒμΌμ—λŠ” λ‹€μŒμ΄ ν¬ν•¨λ©λ‹ˆλ‹€.

src-git packages https://github.com/openwrt/packages.git
src-git luci http://git.openwrt.org/project/luci.git
src-git routing https://github.com/openwrt-routing/packages.git
src-git telephony http://git.openwrt.org/feed/telephony.git
src-git management https://github.com/openwrt-management/packages.git
#src-git oldpackages http://git.openwrt.org/packages.git
#src-svn xwrt http://x-wrt.googlecode.com/svn/trunk/package
#src-svn phone svn://svn.openwrt.org/openwrt/feeds/phone
#src-svn efl svn://svn.openwrt.org/openwrt/feeds/efl
#src-svn xorg svn://svn.openwrt.org/openwrt/feeds/xorg
#src-svn desktop svn://svn.openwrt.org/openwrt/feeds/desktop
#src-svn xfce svn://svn.openwrt.org/openwrt/feeds/xfce
#src-svn lxde svn://svn.openwrt.org/openwrt/feeds/lxde
#src-link custom /usr/src/openwrt/custom-feed
src-git packages https://github.com/reponame/packages.git;special_branch
src-git packages https://github.com/reponame/packages.git^commithash 

이 글을 μ“°λŠ” μ‹œμ μ—μ„œ λ‹€μŒκ³Ό 같은 방법이 μ§€μ›λ©λ‹ˆλ‹€.

src-bzr : bzr을 μ‚¬μš©ν•˜μ—¬ μ†ŒμŠ€ 경둜 / URLμ—μ„œ 데이터λ₯Ό λ‹€μš΄λ‘œλ“œν•©λ‹ˆλ‹€.
src-cpy : 데이터가 μ†ŒμŠ€ κ²½λ‘œμ—μ„œ λ³΅μ‚¬λ©λ‹ˆλ‹€.
src-darcs : λ°μ΄ν„°λŠ” μ†ŒμŠ€ 경둜 / URLμ—μ„œ darcsλ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹€μš΄λ‘œλ“œλ©λ‹ˆλ‹€.
src-git : λ°μ΄ν„°λŠ” git을 μ‚¬μš©ν•˜μ—¬ μ†ŒμŠ€ 경둜 / URLμ—μ„œ λ‹€μš΄λ‘œλ“œλ©λ‹ˆλ‹€. 1) 2)
src-gitsvn : Subversion μ €μž₯μ†Œμ™€ git κ°„μ˜ μ–‘λ°©ν–₯ μž‘μ—…
src-hg : λ°μ΄ν„°λŠ” μ†ŒμŠ€ 경둜 / URLμ—μ„œ hgλ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹€μš΄λ‘œλ“œλ©λ‹ˆλ‹€.
src-link : 원본 κ²½λ‘œμ— λŒ€ν•œ 심볼릭 링크가 μƒμ„±λ©λ‹ˆλ‹€.
src-svn	: λ°μ΄ν„°λŠ” svn을 μ‚¬μš©ν•˜μ—¬ μ†ŒμŠ€ 경둜 / URLμ—μ„œ λ‹€μš΄λ‘œλ“œλ©λ‹ˆλ‹€.

ν”Όλ“œ 이름은 ν”Όλ“œλ₯Ό μ‹λ³„ν•˜κ³  ν”Όλ“œμ— λŒ€ν•œ 정보λ₯Ό λ³΄μœ ν•˜κΈ° μœ„ν•΄ λ§Œλ“€μ–΄μ§„ μ—¬λŸ¬ 파일 및 디렉토리 μ΄λ¦„μ˜ 기초둜 μ‚¬μš©λ©λ‹ˆλ‹€. ν”Όλ“œ μ†ŒμŠ€λŠ” ν”Όλ“œ 데이터가 λ‹€μš΄λ‘œλ“œ λ˜λŠ” μœ„μΉ˜μž…λ‹ˆλ‹€.

"μ œν•œλœ νžˆμŠ€ν† λ¦¬"μ˜΅μ…˜μ„ μ§€μ›ν•˜λŠ” 버전 μ œμ–΄ μ‹œμŠ€ν…œ (예 : -depth, bzr -lightweight)을 μ‚¬μš©ν•˜λŠ” μœ„μ— λ‚˜μ—΄λœ λ°©λ²•μ˜ 경우 μ‚¬μš© κ°€λŠ₯ν•œ κ°€μž₯ μž‘μ€ 기둝이 λ‹€μš΄λ‘œλ“œλ©λ‹ˆλ‹€. μ΄λŠ” 쒋은 κΈ°λ³Έ μ„€μ •μ΄μ§€λ§Œ ν”Όλ“œμ— 적극적으둜 μ»€λ°‹ν•˜κ±°λ‚˜ 컀밋 기둝을 μ‚¬μš©ν•˜λŠ” κ°œλ°œμžλŠ”μ΄ λ™μž‘μ„ λ³€κ²½ν•˜λ €κ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이것은 슀크립트 / ν”Όλ“œλ₯Ό μ μ ˆν•˜κ²Œ νŽΈμ§‘ν•˜κ±°λ‚˜ 슀크립트 / ν”Όλ“œλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  ν”Όλ“œλ₯Ό 체크 μ•„μ›ƒν•˜μ—¬ μˆ˜ν–‰ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν”Όλ“œ λͺ…λ Ή

ν”Όλ“œλŠ” 슀크립트 / ν”Όλ“œ 슀크립트λ₯Ό 톡해 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ‚¬μš© κ°€λŠ₯ν•œ λͺ…λ Ή λͺ©λ‘μ€ μΈμˆ˜μ—†μ΄ scripts / feedλ₯Ό ν˜ΈμΆœν•˜μ—¬ μƒμ„±λ©λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ λͺ…λ Ήμ—λŠ” ν”Όλ“œ 정보가 λ‘œμ»¬μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•΄μ•Ό ν•˜λ―€λ‘œ μ—…λ°μ΄νŠΈλ₯Ό λ¨Όμ € μ‹€ν–‰ν•΄μ•Όν•©λ‹ˆλ‹€. λ‹€μŒμ˜ μ„€λͺ…μ—μ„œ "적용 κ°€λŠ₯ν•œ νŒ¨ν‚€μ§€"λΌλŠ” μš©μ–΄λŠ” 보톡 -a μ˜΅μ…˜μ„ μ‚¬μš©ν•  λ•Œ ν”Όλ“œμ˜ λͺ…령쀄 λ˜λŠ” λͺ¨λ“  νŒ¨ν‚€μ§€μ— μ£Όμ–΄μ§„ νŒ¨ν‚€μ§€ 이름을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

Clean

clean λͺ…령은 ν”Όλ“œμ˜ λͺ¨λ“  νŒ¨ν‚€μ§€μ— λŒ€ν•œ ν”Όλ“œ 색인 및 데이터λ₯Ό ν¬ν•¨ν•˜μ—¬ λ‘œμ»¬μ— μ €μž₯된 ν”Όλ“œ 데이터λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€ (κ·ΈλŸ¬λ‚˜ install λͺ…λ ΉμœΌλ‘œ μž‘μ„±λœ 심볼릭 λ§ν¬λŠ” μ•„λ‹ˆλ©° update λͺ…λ ΉμœΌλ‘œ ν”Όλ“œλ₯Ό λ‹€μ‹œ λ‹€μš΄λ‘œλ“œ ν•  λ•ŒκΉŒμ§€ λ§€λ‹¬λ¦¬κ²Œλ©λ‹ˆλ‹€). μ΄λŠ” ν”Όλ“œ 디렉토리와 λͺ¨λ“  μ„œλΈŒ 디렉토리λ₯Ό μ œκ±°ν•˜μ—¬ μˆ˜ν–‰λ©λ‹ˆλ‹€.

Install

install λͺ…령은 적용 κ°€λŠ₯ν•œ νŒ¨ν‚€μ§€ 및 ν•΄λ‹Ή νŒ¨ν‚€μ§€κ°€ 쒅속 된 νŒ¨ν‚€μ§€ (직접 쒅속성 및 λΉŒλ“œ 쒅속성 λͺ¨λ‘)λ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€. μ„€μΉ˜ ν”„λ‘œμ„ΈμŠ€λŠ” packages / feeds / $ feed_name / $ package_nameμ—μ„œ feeds / $ feed_name / $ package_name으둜 기호 링크λ₯Ό μž‘μ„±ν•˜μ—¬ νŒ¨ν‚€μ§€μ˜ 디렉토리 계측 ꡬ쑰λ₯Ό 검색 ν•  λ•Œ νŒ¨ν‚€μ§€κ°€ ꡬ성 ν”„λ‘œμ„ΈμŠ€μ— ν¬ν•¨λ˜λ„λ‘ν•©λ‹ˆλ‹€.

./scripts/feeds install -a : λͺ¨λ“  νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜μ‹­μ‹œμ˜€ (ꢌμž₯ν•˜μ§€ μ•ŠμŒ, ν•„μš”ν•œ νŒ¨ν‚€μ§€ 만 μ„€μΉ˜ν•˜μ‹­μ‹œμ˜€).
./scripts/feeds install luci : LuCI νŒ¨ν‚€μ§€ 만 μ„€μΉ˜ν•˜μ‹­μ‹œμ˜€.
./scripts/feeds install -a -p luci : κΈ°λ³Έ ν”Όλ“œ (-p)μ—μ„œ λͺ¨λ“  (-a) νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜μ—¬ 전체 LuCI WebUIλ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€. 

기본적으둜 μ‚¬μš©ν•  μˆ˜μžˆλŠ” ν”Όλ“œ λͺ©λ‘μ€ μœ„ μ„Ήμ…˜μ„ μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

List

list λͺ…령은 적용 κ°€λŠ₯ν•œ ν”Όλ“œμ˜ 색인 νŒŒμΌμ—μ„œ 각 ν”Όλ“œμ˜ νŒ¨ν‚€μ§€ λͺ©λ‘μ„ 읽고 ν‘œμ‹œν•©λ‹ˆλ‹€. 색인 νŒŒμΌμ€ ν”Όλ“œ 디렉토리에 .index μ ‘λ―Έμ–΄κ°€ 뢙은 ν”Όλ“œ 이름과 ν•¨κ»˜ μ €μž₯λ©λ‹ˆλ‹€. 이 νŒŒμΌμ€ update λͺ…령에 μ˜ν•΄ μƒμ„±λ©λ‹ˆλ‹€.

Search

search λͺ…령은 ν”Όλ“œ 메타 데이터λ₯Ό 읽고 μ§€μ •λœ 검색 κΈ°μ€€κ³Ό μΌμΉ˜ν•˜λŠ” νŒ¨ν‚€μ§€λ₯Ό λ‚˜μ—΄ν•©λ‹ˆλ‹€.

Uninstall

uninstall λͺ…령은 install λͺ…λ Ήμ˜ λ°˜λŒ€μž…λ‹ˆλ‹€ (쒅속 νŒ¨ν‚€μ§€λ₯Ό μ–΄λ–€ μ‹μœΌλ‘œλ“  λ‹€λ£¨μ§€λŠ” μ•Šμ§€λ§Œ). νŒ¨ν‚€μ§€ / ν”Όλ“œμ˜ ν•˜μœ„ λ””λ ‰ν† λ¦¬μ—μ„œ νŒ¨ν‚€μ§€μ— λŒ€ν•œ λͺ¨λ“  심볼릭 링크λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.

Update

슀크립트 / ν”Όλ“œ μ—…λ°μ΄νŠΈκ°€ 호좜되면 적용 κ°€λŠ₯ν•œ 각 ν”Όλ“œκ°€ μ†ŒμŠ€ μœ„μΉ˜μ—μ„œ ν”Όλ“œ μ΄λ¦„μ΄μžˆλŠ” ν”Όλ“œμ˜ ν•˜μœ„ λ””λ ‰ν† λ¦¬λ‘œ λ‹€μš΄λ‘œλ“œλ©λ‹ˆλ‹€. 그런 λ‹€μŒ ν”Όλ“œμ˜ νŒ¨ν‚€μ§€ 정보λ₯Ό λͺ©λ‘ 및 검색 λͺ…령에 μ‚¬μš©λ˜λŠ” 색인 파일둜 ꡬ문 λΆ„μ„ν•©λ‹ˆλ‹€.

./scripts/feeds update packages luci : νŒ¨ν‚€μ§€μ™€ λ£¨μ‹œ ν”Όλ“œλ₯Ό 체크 μ•„μ›ƒν•˜μ‹­μ‹œμ˜€. 

λ˜ν•œ updateλŠ” feeds / $ feed_name.tmp / location에 μ„€μ •λœ ν”Όλ“œ μœ„μΉ˜λ₯Ό μ €μž₯ν•˜μ—¬ μ„€μ • 변경을 κ°μ§€ν•˜κ³  적절히 μ²˜λ¦¬ν•  수 β€‹β€‹μžˆμŠ΅λ‹ˆλ‹€.

검색 ν›„ λ‹€μš΄λ‘œλ“œ ν•œ νŒ¨ν‚€μ§€λ₯Ό "μ„€μΉ˜"ν•΄μ•Όν•©λ‹ˆλ‹€. μ„€μΉ˜ ν›„μ—λ§Œ ​​ꡬ성 μΈν„°νŽ˜μ΄μŠ€μ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€

Custom Feeds

이제 νŒ¨ν‚€μ§€λ₯Ό κ°œλ°œν–ˆκ³ , μ΄μ œλŠ” make menuconfigλ₯Ό 톡해 νŒ¨ν‚€μ§€λ₯Ό μ‚¬μš©ν•˜λ €κ³ ν•©λ‹ˆλ‹€. νŒ¨ν‚€μ§€λ₯Ό 개발 쀑이며 OpenWrt에 νŒ¨ν‚€μ§€λ₯Ό ν¬ν•¨μ‹œν‚€κΈ° 전에 λΉŒλ“œμ—μ„œ ν…ŒμŠ€νŠΈ ν•˜λ €κ³  ν•©λ‹ˆλ‹€.

μ†”λ£¨μ…˜μ€ μ‚¬μš©μž μ§€μ • ν”Όλ“œμž…λ‹ˆλ‹€. μ™„μ „νžˆ μƒˆλ‘œμš΄ ν”Όλ“œλ₯Ό λ§Œλ“€κ±°λ‚˜ ν‘œμ€€ ν”Όλ“œ 쀑 ν•˜λ‚˜μ˜ μˆ˜μ •λœ 버전을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

νŒ¨ν‚€μ§€ 디렉토리 λ§Œλ“€κΈ°

κΈ°μ‘΄ ν”Όλ“œμ— νŒ¨ν‚€μ§€ μΆ”κ°€ν•˜κΈ°

이 μ˜ˆμ—μ„œλŠ” μ‚¬μš©μžκ°€ κΈ°λ³Έ λ””λ ‰ν† λ¦¬λ‘œ / home / user / openwrt에 μžˆλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.

  1. ν˜„μž¬ ν”„λ‘œμ νŠΈ 디렉토리 ν”„λ‘œμ νŠΈλ₯Ό λ§Œλ“­λ‹ˆλ‹€.
  2. 그런 λ‹€μŒ / home / user / openwrt / projectμ—μžˆλŠ” λ™μ•ˆ
  • svn co svn : svn.openwrt.org/openwrt/trunk openwrt (OpenWRT κΈ°λ³Έ μ‹œμŠ€ν…œ 용)
    • svn co svn : svn.openwrt.org/openwrt/packages νŒ¨ν‚€μ§€ (νŒ¨ν‚€μ§€ ν”Όλ“œ 용)
  1. / home / user / openwrt / project / packages μ•„λž˜μ˜ μ μ ˆν•œ ν•˜μœ„ 디렉토리에 νŒ¨ν‚€μ§€λ₯Ό μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.

λ‚˜λ§Œμ˜ ν”Όλ“œ λ§Œλ“€κΈ°

  1. μœ„μ™€ 같이 ν”„λ‘œμ νŠΈ 디렉토리λ₯Ό λ§Œλ“€κ³  트렁크λ₯Ό λ§Œλ“­λ‹ˆλ‹€.
  2. νŒ¨ν‚€μ§€κ°€ 이 μ˜ˆμ—μ„œ / home / user / openwrt / project / customfeed / packagedir μ•„λž˜μ— μžˆλ„λ‘ νŒ¨ν‚€μ§€ 디렉토리λ₯Ό λ§Œλ“€κ³  νŒ¨ν‚€μ§€λ₯Ό νŒ¨ν‚€μ§€μ— λ³΅μ‚¬ν•©λ‹ˆλ‹€ (예 : cppackagedir / home / user / openwrt / project / customfeed /)

Using Feed

  1. feeds.conf (즉, /home/user/openwrt/project/openwrt/feeds.conf)λ₯Ό μˆ˜μ •ν•˜μ‹­μ‹œμ˜€.
  2. ν”Όλ“œμ— μ•‘μ„ΈμŠ€ ν•  μƒˆ 쀄을 μΆ”κ°€ν•©λ‹ˆλ‹€ (νŒ¨ν‚€μ§€ ν”Όλ“œμ— μΆ”κ°€ν•˜λ©΄ 일반 νŒ¨ν‚€μ§€ ν”Όλ“œλ₯Ό 주석 μ²˜λ¦¬ν•©λ‹ˆλ‹€).
  3. 예 :
#srv-svn packages svn://svn.openwrt.org/openwrt/packages
src-link customfeed /home/user/openwrt/project/packages

λ˜λŠ” 두 번째 예제의 경우 :
src-link customfeed /home/user/openwrt/project/customfeed
  1. ν”Όλ“œ μ—…λ°μ΄νŠΈ : <buildroot 디렉토리> (예 : / home / user / openwrt / project / openwrt)μ—μ„œ μˆ˜ν–‰ ν•  μž‘μ—… :
./scripts/feeds update customfeed
  1. 그런 λ‹€μŒ μ„€μΉ˜ν•˜μ‹­μ‹œμ˜€.
./scripts/feeds install -p customfeed
  1. 이제 νŒ¨ν‚€μ§€λ₯Ό μ‚¬μš©ν•  수 μžˆμ–΄μ•Όν•©λ‹ˆλ‹€.
make menuconfig

μ„€λͺ…

λ‹€μš΄λ‘œλ“œ ν•œ μ†ŒμŠ€ (Makefile νŒ¨ν‚€μ§€μ—μ„œ μ°Έμ‘°)λŠ” μ—†μŠ΅λ‹ˆλ‹€ ... λ‹€μš΄λ‘œλ“œλŠ” λ¨Όμ € gzip 된 .gz 파일둜 / dlλ‘œκ°‘λ‹ˆλ‹€. 그리고 거기에 μ €μž₯되고 / build_dir에 압좕이 ν’€λ¦½λ‹ˆλ‹€. 예 : / build_dir / target - * / μ•„λž˜μ— 각 νŒ¨ν‚€μ§€μ˜ μ†ŒμŠ€μ— λŒ€ν•œ ν•˜μœ„ 디렉토리가 μžˆμŠ΅λ‹ˆλ‹€.

⚠️ **GitHub.com Fallback** ⚠️