휴대용 응용 프로그램

Portable application
USB 드라이브는 휴대용 응용 프로그램을 전송할 수 있습니다.

휴대용 응용 프로그램(휴대용 응용 프로그램)은 독립 실행형이라고도 하며 일반적으로 휴대용 응용 프로그램을 찾을 수 있는 폴더에 있는 컴퓨터의 액세스 가능한 폴더에 구성 설정을 읽고 쓰도록 설계된 프로그램입니다.따라서 사용자의 기본 설정과 데이터를 사용하여 프로그램을 서로 다른 컴퓨터 간에 더 쉽게 전송할 수 있습니다.구성 옵션이 없는 프로그램도 휴대용 응용 프로그램이 될 수 있습니다.

휴대용 애플리케이션은 내부 대용량 스토리지, 파일 공유, 클라우드 스토리지 또는 USB 드라이브플로피 디스크와 같은 외부 스토리지를 포함한 모든 데이터 스토리지 장치에 저장할 수 있으며, 프로그램 파일 및 구성 정보와 데이터를 저장 매체에만 저장할 수 있습니다.구성 정보가 필요하지 않은 경우 CD-ROMDVD-ROM과 같은 읽기 전용 스토리지에서 휴대용 프로그램을 실행할 수 있습니다. 일부 응용 프로그램은 설치 가능 버전과 휴대용 버전 모두에서 사용할 수 있습니다.

기본적으로 이식할 수 없는 응용 프로그램 중에는 다른 메커니즘을 통한 옵션 이식성을 지원하는 것이 있습니다.가장 일반적인 것은 명령줄 인수입니다.예를 들면 다음과 같습니다./portable단순히 프로그램이 휴대용 프로그램처럼 작동하도록 지시하거나, 또는--cfg=/path/inifile컨피규레이션파일 위치를 지정합니다.

다른 응용 프로그램과 마찬가지로 휴대용 응용 프로그램은 컴퓨터 시스템의 하드웨어 및 운영 체제와 호환되어야 합니다.

operating system에 따라서는, 휴대성의 실장은 다소 복잡합니다.AmigaOS 등의 operating system에서는, 모든 애플리케이션은, 정의상 휴대성이 있습니다.

휴대용 Windows 응용 프로그램

휴대용 응용 프로그램은 파일이나 설정을 호스트 컴퓨터에 그대로 두거나 기존 시스템과 구성을 수정하지 않습니다.응용 프로그램은 Windows[citation needed] 레지스트리에 쓰거나 구성 파일(INI 파일 등)을 사용자의 프로파일에 저장하지 않고 대신 구성 파일을 휴대용 디렉터리에 저장합니다.또 다른 요구사항은 드라이브 문자 할당의 차이로 인해 변경되는 컴퓨터에서는 파일 경로가 종종 다르기 때문에 응용 프로그램에서 파일 경로를 상대 형식으로 저장해야 한다는 것입니다.일부 응용 프로그램에는 이 동작을 지원하는 옵션이 있지만 많은 프로그램이 이 동작을 지원하도록 설계되지 않았습니다.이러한 프로그램의 일반적인 기술은 응용 프로그램이 시작될 때 필요한 설정과 파일을 호스트 컴퓨터에 복사하고 닫을 때 응용 프로그램의 디렉토리로 다시 이동하는 런처 프로그램을 사용하는 것입니다.

애플리케이션 소스 코드를 변경하지 않고 Windows 내에서 애플리케이션 이동성을 실현하기 위한 대체 전략은 애플리케이션 가상화입니다.응용 프로그램은 파일 시스템 및 레지스트리 호출을 투명하게 가로채는 런타임 계층에 대해 "시퀀스 처리"되거나 "패키지화"된 다음 응용 프로그램 모르게 다른 영구 스토리지로 리디렉션됩니다.이 접근방식을 사용하면 어플리케이션 자체는 변경되지 않고 휴대성이 유지됩니다.

