Compiling Software from Source Code
강의 설명
In this video, you will learn how to download source code from gnu.org, and then customise, compile and install it to demonstrate the freedom that free open source software gives you.
전체 강의에서 자세히 알아보세요.
Linux Mastery: Master the Linux Command Line in 11.5 Hours
Learn the Linux Command Line from Scratch and Improve your Career with the World's Most Fun Project-Based Linux Course!
주문형 동영상의 10:35:03 • 업데이트 날짜: 4월 2023
Quickly Learn the Linux Command Line from Scratch!
Use Bash Scripts and Cron Scheduling Software to Automate Boring Tasks!
Become an Independent User of the Linux Operating System!
Learn how to Search for, Customise, Install and Manage Open Source Software with Package Managers!
Operate a Linux Computer Entirely from the Command Line!
Gain a Complete Understanding of Linux & fill in any existing knowledge gaps!
한국어 [자동]
안녕하세요, 아름다운 여러분 이 비디오에서는 소스 코드를 실행 프로그램으로 바꾸는 법을 배울 겁니다 약간의 수정을 거쳐서 말이죠 이 비디오에서는 소스 코드를 다운로드하고 편집하고 C 컴파일러를 이용해 합리적인 이진법 프로그램으로 바꾸는 방법을 알아보도록 할게요 소스 코드로부터 소프트웨어 설치하는 법도 배웁니다 명령어를 이용해서요 코드도 약간 수정하겠습니다 설치되고 있는 게 수정된 코드라는 걸 알 수 있도록요 비디오가 끝날 때쯤엔 오픈 소스 무료 소프트웨어의 장점을 훨씬 더 잘 이해하게 되실 겁니다 소스 코드로부터 소프트웨어를 컴파일하는 방법도 아시게 될 거고요 그럼 바로 시작해보죠 좋아요, 다시 새 조직 웹사이트입니다 여기 소프트웨어 탭이 보이시죠 각각의 패키지를 아래로 스크롤할 수 있어요 새 운영 체제에 딸려오는 거죠 지금까지 저희가 실행한 명령의 모든 소스 코드는 파인 커맨드와 RLS 커맨드 등은 여기 있는 핵심 utils 패키지에 있어요 그럼 이 패키지를 다운로드해서 살펴보죠 링크를 클릭하면 다른 페이지가 열려요 다운로드 섹션으로 스크롤을 내리면 몇 개의 링크가 있습니다 안정적인 소스 릴리스가 이 링크에 있고 테스트 소스 릴리스가 이 링크에 있다고 하네요 안정과 테스트의 차이점은 안정된 소스 릴리스가 작동한다는 거죠 테스트된 거죠 테스트 소스 릴리스에선 새로운 걸 시도하지만 완전히 안정적이진 않아요 아직 끝난 게 아니에요 네 안정된 소스를 시도해 볼게요 그 링크를 클릭할게요 다수의 패키지가 있는 게 보이시죠 다수의 번들이 목록 형식에 있어요 가장 최근 버전은 목록 하단에 있어요 목록 맨 아래로 스크롤을 내리면 핵심 도구 버전 8이 나오죠 28살요 .Z로 끝나는 걸 클릭할 거예요 .zz 시가로 끝나는 거 말고 .xz로 끝나는 거요 그걸 지금 클릭하면 이걸 볼 수 있죠 팝업 창이 뜨면 파일 저장을 클릭합니다 클릭할게요 네 다운로드 폴더에 저장돼 있어요 지금 다운로드 폴더로 가보면 홈 디렉터리에 있는 게 보이실 거예요 다운로드 폴더로 가서 목록을 보면 핵심 도구 버전 8이 있는 게 보이시죠 2 8xz예요 xZ 압축 알고리즘으로 압축한 타르 아카이브예요 이걸 보면 find command로 x, z로 압축된 데이터를 볼 수 있죠 X Z는 압축 알고리즘입니다 B zip이나 GZIP 압축 알고리즘처럼요 파일 압축에서 다루었고 간략하게 비디오를 저장했죠 일반적인 알고리즘은 아니지만 TAA 커맨드를 이용해 풀어볼 수 있어요 그렇게 하죠 TAR를 입력할 수 있어요 파일을 추출하는 방법도요 X와 F 옵션을 주고 어떤 아카이브인지 말해주죠 zip 압축 알고리즘을 추출하려면 대문자 j 옵션을 넣어야 해요 소문자 j 옵션은 B zip 2고 대문자 j 옵션은 x zip이에요 더 알고 싶으시다면 제가 드린 파일 압축과 커닝 기록지를 확인해 보세요 네 계속해서 엔터를 누르면 어떤 정보도 얻지 못한 것을 볼 수 있습니다. V 옵션에 대해 이야기하지 않았기 때문이죠. 이제 LZ를 사용하면 Core Utils 8이라는 새 폴더가 생겼죠 28살요 인터넷을 보면 인터콜 도구에서 살펴볼 수 있습니다 여러 가지가 있다는 것을 알 수 있죠 알았죠? 하지만 CRC 디렉터리에 특별히 주의를 기울일 수 있어요 CRC는 소스를 뜻하는데 소스 코드가 저장되는 곳이죠 CRC로 시드하고 화면을 클릭해서 살펴보면 한 무더기의 파일이 있는 게 보이시죠 Ls 데이터를 더 적은 명령에 파이프하죠 우선 말이죠 위아래로 스크롤하는 게 좀 더 쉬워졌죠 보다시피 .C로 끝나는 파일이 잔뜩 있어요 .C는 이 파일들이 모두 C 프로그래밍 언어로 작성되었다는 걸 의미합니다 새로운 소프트웨어가 작성된 프로그래밍 언어로는 아주 보편적인 거죠 작성된 날짜를 고려하면요 1980년대, 1990년대로요 LS 명령 뒤에 숨겨진 코드를 살펴보죠 가령, lhs요 ls를 ep out합시다 ls.c 파일이 여기 있는 게 보이시죠 어디 한 번 보죠 나노 ls.C 이렇게 하면 돼요 이게 소스 코드예요 이건 모두 소스 코드예요 우린 그걸 극대화하죠 LS 사령부의 소스 코드예요 정말 멋지지 않아요? 시간과 능력, 의도가 있다면 이 코드를 보면서 무슨 일이 벌어지는지 정확히 공부할 수 있어요 이게 자유 소프트웨어 운동의 목표 중 하나죠 보여드리죠 이 코드를 수정해 실행 중인 소프트웨어로 재편집할 수도 있어요 이제 해보려고요 이건 C# 프로그래밍에 관한 강의는 아니지만 모든 C# 프로그램에는 메인 함수라고 부르는 함수가 있어요 항상 실행되는 아주 중요한 함수죠 네 이제 이 함수를 수정해서 LHS가 실행될 때마다 컴퓨터가 프린트되도록 할게요 안녕하세요, 아름다운 관객 여러분 그걸 가능하게 하는 주요 함수에 약간의 코드를 입력할게요 이번 강의를 조금 준비한 결과 이 파일의 주요 기능은 1443번째 줄에서 시작하더군요 나노를 사용하면 라인 함수로 갑니다 컨트롤과 밑줄 옵션을 사용해서요 줄 1, 4, 4, 3을 입력하고 엔터를 누르면 메인 기능 마법이 나온 걸 보실 수 있어요 여기 맨 위에 프린트하는 코드를 정렬할 거예요 F를 프린트하고 여기에 넣죠 안녕하세요, 아름다운 여러분 백슬래시 n 캐릭터와 함께 새 라인에서 끝나게 하세요 이걸 탭해서 넘길게요 차이가 없어요 하지만 이게 더 낫잖아요 끝줄의 이 여분의 공간을 없애도록 하죠 상관없어요 하지만 어쩔 수 없죠 그래서 함수를 넣었어요 안녕하세요 뉴라인 캐릭터와 아름다운 사람들이죠 새 라인으로 넘어가요 Ctrl과 O로 파일을 저장하고 X의 Ctrl로 끝내면 LS 명령 코드를 수정했어요 아주 근사하죠 이제 어떻게 이 코드를 합리적인 프로그램으로 바꿔서 우리 컴퓨터에 설치할까요? C#으로 쓰여졌기 때문에 코드는 실행되기 전에 기계 언어로 컴파일되어야 하죠 컴파일러가 필요합니다 더 정확하게는 컴파일러가 C 프로그래밍 언어를 이해하는 것이죠 새로운 C 컴파일러, 즉 CC는 그누 리눅스 시스템에 사용된 컴파일러입니다 다음 명령을 입력하면 컴파일러를 알 수 있죠 다음 명령은 sudo apt get install DCC입니다 지금은 너무 걱정하지 마세요 이 명령이 어떤 의미인지 나중에 아주 상세히 설명할 예정이거든요 강의의 이 섹션에서 그 내용을 다룰 거예요 간단히 말해 컴퓨터에게 Ubuntu가 사용할 수 있는 소프트웨어 리포지토리에서 C 컴파일러 또는 GCC 패키지를 다운로드하라고 말하는 거죠 다음 몇 비디오에서 훨씬 더 명확해지겠지만 제가 한 대로 입력해 주세요 괜찮으시면 엔터를 누르세요 sudo를 사용해 봤기 때문에 비밀번호를 물을 겁니다 전에 sudo를 사용해 봤을 때처럼요 저기에 입력할게요 잘 됐으면 좋겠네요 행운을 빌어야죠 아뇨 다시 해 보죠 됐어요 GCC 패키지를 받으려면 패키지를 잔뜩 설치해야 한다고 하네요 약 72메가바이트의 추가 디스크 공간이 있어요 계속하실 건가요? 타자로 치면 돼요 네, 타이핑할게요 왜 엔터를 누르죠? 그렇게 할 거예요 인터넷 연결에 따라 시간이 좀 걸리겠지만 제 경우엔 다운로드 된 것 같네요 이제 그냥 설치만 하면 돼요 다운로드 된 다양한 패키지 각각을 풀기 시작할 겁니다 지금 설치 프로세스가 일어나는 걸 보고 있어요 이 과정의 후반부에 보다 상세히 살펴보겠지만 우린 어떤 마법사도 다운로드할 필요가 없었어요 다음, 다음, 다음, 다음 조건 같은 것에 동의할 필요가 없었죠 이 모든 소프트웨어가 공용 허가 하에 있고 모두 똑같이 똑같이 다르고 똑같이 자유롭거든요 이제 설치가 됐네요 아무것도 할 필요가 없었어요 C 컴파일러를 비롯해 여러 가지를 설치했는데요 이제 코드를 컴파일할 준비가 됐어요 이제 아름다운 소스 코드로 관심을 돌려보죠 컴퓨터마다 아키텍처가 다르기 때문에 특정 컴퓨터에 대한 이 코드 설치를 구성해야 해요 Configure라는 스크립트가 있어요 이제 소스죠 소스 폴더에 있어요 폴더에서 CD로 백업하고 점, 점 폴더를 백업하고 화면을 지우고 다시 보죠 Configure라는 스크립트가 있는 게 보이시죠? 초록색이라 스크립트인 걸 알 수 있어요 입력을 해서 실행해보죠 bash 구성하고 엔터를 누르죠 새로운 C 컴파일러와 GTC를 구성하는 것입니다 컴파일할 때 소프트웨어가 잘 작동하는지 컴퓨터의 아키텍처에 적절하게 작동하는지 확인하기 위해서죠 적절한 조정을 하는 거죠 새로운 C 컴파일러를 구성하는 것 외에 구성 스크립트가 하는 중요한 일은 Makefile이라는 새 파일을 생성한다는 거죠 Makefile은 이 새 소프트웨어 패키지 설치를 책임집니다 하지만 Makefile을 제대로 작동시키려면 혀가 꼬이죠 그건 그렇고 Make라는 새 명령어가 필요해요 구성이 끝나면 명령어를 설치할 거예요 방금 새로 설치한 것과 비슷하게요 C 컴파일러요 여기 잠시 앉아서 이 아름다운 텍스트들이 화면 위로 날아오르는 걸 보면 정말 근사하죠? 해커들이 나오는 영화와는 좀 다른 것 같아요 말 그대로 지금 그렇게 하고 있어요 그러니 자부심을 가지세요 네 이제 다 됐어요 이 디렉터리를 살펴보면 Makefile이라는 새 파일이 보일 텐데요 Makefile은 중요한 파일인데 그걸 실행할 수 있어야 하죠 지휘권을 잡아야 해요 그러기 위해서는 sudo apt get install make라고 입력하고 엔터를 누르면 유사한 설치 과정을 거치게 됩니다 이건 아주 빠르게 설치되었고 설치도 아주 쉽죠 네 메이크파일과 같은 폴더에서 메이크 명령을 실행하면 살펴본 결과 최근에 컴파일되지 않은 모든 C 파일들을 컴파일하는 것을 볼 수 있죠 아직도 변경된 게 좀 있어요 사실상 이 폴더의 모든 C 코드죠 LS 파일을 포함해서요 컴퓨터에서 실행될 수 있는 이진 코드로 컴파일하는 거죠 네 컴파일된 언어를 실행할 때 C# 프로그래밍 언어 같은 거요 그게 완료되면 새로 컴파일된 프로그램을 설치할 수 있죠 시간 절약 차원에서 영상은 여기서 자를게요 기다리실 필요 없어요 네 이제 완성됐네요 착륙지점 명령 코드를 찾았어요 알았죠? 코드를 수정하여 새로운 C 컴파일러를 설치했습니다 이것은 컴퓨터가 실행에 필요한 머신 코드로 코드를 바꾸는 데 필요한 것이죠 네 C 컴파일러를 설치했고 컴파일러가 컴퓨터의 요구사항에 맞게 제대로 작동하기 전에 설정을 해 놓았었죠 컴파일러를 구성하고 구성이 끝나면 명령어를 이용해서 실행을 합니다 코드의 모든 비트가 머신 코드로 바뀔 수 있도록요 네 이제 이 컴퓨터 코드가 있는 한 가지 단계는 해당 컴퓨터 코드를 실제로 작동하도록 경로 상 필요한 곳에 설치하는 거죠 그렇게 하는 방법은 유사수도 설치 명령을 이용하는 거죠 화면 형식 sudo 설치를 클릭하면 그런 걸 전부 설치해요 아주 빨랐죠 이제 버전 8에 딸려오는 다양한 소프트웨어를 설치했어요 주요 수술 도구 28개요 네 어떻게 작동하는지 살펴보죠 네 그래서 단말기를 닫았다가 다시 열면 이제 LZ 명령을 실행하면 안녕하세요라고 뜨는 걸 볼 수 있죠 여러분, 멋집니다 매번 실행될 때마다 코드를 수정하고 설치했거든요 정말 멋지죠? 네 오픈 소스와 무료 소프트웨어 만세예요 실제로 여기서 보여드린 것보다 훨씬 빠른 프로세스죠 다시 바꾸려면 소스 코드를 수정하고 make로 재편성하고 make 설치를 다시 설치하면 되죠 광고 다운로드로 돌아가 보면 프로세스가 훨씬 빨라요 좀 더 익숙해지면요 그래서 이렇게 됐죠 주요 유틸리티 파일이에요 소스 코드 폴더로 가보겠습니다 우리가 있는 곳이죠 네 나노로 넘어가죠 1443번 줄로 가서 이걸 지울 거예요 제가 입력한 줄인데 파일을 저장해요 알았죠? 이제 화면을 지울게요 이제 할 일은 do와 sudo make 설치를 하는 거죠 폴더를 잘못 찾았네요 됐어요 제조와 설치를 담당하죠 네 이제 명령어 만들기가 RLS 명령어를 컴파일하는 걸 보세요 그게 다른 점인 걸 아니까요 제 암호로 끝부분을 실행해보죠 설치할 수 있게요 이제 터미널을 닫았다가 다시 열고 LZ 명령을 사용하면 정상으로 돌아오죠 얼마나 빠른지 보이시죠? C 컴파일러를 일단 구성하면, 적어도 패키지에 대해서는 F로 구성하면 그 후의 수정이 정말 빠르죠 그건 메인 커맨드도 알고 있었기 때문입니다 우리의 변화에 영향을 받은 코드만 재구성하면 된다는 것을요 처음 시스템에 도입된 전체 패키지를 재구성할 필요가 없었죠 메이킹은 정말 기발한 프로그램이에요 LZ 프로그램의 새 버전을 설치했으니 반갑게 맞아 주던 인사는 사라지고 원래대로 돌아왔죠 자, 이 영상에 나오는 아름다운 여러분 닷 오르가슴 웹사이트의 소스 코드에 접근하는 걸 봤죠 소스 코드를 수정하는 법과 새 소프트웨어를 설치하기 위해 사용, 구성, 만드는 법도요 이제 멋진 점은 전국 리눅스 운영 체제의 모든 것에 대한 소스 코드에 접근해서 수정할 수 있다는 거죠 그걸 실천하고 싶다면 컴퓨터 작동에 관한 절대적인 권한을 갖게 되죠 오픈 소스 무료 소프트웨어가 컴퓨터에서 실행되는 게 얼마나 훌륭한 자산인지 보셨으면 해요 또한 이런 시스템의 선구자들이 이 시스템을 만들기 위해 들인 노력도 알 수 있죠 하지만 이 비디오에서 한 과정은 상대적으로 길었어요 때로는 그냥 소프트웨어를 설치하고 하던 일을 계속하고 싶을 수도 있죠 이를 위해 미리 축적된 대량의 코드를 관리합니다 소프트웨어 리포지토리라는 거죠 이 섹션의 리포지토리들을 이용해서 새로운 C 컴파일러를 설치할 수 있어요 make command와 소프트웨어 리포지토리들은 99%의 경우에 소프트웨어를 설치하는 데 사용됩니다 정말 멋진 기능들이 많아요 이제 그걸 이해하셨으니 소스 코드를 찾아보고 컴퓨터가 작동하는 방식을 수동으로 수정할 수 있어요 방대한 양의 소프트웨어 라이브러리에 접근할 수 있는 우선순위로 미리 컴파일된 소프트웨어 리포지토리들을 살펴보죠 어떻게 작동하는지 함께 보시죠 그럼 다음 영상에서 만나요