특정 파일을 실행 가능하게 만들어야 하는 이유는 무엇입니까?

특정 파일을 실행 가능하게 만들어야 하는 이유는 무엇입니까?

저는 지난 주 이전에는 Windows를 떠나본 적이 없었으며 elasticsearch/logstash/kibana/jdk8을 사용하여 가상 머신을 만들어 달라는 요청을 받았습니다.

나는 sudoer가 아닌 일반 사용자를 사용하고 있습니다.

각 tar.gz 파일을 추출하여 4개의 폴더를 얻었습니다.

먼저 elasticsearch를 시작하려면 chmod +x를 사용하여 "elastisearch" 파일을 실행 가능하게 만들어야 했습니다. 그런 다음 다른 파일을 실행할 수 있어야 했기 때문에 실패했습니다. 그런 다음 Java JDK의 bin 폴더에 있는 일부 파일을 실행 가능해야 했기 때문에 실패했습니다.

Linux에 항목을 설치하는 다른 방법이 있습니까? 아니면 매번 "어떤 파일을 chmod해야 하는지 살펴보자"라는 게임인가요?

감사해요.

추신: CentOs 7을 사용하고 있습니다.

답변1

Linux에 항목을 설치하는 다른 방법이 있습니까? 아니면 매번 "어떤 파일을 chmod해야 하는지 살펴보자"라는 게임인가요?

예, 권한을 포함하여 소프트웨어 게시와 관련된 다양한 문제를 해결하는 기본 패키지 관리자를 사용하는 공급업체라고 합니다. 일부 ISV는 "관리자가 이 문제를 해결할 것입니다"라는 표준 기대치를 갖는 습관을 가지고 있습니다. 이렇게 해야 하는 경우도 있지만 워크플로만 잘 따라줬다면 많은 문제가 해결됐을 겁니다.

특정 경우에는 결과 파일이 처음에 아카이브에 포함된 경우 결과 파일에 대한 파일 권한을 유지하도록 지시하는 명령 p에 옵션을 지정하지 않았을 수 있습니다(보려면 시도해야 합니다). .tartar

원래 질문에 :

특정 파일을 실행 가능하게 만들어야 하는 이유는 무엇입니까?

이는 단지 액세스 제어 조치일 뿐입니다. 파일이 자체적으로 실행되지 않도록 하는 방법을 제공합니다. 예를 들어, 설치 프로그램의 디렉터리 트리에 최종 실행 파일이 포함되어 있지만 설치 프로그램 이외의 어떤 것도 실행할 수 없도록 만들고 싶은 경우입니다. 또는 스크립트를 작성 중이지만 완료될 때까지 다른 사람이 실행하는 것을 원하지 않는 경우.

답변2

예, 일반적으로 스크립트를 수동으로 실행 가능하게 만들 필요가 없는 소프트웨어를 Linux에 설치하는 또 다른 방법인 패키지 관리자가 있습니다.

귀하의 경우 CentOS를 사용하는 경우 "yum"입니다. 이 프로그램은 선택한 운영 체제와 함께 제공되는 소위 저장소에 있는 소프트웨어를 설치할 수 있습니다.

아래 링크에서는 CentOS에 Logstash, Elasticsearch 및 Kibana를 설치하는 방법을 설명합니다.

https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-7

질문으로 돌아가서: 운영 체제 저장소에 설치하려는 소프트웨어가 없으면 이를 제공하는 다른 저장소를 찾아볼 수 있습니다. 이 두 가지 옵션을 사용할 수 없는 경우에만 소프트웨어를 수동으로 설치하는 것을 고려해야 합니다. 특히 경험이 없는 사용자인 경우 항상 저장소에서 소프트웨어를 설치하는 것을 선호해야 합니다.

"yum"을 사용하려는 컴퓨터에 대한 루트 액세스 권한이 필요합니다.

다음은 yum에 대한 간단한 튜토리얼입니다: https://linuxmoz.com/linux-yum-tutorial/

답변3

파일을 실행하려면 실행 가능하게 만들어야 합니다.Unix 시스템은 Windows처럼 파일 확장자를 사용하는 대신 권한을 사용하여 실행 가능한 파일을 결정합니다..

특정 파일을 수동으로 실행 가능하게 만드는 것은 거의 필요하지 않습니다. 컴파일러는 프로그램을 컴파일할 때 이 작업을 수행합니다. 아카이브에서 파일을 추출하면 아카이브에서 해당 권한을 할당합니다. 프로그램을 추출한 아카이브에 유효하지 않은 권한이 있는 경우 해당 아카이브를 만든 사람이 이상한 일을 하여 권한이 나빠졌음을 의미합니다.

Linux에 소프트웨어를 설치하는 일반적인 방법은 패키지 관리자를 이용하는 것입니다. 배포에 사용할 수 있는 패키지가 없거나 루트가 아닌 사용자로 소프트웨어를 설치해야 하는 경우에만 다른 방법을 사용해야 합니다. CentOS는 Elasticsearch와 함께 제공되지 않지만 Elasticsearch는일부 배포판에 대한 패키지 배포(CentOS ≥6 포함). Elasticsearch에서 제공하는 RPM 패키지를 사용하는 것이 가장 쉬운 설치 방법입니다.

공식 확인해보니Elasticsearch에서 배포하는 tar 아카이브, 필요할 때 실행 권한이 있습니다. 따라서 사용 중인 손상된 아카이브 대신 이 아카이브를 가져와서 압축을 푸십시오.

그러나 가상 머신을 만드는 경우 루트가 아니라는 점을 이해하지 못합니다. 호스트 머신의 루트인지 여부는 중요하지 않습니다. 가상 머신을 설정하는 경우, 특히 여기에 운영 체제를 설치하는 경우 가상 머신의 루트이고 실행 중인 운영 체제에 RPM 패키지를 설치할 수 있습니다. 가상 머신.

답변4

다른 옵션이 있습니다. 예를 들어 개발을 위해서는 Vagrant를 사용하는 것이 좋습니다. 간단한 vagrant 명령을 사용하여 ELK 스택(Elasticsearch, Logstash 및 Kibana 포함)을 모두 함께 설치할 수 있는 ELK vagrant 상자가 많이 있습니다(이에 대한 튜토리얼은 곧 작성될 예정입니다). vagrant box는 Java를 포함하여 필요한 모든 구성 요소를 설치합니다. 물론, 시도해 볼 수 있는 호스팅된 ELK 솔루션이 있습니다(공개 - 저는 ELK에서 서비스 회사로 일하고 있습니다).

관련 정보