개별 애플리케이션 컴포넌트(실시간 라이브러리, COM 컴포넌트, ActiveX 등)[1]에 대해서도 같은 어프로치가 사용됩니다.그 결과, 개개의 컴포넌트를 이러한 방법으로 이식할 수 있습니다.원래의 포터블 애플리케이션에 통합해, 같은 operating system(OS)에 다른 구성/설정을 가지는 인스턴스화(실제 인스톨)를 반복해 실시할 수 있습니다.이식된 컴포넌트는 OS로 보호된 관련 엔티티(레지스트리 및 파일)에 영향을 주지 않기 때문에 컴포넌트는 설치 및 관리에 관리자 권한이 필요하지 않습니다.

Microsoft는 [2]2005년부터 Windows 운영체제를 위한 애플리케이션 고유의 레지스트리의 필요성을 인식하고 있었습니다.최종적으로 위의 기술을 사용하여 Detours 코드[4] 라이브러리를 사용하여 Application Compatibility[3] Database를 통해 Windows XP에 이 기술의 일부를 통합했습니다.시스템 API를 통해 이 기술을 이용할 수 있도록 하지 않았다.

Unix와 유사한 시스템에서의 이식성

Unix와 같은 기반을 염두에 두고 작성된 프로그램에서는 어떠한 가정도 하지 않는 경우가 많습니다.많은 Windows 프로그램에서는 사용자가 관리자(Windows 95/98/ME( Windows XP/2000에서는 Windows Vista나 Windows 7에서는 아니지만)라고 가정하고 있습니다만, 유닉스 같은 환경에서는 유저가 권한 없는 상태가 되는 일이 많아지기 때문에, 이러한 에러는 곧바로 「허가 거부」에러가 발생합니다.따라서 프로그램은 일반적으로 다음과 같은 기능을 사용하도록 설계되어 있습니다.HOME 설정을 저장할 환경 변수(예:$HOME/.w3m(w3m 브라우저용)다이내믹 링커는 환경 변수를 제공합니다.LD_LIBRARY_PATH비표준 디렉토리에서 라이브러리를 로드하는 데 사용할 수 있습니다.가정하다/mnt에는 휴대용 프로그램과 구성이 포함되어 있습니다.명령줄은 다음과 같습니다.

HOME=/mnt/home/user LD_LIBRARY_PATH=/mnt/usr/lib /mnt/usr/bin/w3m www.example.com

GCCLinker 옵션을 사용하면 다양한 디렉토리 경로에서 사용자 조작(스크립트나 환경 변수 조정 등)이 필요 없는 Linux 애플리케이션을 실현할 수 있습니다.$ORIGIN상대 라이브러리 검색 [5]경로를 허용합니다.

모든 프로그램이 이를 만족하는 것은 아닙니다.$HOME을 완전히 무시하고 대신 사용자 검색을 하는 프로그램도 있습니다./etc/passwd홈 디렉토리를 검색하기 때문에, 휴대성이 저하됩니다.

또한 자동 패키지, klik(현재는 AppImage) 또는 CDE 등 관리자 권한을 필요로 하지 않는 크로스 디스트로 패키지 형식도 있지만 2000년대 [6][7][8]Linux 커뮤니티에서는 제한적인 수용과 지원을 받았습니다.2015년경, Linux 에코시스템에 대한 포터블하고 독립적인 패킹에 대한 아이디어는 Linus TorvaldsDebConf 2014에서 이 주제에 대해 논의하고 나중에 AppImage를 자신의 다이빙 로그 애플리케이션 Subsurface[9][10][11]대해 승인하면서 더욱 설득력을 얻게 되었습니다.를 들어, MuseScore와 Krita는 2016년에 이어 AppImage 빌드를 소프트웨어 [12][13]배포에 사용하기 시작했습니다.Red Hat은 2016년에 Klik(현 [14]App Image)에서 영감을 얻은 Alexander Larsson의 glick 프로젝트의 후속인 Flatpak 시스템을 출시했다.마찬가지로, CanicalUbuntu 및 다른 많은 Linux 디스트리뷰터용 2016년 Snap 패키지에 출시되었습니다.

드래그 앤 드롭으로 설치할 수 있는 Mac 응용 프로그램의 대부분은 기본적으로 Mac 응용 프로그램 [15]번들로 휴대할 수 있습니다.예를 들어 Mozilla Firefox, SkypeGoogle Chrome은 관리자 권한이 필요하지 않으며 중앙의 제한된 영역에 배치할 필요가 없습니다.배치되는 어플리케이션/Users/username/Applications(~/Applications)는 macOS LaunchServices에 등록됩니다.이것은, 메인에 배치되는 애플리케이션과 같은 방법으로,/Applications폴더입니다.예를 들어 Finder에서 파일을 마우스 오른쪽 버튼으로 클릭한 다음 "Open With..."를 선택하면 /Applications 및 ~/Applications에서 모두 사용할 수 있는 응용 프로그램이 표시됩니다.개발자는 사용자가 설치 관리자 사용자 인터페이스에 [16]"Install for me"라는 레이블이 붙은 홈 디렉터리 설치를 수행할 수 있도록 Mac 제품 설치 관리자를 만들 수 있습니다.이러한 인스톨은 유저로서 실행됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Portable Application Conversion Technology". Sphinx Software. Archived from the original on September 7, 2010. Retrieved January 19, 2012.
  2. ^ "Portable Application Registry". ip.com. Retrieved January 19, 2012.
  3. ^ Ionescu, Alex. "Secrets of the Application Compatilibity Database (SDB) – Part 1". Retrieved January 19, 2012.
  4. ^ "Detours". Microsoft Research. Retrieved January 19, 2012.
  5. ^ Hustvedt, Eskild (2009-02-08). "Our new way to meet the LGPL". Archived from the original on 2009-02-20. Retrieved 2011-03-09. You can use a special keyword $ORIGIN to say ‘relative to the actual location of the executable’. Suddenly we found we could use -rpath $ORIGIN/lib and it worked. The game was loading the correct libraries, and so was stable and portable, but was also now completely in the spirit of the LGPL as well as the letter!
  6. ^ Vining, Nicholas (2010-10-13). "Dear Linux Community: We Need To Talk". Gaslamp Games. Retrieved 2011-01-30. The Linux community, in their infinite wisdom, proceeds to flame the hell out of CDE. [...] “We should all just be using package management.” Here is what I want to say, and let my words be carried down from the mountaintops, written on tiny stone tablets: Package management is not a universal panacea.
  7. ^ Byfield, Bruce (2007-02-12). "Autopackage struggling to gain acceptance". linux.com. Archived from the original on 2008-03-31. Retrieved 2012-01-21. If Hearn is correct, the real lesson of Autopackage is not how to improve software installation, but the difficulty -- perhaps the impossibility -- of large-scale changes in Linux architecture this late in its history. It's a sobering, disappointing conclusion to a project that once seemed so promising.
  8. ^ "AppImages". Elementary Project. Archived from the original on December 13, 2010. Retrieved January 19, 2012.
  9. ^ Linus Torvalds (2014-08-29). "Q&A with Linus Torvalds" (video). DebConf 2014 Portland. debian.net. 6:28. Retrieved 2016-05-14. I have seen this first hand with the other project I'm involved with, which is my dive log app. We make binaries for Windows and OSX, we basically don't make binaries for Linux. Why? Because making binaries for Linux desktop applications is a major fucking pain in the ass.{{cite web}}: CS1 maint: 작성자 파라미터 사용(링크)
  10. ^ Torvalds, Linus. "This is just very cool". Google+. I finally got around to play with the "AppImage" version of +Subsurface, and it really does seem to "just work".
  11. ^ Hohndel, Dirk (2015-11-25). "This is just very cool". Google+. I, as the app maintainer, don't want my app bundled in a distribution anymore. Way to much pain for absolutely zero gain. Whenever I get a bug report my first question is "oh, which version of which distribution? which version of which library? What set of insane patches were applied to those libraries?". No, Windows and Mac get this right. I control the libraries my app runs against. [...] With an AppImage I can give them just that. Something that runs on their computer.
  12. ^ Weiss, Isaac. "MuseScore 2.0.3 is released". MuseScore.org. MuseScore. Archived from the original on 2016-04-23. Retrieved 2016-04-05.
  13. ^ "Krita 3.0 Released". Krita.org. Krita. 2016-05-31.
  14. ^ Alex Larsson(2007)에 의한 런타임리스 앱 번들 실험
  15. ^ "Distributing Your Application". developer.apple.com. Retrieved 2017-05-23.
  16. ^ "Distribution XML Reference". developer.apple.com. Retrieved 2017-05-23.