Toolbox: λ°μŠ€ν¬νƒ‘ 파일 톡합

에 λ§Œλ“  2020λ…„ 04μ›” 21일  Β·  18μ½”λ©˜νŠΈ  Β·  좜처: containers/toolbox

GUI μ•±(예: VS Code, GNOME Builder λ“±)을 μ„€μΉ˜ν•˜λ©΄ /usr/share/applications에 λ°μŠ€ν¬νƒ‘ 파일이 μƒμ„±λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 도ꡬ μƒμžμ—λŠ” 격리된 μ‹œμŠ€ν…œ(homedir μ œμ™Έ)이 있으며 λ°”μΈλ”©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
λ‹€μŒκ³Ό 같이 λ°μŠ€ν¬νƒ‘ νŒŒμΌμ„ μƒμ„±ν•˜λŠ” μ˜΅μ…˜μ΄ μžˆλŠ” 경우:
$ toolbox desktop code.desktop λŠ” λ‹€μŒμ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

  1. /usr/share/applications/code.desktop을 .local/share/applications/toolbox_code.desktop에 λ³΅μ‚¬ν•©λ‹ˆλ‹€.
  2. λͺ¨λ“  μ‹€ν–‰ κ°€λŠ₯ν•œ μ°Έμ‘°(/usr/bin/code λ˜λŠ” μ½”λ“œ)λ₯Ό μ»¨ν…Œμ΄λ„ˆλ‘œ λ³€κ²½ν•©λ‹ˆλ‹€(/usr/bin/code -> 도ꡬ μƒμž μ‹€ν–‰ /usr/bin/code λ“±).
  3. μ•„μ΄μ½˜μ„ 둜컬 μ•„μ΄μ½˜ μ €μž₯μ†Œμ— 볡사

λ˜ν•œ 제거 μ˜΅μ…˜μ„ μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.
$ toolbox desktop code.desktop -r
~/.local/share/applications/toolbox_code.desktop 및 μ•„μ΄μ½˜μ„ μ œκ±°ν•˜λ €λ©΄

1. Feature request 5. Good First Issue 5. Help Wanted

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

λ‚˜λŠ” 그것을 μœ„ν•΄ κ°„λ‹€!

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

