MacOS에서는 접미사를 사용하여 폴더 이름을 지정 .app
하고 내부 폴더 구조 규칙에 따라 GUI에서 응용 프로그램으로 실행할 수 있습니다.
Linux에 그런 것이 존재합니까?
예를 들어 디렉터리를 실행 가능 디렉터리로 표시할 수 있나요? 해당 디렉터리(CLI 또는 GUI에서)로 실행을 시도할 때 Linux는 ./main
실행을 내부적으로(또는 유사하게) 찾습니다.
편집하다:
이것은 대부분 단지 호기심일 뿐이지만 동작 측면에서 Linux가 내부에 저장된 바이너리에 대한 프록시로 사용하도록 지시하는 일부 메타데이터로 폴더에 태그를 지정할 수 있는 방법이 있는지 알고 싶습니다. 다음과 같습니다.
mkdir hello-world.app
# Create executable inside folder
echo "#!/bin/bash" > hello-world.app/bin/main
echo "echo Hello World" >> hello-world.app/bin/main
# Add some kind of meta-data to tell Linux what to do when executing folder
echo "execute=bin/main" > hello-world.app/app_manifest
# Mark as executable
chmod +x ./hello-world.app
# Run folder
./hello-world.app
# "Hello World"
내 생각은 이것이 애플리케이션과 해당 종속성, 문서를 배포하고 구성을 위한 편리한 대상 역할을 하는 편리하고 간편한 방법이라는 것이었습니다.
소프트웨어에 시스템에 설치된 것과 다른 동적 라이브러리가 필요한 경우 적절한 동적 라이브러리를 다운로드하여 에 넣으면 hello-world.app/lib
바이너리는 시스템 라이브러리보다 로컬 라이브러리를 선호합니다.
나는 Linux 규칙이 소프트웨어/바이너리 및 구성을 사용하는 /usr/local
것이라는 것을 알고 있지만 모든 사람이 이러한 규칙을 따르는 것은 아니기 때문에 따르기가 약간 어려울 수 있습니다. 소프트웨어는 배포판에 따라 다르게 구현됩니다./opt
/var
Docker, Flatpak, AppImage 등을 사용하여 애플리케이션을 컨테이너화하여 이 문제를 해결하려고 노력했다는 것을 알고 있으며 모두 훌륭하지만 정말 간단한 것을 얻고 싶습니다.
적어도 표면적으로는 관련 폴더에 구성을 저장하는 폴더 /apps
와 애플리케이션이 있다는 것은 좋은 일입니다.$HOME/apps
답변1
MacOS에 대한 설명은 GUI 추상화(주로 파인더)이며 운영 체제 기능이나 디렉토리의 실제 속성이 아닙니다.
따라서 내가 아는 한 이것은 Linux의 그래픽 파일 관리자/셸에는 존재하지 않습니다. Linux의 애플리케이션에는 일반적으로 적용되지 않는 몇 가지 규칙이 있어 이를 실행 불가능하게 만듭니다.