2

Linux에서 몇 가지 휴대용 앱 구현이 있지만 모두 Mac OS X 앱은 휴대용입니다. Mac OS X은이 모델을 완전히 포용했기 때문에 이미이 문제에 대한 해결책을 가지고 있다고 가정합니다.필요할 때 휴대용 응용 프로그램을 시스템에서 어떻게 호출합니까 (예 : 파일 연결)?

Windows는 파일을 모든 곳에두고 파일을 변경하여 응용 프로그램을 "설치"하므로 파일 연결을 쉽게 만들 수 있습니다. 하지만, 방금 Mac OS X 용 MPlayer를 다운로드했다고 가정 해 봅시다. 내 모든 영화를 MPlayer에서 열어보고 싶습니다. 그런 다음, MPlayer의 앱 번들을 이동하기로 결정했습니다 (이봐, 이식성이있어?). 협회가 고장 나니? 아니면 그것이 OS X에서 어떻게 완료되지 않았습니까?

Linux에서 휴대용 앱을 구현하는 방법은 무엇입니까? 그것은 OS X의 모델과 유사해야합니까? 나는 이것이 매우 자유로운 문제라는 것을 알고 있지만, 어떤 제안도 감사 하리라.

답변

2

OS X의 Launch Services 데이터베이스는 여러 가지 방법으로 문서 바인딩을 추적합니다. 일반적으로 응용 프로그램을 이동 했더라도 응용 프로그램을 일치 시키려고 최선을 다합니다.

lsregister -dump (lsregister/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister)을 실행하면 Launch Services 데이터베이스에서 바인딩에 대해 말하는 내용을 볼 수 있습니다. 일반 나타내는

handler id:   3124 
    content type: public.plain-text 
    options:  
    all roles:  com.barebones.textwrangler (0x3ea30180) 

public.plain-textUniform Type Identifier입니다 (등 하나 이상의 파일 확장자, MIME 유형에 매핑 및 하위 유형이있을 수 있습니다) : 나는 TextWrangler와 열 텍스트 파일을 바인드 예를 들어, 내가 참조 텍스트이고 com.barebones.textwrangler은 TextWrangler의 번들 ID입니다.

문서 바인딩과 같은 강력한 Linux 표준을 Mac에서 인식하지 못합니다. 먼저 위치 나 이름에 관계없이 응용 프로그램을 식별하는 표준 방법이 필요합니다 (예 : Mac에서의 Java 패키지 형/역 DNS 방식), 충분한 유형의 매핑 및 바인딩을위한 레지스트리, 유용한 데스크톱 환경 및 설치된 응용 프로그램 등록 방법을 제공합니다.

Mac 응용 프로그램 번들에 Info.plist과 같은 별도의 파일이 필요하지 않을 수도 있습니다. Mac OS X에서도 Launch Services가 색인을 생성하는 바이너리 섹션에 정보를 임베드 할 수 있습니다 (이것은 별도의 "fork"또는 확장 된 속성이 아니며 실행 파일에 디버그 정보를 포함하는 것과 같습니다). 따라서 .desktop 파일의 일부 파생물이 포함될 수 있습니다. 다른 한편으로는 콘텐츠를 인식 할 수있는 방법이 필요합니다.이상적으로는 file(1) 명령과 같은 내용 스니핑을 수행하여 문서 유형을 식별 할 수도 있습니다. 고전적인 Mac OS는 Translation Manager (한 포맷에서 다른 포맷으로의 스 니퍼 등록을 허용하는 변환기)으로이 작업을 수행했습니다.

UTI 및 번역 관리자는 (d) 클립 보드를 처리하고 디스크의 파일 내용을 &으로 끌어 놓습니다. 이러한 형식 표현을 통일하는 것은 여러분이 작업하는 동안 매우 유용합니다.

2

각 파일 브라우저 (예 : 노틸러스, Konqueror)는 자체 파일 연결을 사용하도록 구성해야합니다. 다행스럽게도 Free Desktop 프로젝트는 파일 연결 표준화 작업을하고 있습니다. shared MIME database 설명에 따르면 공식 사양은 아직 작성되지 않았지만 형식이 꽤 표준화되었습니다.

무료 데스크톱 프로젝트는 .desktop 파일을 사용하여 "이식성"을 제공합니다 (어쩌면 다른 단어를 사용해야 할 수도 있습니다 ... 아마도 "움직일 수있는"?). 실행 파일을 PATH 외부로 이동하면 올바른 위치를 가리 키도록 .desktop을 업데이트 할 수 있습니다.

기본적으로 리눅스 공동체에서는 이러한 목표를 달성하기위한보다 사용자 친화적이고 개발자 친화적 인 (즉 표준화 된) 방법으로 많은 작업이 진행되고 있습니다. 그러나 일은 아직 끝나지 않았습니다.