μ•ˆλ…•ν•˜μ„Έμš” @oksoft-gitμž…λ‹ˆλ‹€! 이것은 ν₯미둭게 λ³΄μž…λ‹ˆλ‹€. 이와 λΉ„μŠ·ν•œ 것을 μ œκ³΅ν•  μƒκ°μ΄μ—ˆμŠ΅λ‹ˆλ‹€. λ‹Ήμ‹ μ€ν•˜μ§€λ§Œ μ…Έν•˜μ§€λ§Œ 이동에 λŒ€ν•œ (이 κΈ°λŠ₯μ΄μžˆλŠ” PR을 ν•  것인가 도ꡬ μƒμžμ˜ μƒˆ 버전 ?

@debarshiray , μ–΄λ–»κ²Œ μƒκ°ν•˜μ„Έμš”?

λ‚˜λŠ” 그것을 μœ„ν•΄ κ°„λ‹€!

이 κΈ°λŠ₯은 Silverblue μ‚¬μš©μžμ—κ²Œ 큰 도움이 λ©λ‹ˆλ‹€. 그러면 μ»¨ν…Œμ΄λ„ˆμ—μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‰½κ²Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κΈ°λ³Έ 이진 톡합을 ν¬ν•¨ν•˜μ—¬ κΈ°λ³Έ λͺ…λ Ή 래퍼λ₯Ό κΈ°λ³Έ μ‹œμŠ€ν…œμœΌλ‘œ 내보낼 수 μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ ν”„λ‘œμ νŠΈ λ²”μœ„λ₯Ό λ²—μ–΄λ‚œ κ²ƒμž…λ‹ˆκΉŒ?

λͺ…λ Ή λž˜νΌλŠ” 예λ₯Ό λ“€μ–΄ nano에 λŒ€ν•΄ 이와 같은 래퍼λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€(일뢀 ν”„λ‘œκ·Έλž¨μ˜ 경우 이보닀 더 λ³΅μž‘ν•  수 있음)

!/bin/bash
toolbox nano "$@"

(flatpak은 이와 같은 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ―€λ‘œ 더 μžμ„Ένžˆ μ‚΄νŽ΄λ³Ό 수 있음)

μ•ˆλ…•ν•˜μ„Έμš” @sandorexμž…λ‹ˆλ‹€ ! 당신이 λ§ν•˜λŠ” κΈ°λŠ₯은 이미 μ—¬κΈ°μ—μ„œ μΆ”μ λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€: #145. μ—…λ°μ΄νŠΈλœ Toolboxλ₯Ό μΆœμ‹œν•œ ν›„μ˜ μš°μ„  μˆœμœ„ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. 이 두 κΈ°λŠ₯은 λΉ„μŠ·ν•˜μ§€λ§Œ μ†”λ£¨μ…˜μ€ 맀우 λ‹€λ¦…λ‹ˆλ‹€.

이제 Toolbox에 μ•±μš© .desktop νŒŒμΌμ„ 생성/νŽΈμ§‘ν•  수 μžˆλŠ” κΆŒν•œμ„ λΆ€μ—¬ν•˜λŠ” 것이 정말 쒋은 방법인지 κΆκΈˆν•©λ‹ˆλ‹€. ToolboxλŠ” κΈ°μ‘΄ .desktop 파일의 μœ„μΉ˜λ₯Ό β€‹β€‹νŒŒμ•…ν•˜κ³ , μ˜¬λ°”λ₯Έ 쀄을 μ°Ύκ³ , μ—…λ°μ΄νŠΈν•˜κ³ , λ°μŠ€ν¬νƒ‘(λͺ¨λ“  μ‚¬λžŒμ΄ GNOME 셸을 μ‚¬μš©ν•˜λŠ” 것은 μ•„λ‹˜)이 νŒŒμΌμ„ μ°Ύμ•„μ„œ μ‚¬μš©ν•  μœ„μΉ˜λ‘œ νŒŒμΌμ„ 이동/볡사해야 ν•©λ‹ˆλ‹€. 이것은 많이 μ‚¬μš©λ˜μ§€ μ•Šμ„ λΆˆν•„μš”ν•˜κ²Œ 큰 논리 λ©μ–΄λ¦¬λ‘œ λ³΄μž…λ‹ˆλ‹€.

λŒ€μ‹  κΈ°μ‘΄ .desktop νŒŒμΌμ„ μ—…λ°μ΄νŠΈν•˜λŠ” 방법에 λŒ€ν•œ 지침이 ν¬ν•¨λœ μ„€λͺ…μ„œ μ„Ήμ…˜μ΄ 더 λ‚˜μ€ 것 κ°™μŠ΅λ‹ˆλ‹€.

λ³΅μž‘μ„±μ— λŒ€ν•΄ μ œκ°€ ν‹€λ Έλ‹€λ©΄ 제발 μ €λ₯Ό ν‹€λ Έλ‹€λŠ” 것을 증λͺ…ν•΄ μ£Όμ‹­μ‹œμ˜€.

λ‚΄κ°€ 틀릴 수 μžˆμ§€λ§Œ λ°μŠ€ν¬νƒ‘ νŒŒμΌμ€ ~/.local/share/applications μ—μ„œ μž¬κ·€ 적으둜 κ²€μƒ‰λ˜λ―€λ‘œ 도ꡬ μƒμžμ—μ„œ λ°μŠ€ν¬νƒ‘ 파일 만 ν¬ν•¨ν•˜λŠ” 디렉토리 (μ»¨ν…Œμ΄λ„ˆ λ‹Ή) λ‹€μŒ μ»¨ν…Œμ΄λ„ˆμ— μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” λ°μŠ€ν¬νƒ‘ νŒŒμΌμ„ μ œκ±°ν•˜μ§€λ§Œ μˆ˜μ •μ€ μ‹€μ œλ‘œ ν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ‹¨μˆœν™”

두 번째 μ ‘κ·Ό 방식은 λ‹€λ₯Έ μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ μ±…μž„ (μ œκ³΅ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€ toolbox-desktop-integration (슀마트 될 μžμ‹ μ˜ 폴더에 이λ₯΄λ € 호슀트둜 가져에 바탕 ν™”λ©΄ νŒŒμΌμ„ 선택할 μˆ˜μžˆλŠ” 것)와 같은 ~/.local/share/applications/_toolbox_XXX XXX λŠ” μ»¨ν…Œμ΄λ„ˆ μ΄λ¦„μž…λ‹ˆλ‹€)

@HarryMichal 의 μ˜κ²¬μ— 관심이 μžˆμŠ΅λ‹ˆλ‹€.

거의 λ‹€ λ˜μ—ˆλŠ”λ° λ°μŠ€ν¬νƒ‘ νŒŒμΌμ—μ„œ μ•„μ΄μ½˜ 경둜λ₯Ό μΆ”μΆœν•˜μ—¬ ν˜ΈμŠ€νŠΈμ— 볡사할 수 μ—†μŠ΅λ‹ˆλ‹€.

_edit_: μ „μš© 도ꡬλ₯Ό λ§Œλ“œλŠ” 것이 더 μ’‹μŠ΅λ‹ˆλ‹€. λ‹€μ‹œ λ§Œλ“€κ² μŠ΅λ‹ˆλ‹€.

κΈ€μŽ„, λ‚˜λŠ” 그것을 κ°€μ§€κ³ μžˆλ‹€. github.com/ondra05/toolbox-desktop

@ondra05 μˆ˜κ³ ν•˜μ…¨μŠ΅λ‹ˆλ‹€ !

개인적으둜 κ°œμ„ ν•  ν•œ 가지가 μžˆμŠ΅λ‹ˆλ‹€(ν•„μˆ˜λŠ” μ•„λ‹˜). cat λ₯Ό μ‚¬μš©ν•˜μ—¬ μ»¨ν…Œμ΄λ„ˆμ—μ„œ νŒŒμΌμ„ μ½λŠ” κ²ƒμž…λ‹ˆλ‹€. 잘 μž‘λ™ν•˜μ§€λ§Œ μ•½κ°„ ν•΄ν‚Ήλ˜μ–΄ podman 이미지λ₯Ό κ³΅μœ ν•©λ‹ˆλ‹€. toolbox λ₯Ό μ‚¬μš©ν•˜λ©΄ podman cp λ₯Ό μ‚¬μš©ν•˜μ—¬ μ»¨ν…Œμ΄λ„ˆμ™€ 호슀트 간에 νŒŒμΌμ„ 볡사할 수 μžˆμŠ΅λ‹ˆλ‹€.

이 파이썬 μŠ€ν¬λ¦½νŠΈμ—μ„œ

μŠ¬ν”„κ²Œλ„ μ μ ˆν•œ 앱을 λ§Œλ“€ μ‹œκ°„μ΄ μ—†μŠ΅λ‹ˆλ‹€. UIλ₯Ό λ§Œλ“€μ—ˆμ§€λ§Œ GTKλŠ” 골치 μ•„ν”ˆ μΌμž…λ‹ˆλ‹€. μ–Έμ  κ°€λŠ” CLI μ „μš© 앱을 μ‚¬μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€(μž˜ν•˜λ©΄)

μŠ¬ν”„κ²Œλ„ μ μ ˆν•œ 앱을 λ§Œλ“€ μ‹œκ°„μ΄ μ—†μŠ΅λ‹ˆλ‹€

λ‚˜λŠ” 이것을 μœ„ν•œ GUIκ°€ κ³Όν•˜λ‹€κ³  μƒκ°ν•œλ‹€. Imho 이것은 --remove 및 --list ν”Œλž˜κ·Έλ₯Ό μ‚¬μš©ν•˜μ—¬ toolbox export λ°©ν–₯의 λͺ…λ ΉμœΌλ‘œ μ²˜λ¦¬ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ‚˜λŠ” 그것을 μ‘°μ‚¬ν•˜λ €κ³  λ…Έλ ₯ν•  것이닀. toolbox run export.py ARGS 와 λΉ„μŠ·ν•œ λ°©μ‹μœΌλ‘œ 도ꡬ μƒμž λ‚΄λΆ€μ—μ„œ 이 python 슀크립트λ₯Ό ν˜ΈμΆœν•˜λŠ” toolbox export APP λͺ…령을 μΆ”κ°€ν•  수 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€. 이동 쀑에 ν•˜λŠ” 것이 λΆ„λͺ…νžˆ 더 μ’‹μ§€λ§Œ 도ꡬ μƒμžμ˜ /usr μ—μ„œ $XDG_DATA_DIR νŒŒμΌμ„ λ³΅μ‚¬ν•˜λŠ” κ²ƒλ§Œ ν¬ν•¨λ˜λ©° 슀크립트λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 더 간단할 수 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 이 κ°€λŠ₯μ„±μ˜ μœ μ§€μžκ°€ 무엇인지 λͺ¨λ₯Έλ‹€.

μ΄λŸ¬ν•œ ν™•μž₯은 λ§Žμ€ 것을 κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μ•„μ΄μ½˜μ„ μ²˜λ¦¬ν•˜λŠ” λ¬Έμ œλŠ” μ‚¬μ†Œν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이것은 Freenode의 #silverblue μ—μ„œ 이 IRC λŒ€ν™”λ₯Ό 포함 ν•˜μ—¬ run λͺ…λ Ή 좔가에 λŒ€ν•œ λ…Όμ˜μ™€ μœ μ‚¬ν•©λ‹ˆλ‹€.

From #silverblue on Freenode:

15:56 <rishi> otaylor: alexlarsson: Hey! Do you have any thoughts on            
      https://github.com/debarshiray/toolbox/pull/76 ?
15:57 <rishi> In short, people want to be able to do "toolbox run emacs".
15:57 <rishi> And I am worried about encroaching on Flatpak territory.
15:58 <alexlarsson> I don't think its a huge problem.
15:58 <otaylor> rishi: I suspect we need such functionality if we want the      
      toolbox to be a serious tool that people rely on
15:58 <alexlarsson> No 2 tools will be 100% non-overlapping
15:59 <alexlarsson> and i can imagine using this in non-flatpak like way
15:59 <alexlarsson> toolbox run some-service
15:59 <otaylor> rishi: I'd be more worried about adding, say, menu item         
      management so that it looks like 'toolbox run emacs' is a real app
16:00 <alexlarsson> I mean, some people use flatpak for cli stuff
16:00 <rishi> otaylor: alexlarsson: Okay!
16:00 <alexlarsson> which is not quite the point
16:00 <alexlarsson> Still, it works
16:01 <alexlarsson> The main thing is that the design decisions that drive      
      toolbox and flatpak are driven by a particular usecase
16:01 <alexlarsson> Not that they can't be used other ways
16:03 <rishi> Yeah, toolbox is very clearly: "use jhbuild on Silverblue".
16:04 <rishi> walters would say "separate development prefix", but that's       
      about it, I think.

μ»¨ν…Œμ΄λ„ˆ 내뢀에 μ„€μΉ˜λœ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ .desktop νŒŒμΌμ— toolbox run emacs λ₯Ό μΆ”κ°€ν•˜λŠ” 것이 이미 κ°€λŠ₯ν•©λ‹ˆλ‹€. μ‹€μ œλ‘œ .desktop νŒŒμΌμ„ ꡬ문 λΆ„μ„ν•˜κ³  μƒμ„±ν•˜λŠ” λͺ…령을 κ°–λŠ” 것은 같은 λ°©ν–₯의 또 λ‹€λ₯Έ 단계이며, λ„ˆλ¬΄ ν•œ 단계인지 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.

@debarshiray λ°μŠ€ν¬νƒ‘ 파일, icondata 및 메타데이터λ₯Ό λ³΅μ‚¬ν•˜λŠ” python μŠ€ν¬λ¦½νŠΈμ— λŒ€ν•΄ μ–΄λ–»κ²Œ μƒκ°ν•˜μ‹­λ‹ˆκΉŒ? λ‚˜λŠ” 이미 ν•˜λ‚˜λ₯Ό λ§Œλ“€κ³  잘 μž‘λ™ν•©λ‹ˆλ‹€.

그것은 ν™•μ‹€νžˆ 그것에 λŒ€ν•΄ ν•œ 가지 λ°©λ²•μž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ§€κΈˆ λ‹Ήμž₯은 Toolbox에 ν¬ν•¨ν•˜κΈ°κ°€ κΊΌλ €μ§‘λ‹ˆλ‹€.

λ‚˜λŠ” 이 λ¬Έμ œμ— 관심이 μžˆμŠ΅λ‹ˆλ‹€!

...
λͺ¨λ“  μ‚¬λžŒμ΄ κ·Έλ†ˆ μ‰˜μ„ μ‚¬μš©ν•˜λŠ” 것은 μ•„λ‹™λ‹ˆλ‹€.
...
λ³΅μž‘μ„±μ— λŒ€ν•΄ μ œκ°€ ν‹€λ Έλ‹€λ©΄ 제발 μ €λ₯Ό ν‹€λ Έλ‹€λŠ” 것을 증λͺ…ν•΄ μ£Όμ‹­μ‹œμ˜€.

@HarryMichal λ‚˜λŠ” λ‹Ήμ‹ μ˜ 걱정이 λΆˆν•„μš”ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.
μš”μ¦˜ .desktop 파일과 μ•„μ΄μ½˜ 파일 ν…Œλ§ˆλŠ” λ°μŠ€ν¬νƒ‘μ— ꡬ애받지 μ•Šκ³  XDG 사양 을
https://specifications.freedesktop.org/
https://specifications.freedesktop.org/desktop-entry-spec/latest/index.html
https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html

λͺ¨λ“ :
DNF ν”ŒλŸ¬κ·ΈμΈμœΌλ‘œ ν•„μš”ν•œ κΈ°λŠ₯을 섀계할 수 μžˆμŠ΅λ‹ˆκΉŒ?

μΆ”μ‹ : Flatpak이 이미 앱을 λ…ΈμΆœν•˜κ³  μžˆμœΌλ―€λ‘œ ν•„μš”ν•œ 경우 μ½”λ“œλ₯Ό 빌릴 수 μžˆλ‹€λŠ” 것을 방금 κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€.

아직 μ–ΈμΈμŠ€ν†¨ κΈ°λŠ₯을 μΆ”κ°€ν•˜μ§€ μ•Šμ•˜μ§€λ§Œ κ·Έλ ‡κ²Œ μ–΄λ ΅μ§€λŠ” μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€.

@A6GibKm κ°μ‚¬ν•©λ‹ˆλ‹€, ν•΄μ£Όμ„Έμš”! :)

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