Linux에서 Git을 사용하여 소프트웨어를 설치하는 방법
게시 됨: 2022-01-29"리포지토리를 복제하고 구축"하라는 지시를 받았는데 다음에 무엇을 해야 할지 모르십니까? 초보자라도 Linux에서 실행되는 GitHub에서 해당 프로그램을 얻는 방법을 보여 드리겠습니다.
컴퓨터 프로그램을 구성하는 명령은 텍스트 파일로 작성, 편집 및 저장됩니다. 그런 다음 컴파일러라고 하는 프로그램이 이러한 파일을 처리합니다. 이것은 프로그램의 실행 가능한 버전을 생성합니다. 명령어의 텍스트 파일을 소스 코드라고 합니다. 컴퓨터에서 실제로 실행할 수 있는 프로그램의 버전을 바이너리 또는 실행 파일이라고 합니다.
이는 이벤트의 단순화된 버전이지만 일반화된 경우 올바른 그림을 그립니다. 실제로 해당 모델에서 모든 종류의 변형을 찾을 수 있습니다. 때때로 다른 프로그램이 텍스트 파일을 생성합니다. 다른 경우에는 소스 코드가 인터프리터 내부에서 실행되며 컴파일할 필요가 없습니다.
그러나 모든 소프트웨어 프로젝트에 대한 한 가지 보편적인 진실은 다음과 같습니다. 소스 코드 파일은 최고의 보석이며 마찬가지로 주의 깊게 관리해야 합니다.
버전 관리 프로그램
프로젝트 내의 모든 소스 코드 파일을 코드베이스라고 합니다. 대규모 프로젝트에는 종종 많은 개발자가 코드베이스에서 작업합니다. 모든 코드 변경을 추적하고 식별할 수 있어야 합니다. 필요한 경우 변경 사항을 되돌릴 수 있어야 합니다. 다른 개발자가 동일한 소스 코드 파일을 변경하는 경우 편집 내용을 병합해야 합니다.
따라서 버전 제어 시스템이라고 하는 소프트웨어 프로그램이 코드베이스의 변경 사항을 더 쉽게 관리할 수 있도록 존재한다는 것은 놀라운 일이 아닙니다. 버전 제어 시스템은 코드베이스에 있는 각 파일의 모든 이전 버전을 보유하고 모든 변경 사항을 기록하고 주석을 달고 추적합니다.
Git이라는 작은 것
Linux 커널의 창시자인 Linus Torvalds는 Linux 커널 코드베이스를 관리하기 위해 Git이라는 버전 제어 프로그램을 개발했습니다. 이제 세계에서 가장 널리 채택된 버전 제어 소프트웨어입니다. 말 그대로 수백만 명의 사람들이 그것을 사용하고 있습니다.
Git을 사용하면 프로젝트의 코드베이스가 저장소 에 저장됩니다. 개발자의 컴퓨터와 아마도 네트워크의 중앙 서버에 있는 로컬 리포지토리 외에도 오프사이트 또는 원격 리포지토리를 갖는 것이 좋습니다.
그리고 그것이 GitHub가 들어오는 곳입니다.
깃허브
GitHub는 git
의 성공의 결과로 만들어졌습니다. 설립자는 안전하게 호스팅되는 원격 git
리포지토리에 대한 필요성이 대두되고 있음을 확인했습니다. 그들은 개발 팀이 원격 리포지토리를 호스팅할 수 있도록 클라우드 플랫폼을 제공하는 사업을 시작했습니다. 2019년 4월 기준, GitHub는 1억 개 이상의 리포지토리를 호스팅합니다.
애플리케이션이 오픈 소스 프로젝트인 경우 GitHub에서 호스팅될 가능성이 매우 높습니다. BitBucket 및 GitLab과 같은 다른 리포지토리 플랫폼을 사용할 수 있지만 GitHub는 오픈 소스 리포지토리의 가장 큰 부분을 차지하고 있습니다.
리포지토리의 구조
GitHub 리포지토리는 가장 중요한 소스 코드 파일과 같은 파일이 포함된 폴더로 구성됩니다. 일반적으로 저장소에는 다른 많은 유형의 파일이 있습니다. 문서 파일, 매뉴얼 페이지, 소프트웨어 라이센스 파일, 빌드 지침 및 쉘 스크립트 파일이 있을 수 있습니다. 저장소가 포함해야 하거나 포함해야 하는 항목에 대한 규칙은 없지만 규칙은 있습니다.
하나의 부엌을 돌아다니는 길을 알고 있다면 어떤 부엌이든 탐색할 수 있습니다. 리포지토리도 마찬가지입니다. 규칙을 이해하고 나면 필요한 것을 찾기 위해 어디로 가야 하는지 알게 됩니다.
그렇다면 컴퓨터에서 저장소 복사본을 얻는 방법과 프로그램을 바이너리 실행 파일로 빌드하는 방법은 무엇입니까?
추가 정보 파일
리포지토리에 readme 파일을 포함하는 것이 일반적입니다. readme, Readme 또는 README라고 부를 수 있습니다. 확장자가 ".md"이거나 전혀 없을 수 있습니다.
Atom 편집기용 GitHub 저장소를 살펴보겠습니다. 긴 폴더 및 파일 목록이 표시됩니다. 아래로 스크롤하면 README.md 파일의 내용이 표시됩니다.
GitHub는 readme 파일의 내용을 저장소의 첫 페이지에 자동으로 넣습니다. 추가 정보 파일에 ".md" 확장자가 있으면 Markdown 마크업 언어가 포함됩니다. 이를 통해 개발자는 글꼴, 글머리 기호 및 이미지와 같은 스타일 요소를 사용할 수 있습니다.
일반적으로 readme 파일에는 프로젝트 내용, 라이센스 유형, 프로젝트 유지 관리, 참여 방법, 응용 프로그램 빌드 및 실행 방법을 알려주는 섹션이 있습니다.
실제 빌드 지침이 나열되지 않으면 이 정보를 찾을 수 있는 위치를 알려줍니다. 필요한 빌드 도구 및 기타 종속성과 같이 애플리케이션을 빌드하는 데 유용한 기타 정보가 여기에 나열되거나 해당 정보로 연결되는 링크가 있을 수 있습니다.
상자 저장소
우리의 임무는 상자 저장소를 복제한 다음 boxes
응용 프로그램을 빌드하는 것입니다.
저장소는 Atom과 동일한 레이아웃을 따릅니다. 폴더와 파일 목록이 있고 그 아래에는 readme 파일의 내용이 있습니다. 저장소의 표준 레이아웃을 따르지만 더 작은 프로젝트이므로 폴더와 파일이 더 적습니다.
readme 파일도 더 짧습니다. "개발"이라는 섹션이 있습니다. 해당 섹션에는 "소스에서 빌드"라는 제목의 링크가 있습니다. 해당 링크를 따라가면 필요한 정보를 찾을 수 있습니다.
일반적으로 저장소를 탐색하고 원하는 정보를 찾는 데 필요한 간단한 탐색이 있지만 어렵지 않습니다. 저장소 페이지의 모든 내용을 주의 깊게 읽으십시오. 때때로 정보가 있지만 눈에 띄게 표시되지 않을 수 있습니다.
종속성
"Building from Source" 페이지에는 "Building on Linux"라는 섹션이 있으며 이것이 바로 우리가 필요로 하는 것입니다. C 컴파일러, Bison 및 Flex가 설치되어 있어야 한다고 나와 있습니다.
빌드 지침에는 make
명령을 실행하라고 나와 있으므로 make
도 필요합니다.
이 애플리케이션을 빌드하는 데 필요한 도구는 C 컴파일러, Bison, Flex, make
및 Git(저장소를 컴퓨터에 복제하기 위해)입니다.
이 기사는 Ubuntu, Fedora 및 Manjaro Linux 배포판을 실행하는 컴퓨터에서 조사되었습니다. 배포판에는 이러한 도구가 모두 설치되어 있지 않았습니다. 각 도구에 무언가를 설치해야 했습니다.
도구 세트 설치
Ubuntu에는 Git, Flex, Bison 및 make
설치되어 있어야 했습니다. 다음은 명령입니다.
sudo apt-get install git
sudo apt-get 플렉스 설치
sudo apt-get 설치 들소
sudo apt-get install make
Fedora에는 Flex, Bison 및 make
설치되어 있어야 했습니다. 다음은 명령입니다.
sudo dnf 설치 플렉스
sudo dnf 설치 들소
sudo dnf 설치 make
Manjaro는 GCC 컴파일러, Flex 및 Bison을 설치해야 했습니다. 다음은 명령입니다.
sudo pacman - 슈 gcc
sudo pacman - 슈 플렉스
sudo pacman - 슈 들소
리포지토리 복제
각 GitHub 리포지토리에는 Git과 함께 사용하여 리포지토리를 컴퓨터에 복제하는 데 사용되는 특정 웹 주소가 있습니다. 상자 저장소의 기본 페이지에는 "복제 또는 다운로드"라는 녹색 버튼이 있습니다.
버튼을 클릭하면 웹 주소를 볼 수 있습니다. 이것은 저장소를 복제할 때 git
명령에 전달해야 하는 주소입니다.
리포지토리를 복제할 디렉터리로 변경한 다음 이 명령을 사용합니다. 터미널 창에서 지원하는 경우 웹 주소를 복사하여 명령에 붙여넣을 수 있습니다. Ctrl+Shift+V를 눌러 GNOME 터미널 창에 붙여넣습니다.
Git은 원격 저장소를 복제하고 컴퓨터에 로컬 저장소를 만듭니다. "box"라는 디렉토리에 복제 중임을 알려줍니다.
boxs 디렉토리는 git
명령을 실행한 디렉토리 내에 생성됩니다. 상자 디렉터리로 전환하여 내용을 보면 GitHub 페이지에서 본 것과 동일한 파일 및 폴더 목록이 표시됩니다.
엄청난! 소스 코드와 기타 파일을 컴퓨터에 성공적으로 복제했습니다. 이제 애플리케이션을 빌드해야 합니다.
애플리케이션 빌드
애플리케이션을 빌드하려면 GitHub 리포지토리의 지침을 따라야 합니다. 때로는 특정 셸 파일을 실행하고 다른 셸 파일은 make
실행합니다. 우리가 따르고 있는 빌드 지침은 make
를 실행하라고 지시했습니다.
make
유틸리티는 makefile에서 일련의 명령을 읽고 수행합니다. 이 지침은 make
에게 프로그램을 컴파일하고 함께 연결하는 방법을 알려줍니다. make
는 컴파일러 및 기타 빌드 도구에 지침을 전달합니다.
우리가 사용하라는 명령은 make
두 번 호출합니다. make
에 대한 첫 번째 호출은 애플리케이션을 빌드하고 두 번째 호출은 일련의 테스트를 실행합니다.
빌드 지침에서 사용하도록 지시한 명령은 다음과 같습니다.
테스트 만들기 및 만들기
터미널 창에서 많은 출력 줄이 빠르게 스크롤됩니다. 1분 정도 지나면 명령 프롬프트로 돌아갑니다.
상자 응용 프로그램 배포
응용 프로그램이 빌드되었으며 실행 가능한 바이너리가 있습니다. 이제 바이너리를 /usr/bin/ 디렉토리에 복사해야 합니다. 이렇게 하면 쉘을 사용하려고 할 때 쉘이 찾을 수 있습니다.
일부 응용 프로그램의 경우 이 작업만 수행하면 됩니다. 다른 경우에는 매뉴얼 페이지 및 구성 파일과 같은 추가 파일을 파일 시스템의 위치로 복사해야 할 수도 있습니다. 후자는 빌드 지침에 있었기 때문에 새 응용 프로그램과 함께 해야 하는 작업입니다.
sudo
를 사용하여 이러한 명령을 실행합니다. 첫 번째 명령은 매뉴얼 페이지를 man1 디렉토리에 복사합니다.
sudo cp 문서/boxes.1 /usr/share/man/man1
다음으로 전역 구성 파일을 /usr/share/의 디렉토리에 복사합니다.
sudo cp box-config /usr/share/boxes
마지막으로 바이너리를 /usr/bin에 복사합니다.
sudo cp src/boxes /usr/bin
상자 응용 프로그램 테스트
모두 작동하는지 봅시다! boxes
명령에 대한 매뉴얼 페이지를 열어보십시오.
맨박스
그것은 고무적입니다! boxes
명령을 사용하는 방법을 알려주는 매뉴얼 페이지가 있습니다.
"Q"를 눌러 man 시스템을 종료하고 boxes
명령을 사용해 보십시오.
echo 긱 방법 | 상자
그리고 우리는 응답을 얻습니다:
당신이 들인 모든 노력을 고려할 때 이것은 약간 실망스러울 수 있지만 이 연습의 요점은 GitHub에서 리포지토리를 다시 가져오고 애플리케이션을 빌드하는 방법을 안내하는 것입니다.
boxes
명령을 사용하면 파이프로 연결된 텍스트를 다양한 프레임으로 줄 바꿈할 수 있습니다. 그들 중 일부는 소스 코드 파일의 주석으로 사용될 수 있습니다. 위의 형식은 예를 들어 C 소스 코드 파일에서 주석으로 작동합니다. 다른 것들은 순전히 장식적입니다. -d
(디자인) 옵션을 사용하면 프레임 스타일을 선택할 수 있습니다.
echo 긱 방법 | 상자 -d 소용돌이
echo 긱 방법 | 상자 -d c-cmt2
선택할 수 있는 디자인의 긴 목록이 있습니다. 모두 보려면 다음 명령을 사용하십시오.
상자 -l | 더 적은
빌드 완료
소스에서 빌드하는 단계는 일반적으로 간단합니다.
- 리포지토리에서 빌드 지침을 검토합니다.
- 필요한 도구가 설치되어 있는지 확인하고 누락된 도구를 설치하십시오.
- 저장소를 컴퓨터에 복제합니다.
-
make
를 입력하는 것만 큼 간단한 빌드 지침을 따르십시오. - 파일을 필요한 위치에 복사합니다.
빌드 지침에 명확하지 않은 단계가 있는 경우 프로젝트에 질문을 보낼 수 있는 포럼이나 커뮤니티가 있는지 확인하세요. 응용 프로그램에 웹 사이트가 있는 경우 "문의하기" 페이지가 있을 수 있습니다. 상자 프로젝트를 유지 관리하는 개발자는 상자 웹 사이트의 "정보" 페이지에 자신의 이메일이 있습니다. 이는 그의 관대한 제스처이며 더 넓은 오픈 소스 커뮤니티의 전형입니다.
리눅스 명령어 | ||
파일 | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · 보기 · 문자열 · 유형 · 이름 바꾸기 · zip · 압축 풀기 · 마운트 · 언마운트 · 설치 · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · 패치 · 변환 · rclone · 파쇄 · srm | |
프로세스 | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · 종료 · 재부팅 · 정지 · poweroff · passwd · lscpu · crontab · 날짜 · bg · fg | |
네트워킹 | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
관련: 개발자 및 열광자를 위한 최고의 Linux 노트북