티스토리 뷰

반응형

우분투에서 프로그램을 개발하고 배포하는 과정은 여러 단계로 나뉩니다. 아래는 간단한 가이드라인입니다.

1. 프로그램 개발:
   - 원하는 언어 및 프레임워크를 선택하고 개발을 시작합니다.
   - 코드를 효율적으로 작성하고 필요한 기능을 구현합니다.

2. 의존성 관리:
   - 프로그램이 의존하는 라이브러리 및 패키지를 정확하게 관리합니다.
   - 프로그램이 필요로 하는 의존성을 명시하는 설정 파일을 작성합니다. (예: requirements.txt)

3. 프로그램 테스트:
   - 프로그램을 테스트하여 버그를 찾고 수정합니다.
   - 단위 테스트 및 통합 테스트를 수행하여 프로그램의 안정성을 확인합니다.

4. 문서화:
   - 사용자 및 개발자를 위한 문서를 작성합니다.
   - 프로그램의 설치, 사용 방법, 설정 등에 대한 자세한 설명을 포함합니다.

5. 배포 스크립트 작성:
   - 프로그램을 쉽게 배포할 수 있도록 스크립트를 작성합니다.
   - 예를 들면, 설치 스크립트 또는 패키지 관리자를 통한 배포 스크립트를 작성할 수 있습니다.

6. 라이선스 확인:
   - 프로그램에 사용된 라이브러리 및 코드가 모두 적절한 라이선스에 따라 사용되고 있는지 확인합니다.

7. 배포:
   - 배포를 위해 프로그램과 관련 파일들을 압축하거나 패키지로 만듭니다.
   - 필요한 경우, 프로그램을 패키지로 만들어 Ubuntu 소프트웨어 센터 또는 APT (Advanced Package Tool)를 통해 쉽게 설치할 수 있도록 배포합니다.

8. 온라인 저장소에 업로드:
   - 프로그램과 관련 파일을 온라인 저장소에 업로드하고 다른 사용자들이 손쉽게 다운로드할 수 있도록 합니다.

9. 커뮤니케이션:
   - 프로그램에 대한 정보를 블로그, 포럼, 또는 소셜 미디어 등을 통해 공유하여 사용자들과 소통합니다.

이러한 단계를 따르면 프로그램을 효과적으로 개발하고 배포할 수 있습니다. Ubuntu에서는 DEB 패키지를 통한 배포가 일반적이며, 이에 대한 자세한 내용은 Ubuntu 공식 문서 및 관련 자료를 참고하시면 도움이 될 것입니다.

 

 

 

 

우분투에서 Visual Studio Code로 프로그램 작성하기

우분투에서 Visual Studio Code를 사용하여 C 프로그램을 작성하는 방법입니다.


1. Visual Studio Code 설치:
   - 우분투 터미널에서 다음 명령어를 사용하여 Visual Studio Code를 설치합니다.

sudo snap install --classic code


    error: snap "code" is not available on stable for this architecture (arm64) but
       exists on other architectures (amd64).

=>나는 ARM64라서 안됨.

https://code.visualstudio.com/download#

 

Download Visual Studio Code - Mac, Linux, Windows

Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experience a redefined code editor, optimized for building and debugging modern web and cloud applications.

code.visualstudio.com

 

설치가 되나보다...

 

설치가 되었다.

 

 

화면 왼쪽상단 마우스 클릭하고, "code"검색해서 실행한다.

(왜 바탕화면에 아이콘 안만들어 놓지??  어디 있는지 찾을 수 가 없네...)

 

 


2. C/C++ 확장팩 설치:
   - Visual Studio Code를 실행하고, 왼쪽 사이드바에서 확장 아이콘을 클릭합니다 (또는 `Ctrl + Shift + X`).
   - "c/c++"를 검색하고 Microsoft에서 제공하는 "C/C++" 확장을 설치합니다.

3. C 컴파일러 설치:
   - C 프로그램을 실행하려면 C 컴파일러가 필요합니다. 대표적인 C 컴파일러로는 `gcc`가 있습니다.   

sudo apt-get install gcc




4. 프로젝트 생성:
   - 프로젝트를 저장할 디렉토리를 만들고 해당 디렉토리로 이동합니다.
   - Visual Studio Code에서 `File > Open Folder`를 선택하여 프로젝트 디렉토리를 엽니다.

5. 새 C 파일 생성:
   - Visual Studio Code에서 `File > New File`을 선택하여 새 C 파일을 만듭니다.
   - 예를 들어, `main.c`와 같이 파일 이름을 지정하고 코드를 작성합니다.

6. 코드 작성:
   - `main.c` 파일에서 C 코드를 작성합니다.

7. 컴파일 및 실행:
   - 터미널에서 `gcc` 컴파일러를 사용하여 프로그램을 컴파일합니다.  

gcc -o output_file_name source_file.c



   - 컴파일이 성공하면 실행 파일이 생성됩니다. 이제 터미널에서 실행 파일을 실행할 수 있습니다.  

./output_file_name




8. 디버깅 (선택 사항):
   - Visual Studio Code에서 디버깅 기능을 사용하려면 디버그 확장을 설치하고 설정해야 합니다.

이제 Visual Studio Code를 사용하여 C 프로그램을 작성하고 실행할 수 있습니다.

 

 

 

 

아래 코드로 c파일 작성

#include "stdio.h"
#include "stdlib.h"

int main()
{
printf("Hello, World!");
return 0;
}

 


Hello, World![1] + Done                       "/usr/bin/gdb" --interpreter=mi --tty=${DbgTerm} 0<"/tmp/Microsoft-MIEngine-In-u3t2ry11.vvc" 1>"/tmp/Microsoft-MIEngine-Out-zlpmch2t.nzw"
a@a-desktop:~$ 

 

=thread-group-added,id="i1"
GNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "aarch64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Warning: Debuggee TargetArchitecture not detected, assuming x86_64.
=cmd-param-changed,param="pagination",value="off"
Stopped due to shared library event (no libraries added or removed)
Loaded '/lib/ld-linux-aarch64.so.1'. Symbols loaded.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".

Breakpoint 1, main () at /home/a/Desktop/test1/main.c:6
6     printf("Hello, World!");
Loaded '/usr/lib/aarch64-linux-gnu/libgtk3-nocsd.so.0'. Symbols loaded.
Loaded '/lib/aarch64-linux-gnu/libc.so.6'. Symbols loaded.
Loaded '/lib/aarch64-linux-gnu/libdl.so.2'. Symbols loaded.
Loaded '/lib/aarch64-linux-gnu/libpthread.so.0'. Symbols loaded.
[Inferior 1 (process 8081) exited normally]
The program '/home/a/Desktop/test1/main' has exited with code 0 (0x00000000).

 

 

 

 

이제 시작했는데, 뭐가 이리 복잡해...

Configure C/C++ debugging

 

(그나 저나, 화면 캡쳐 인터페이스 되게 불편하네...)

shutter 프로그램설치하면 편하다고 한다.

ctrl + alt + t

sudo apt install shutter

1줄 넣으면 자동으로 설치가 되는데, 뭔가 편한거 같으면서도, 왜 이ㅈㄹ하는지 모르겠다...

 

 

 

 

다시 빌드

결과물 파일은 어디에 있는거여?

11.7kB 짜리 파일이 실행파일임. 그냥 실행 안됨. 명령창에서 실행해야함.

흰색 빈곳에 마우스 우클릭하면 터미널창을 띄울 수 있음. 또는 CTRL+ALT+T

 

 

 

다른사람들에게 배포하는 방법

`myprogram`을 다른 사용자에게 배포하는 방법은 여러 가지가 있습니다. 아래는 간단한 방법들 중 일부입니다.

1. 바이너리 파일 직접 전달
- 컴파일된 바이너리 파일 (`myprogram`)을 다른 사용자에게 직접 전달합니다.
- 사용자는 받은 파일을 실행하여 프로그램을 실행할 수 있습니다.

2. 소스 코드 전달 및 빌드 스크립트 제공
- 소스 코드 파일 (`main.c` 등)과 빌드 스크립트(컴파일 및 빌드를 자동화하는 스크립트)를 함께 전달합니다.
- 사용자는 빌드 스크립트를 실행하여 소스 코드를 빌드하고 프로그램을 실행할 수 있습니다.

3. 패키지 관리자를 통한 설치
- 프로그램을 패키지로 만들어 패키지 관리자를 통해 배포할 수 있습니다.
- Ubuntu에서는 DEB 패키지를 사용할 수 있습니다. 패키지 관리자로 설치 및 제거가 간편하게 이루어집니다.

4. 소스 코드를 오픈 소스로 공개
- `myprogram`의 소스 코드를 GitHub 또는 GitLab과 같은 온라인 저장소에 공개하고 오픈 소스 라이선스를 적용합니다. 이를 통해 다른 사용자들이 소스 코드를 검토하고 사용할 수 있습니다.

5. 커뮤니티 저장소에 등록
- 프로그램을 다양한 운영 체제의 커뮤니티 저장소에 등록하여 다른 사용자들이 쉽게 찾고 설치할 수 있도록 합니다.

여러 방법 중에서 선택할 때는 대상 사용자의 편의성, 배포의 목적, 프로그램의 복잡성 등을 고려하여 적절한 방법을 선택하는 것이 중요합니다.

 

 

 

프로그램을 패키지로 만들어 패키지 관리자를 통해 배포하는 방법의 장점

프로그램을 패키지로 만들어 패키지 관리자를 통해 배포하는 방법은 여러 가지 장점을 제공합니다. 아래는 그 중 일부를 소개합니다.

1. 쉬운 설치 및 업데이트
   - 사용자가 패키지 관리자를 통해 프로그램을 설치하면 의존성 및 버전 관리 등을 자동으로 처리할 수 있습니다.
   - 패키지 관리자를 통해 설치된 프로그램은 간편하게 업데이트할 수 있습니다.

2. 시스템 일관성 유지
   - 패키지 관리자를 사용하면 시스템에 설치된 소프트웨어가 일관성을 유지하게 됩니다. 버전이나 의존성의 충돌을 방지할 수 있습니다.

3. 의존성 해결
   - 패키지 관리자는 프로그램이 필요로 하는 라이브러리 및 다른 의존성을 자동으로 해결합니다. 이로써 사용자는 필요한 라이브러리를 별도로 수동으로 찾아 설치할 필요가 없습니다.

   (프로그램 작성시 사용한 라이브러리가 없다면, 해당 라이브러리를 자동으로 설치한다.)

   (필요한 라이브러리를 설치해주는 쉘스크립트가 있다면, deb 패키지 배포할 필요는 없어보인다.)

4. 쉬운 제거
   - 패키지 관리자를 통해 설치된 프로그램은 간편하게 제거할 수 있습니다. 이로써 시스템에서 불필요한 프로그램이나 파일을 손쉽게 정리할 수 있습니다.

    (프로그램 작성에 사용한 라이브러리가 있다면, 같이 제거한다)

5. 보안 강화
   - 패키지 관리자는 보안 업데이트 및 취약점 패치를 쉽게 적용할 수 있습니다. 이를 통해 시스템의 보안성을 강화할 수 있습니다.

6. 표준화
   - 패키지 관리자를 사용하면 소프트웨어 배포와 관리가 표준화되어 있어 시스템 관리자나 사용자들이 일관된 경험을 얻을 수 있습니다.

7. 배포 및 관리 용이성
   - 패키지 관리자를 사용하면 프로그램의 배포 및 관리가 용이해집니다. 패키지는 표준화된 형식으로 구성되어 있어 배포 및 관리 작업이 단순화됩니다.

8. 문서화 및 메타데이터 관리
   - 패키지 관리자를 사용하면 패키지에 대한 문서화 및 메타데이터를 쉽게 관리할 수 있습니다. 이는 사용자가 패키지에 대한 정보를 쉽게 얻을 수 있도록 합니다.

이러한 장점들은 특히 서버, 클라이언트, 임베디드 시스템 등 여러 환경에서 프로그램 배포와 관리를 간편하게 만들어줍니다.

 

 

 

 

 

Ubuntu의 공식 update 서버에 프로그램을 등록하고 배포

GPG 키 생성

Debian 패키지 빌드

Launchpad 계정 생성

PPA에 소스 코드 등록

등....좀 복잡하다.

 

 

 

 

 

수정된 소스코드를 apt로 업로드하는 방법

소스 코드를 수정하고 이를 패키지로 다시 빌드하여 APT 저장소에 업로드하는 것은 일반적으로 Debian 또는 Ubuntu의 공식 배포자나 유지 보수자에게 허용된 작업입니다. 아래는 이러한 프로세스를 개략적으로 설명한 것입니다. 이 프로세스는 유효한 개발자 또는 패키지 유지자 인증이 필요합니다.

1. 소스 코드 수정

원하는 소스 코드를 수정합니다. 이는 버그 수정, 기능 추가 또는 보안 업데이트와 같은 것일 수 있습니다.

2. 패키지 빌드

수정된 소스 코드를 사용하여 패키지를 빌드합니다. 이를 위해 `dpkg-buildpackage` 또는 `debuild`과 같은 도구를 사용할 수 있습니다. 이러한 도구는 소스 코드를 패키지로 빌드하고 `.deb` 형식의 바이너리 패키지를 생성합니다.

3. 패키지 테스트

생성된 패키지가 원하는 대로 작동하는지 확인하기 위해 테스트를 수행합니다.

4. APT 저장소 업로드

생성된 `.deb` 패키지를 APT 저장소에 업로드합니다. 이를 위해 `dput` 도구를 사용할 수 있습니다. 업로드를 수행하려면 이전에 `.dput.cf` 파일을 구성해야 합니다. 이 파일에는 저장소의 설정이 포함되어 있으며, 업로드를 어떻게 수행할 것인지에 대한 정보가 담겨 있습니다.

5. APT 저장소 업데이트

패키지가 저장소에 업로드되면 저장소 메타데이터를 업데이트해야 합니다. 이를 위해 `apt-ftparchive`를 사용하여 저장소를 다시 구성하고 `apt-get update` 명령을 사용하여 클라이언트에서 저장소를 업데이트합니다.

6. 패키지 배포

저장소가 업데이트되면 사용자가 패키지를 업데이트할 수 있도록 배포합니다. 사용자는 `apt-get` 또는 `apt` 명령을 사용하여 새로운 버전의 패키지를 설치하고 업그레이드할 수 있습니다.

이러한 작업을 수행하려면 Debian 또는 Ubuntu의 패키지 관리자로부터 적절한 권한과 절차를 따르는 것이 중요합니다.

 

 

 

 

 

 

우분투에서 소스코드 빌드 방법


1. 의존성 설치

먼저 빌드에 필요한 의존성 패키지를 설치해야 합니다. 대부분의 소프트웨어는 빌드하기 위해 필요한 패키지 목록을 제공합니다.

sudo apt-get update
sudo apt-get install build-essential



2. 소스 코드 다운로드

원하는 버전의 소스 코드를 다운로드합니다. 일반적으로 소스 코드는 tarball 형식으로 제공됩니다. 다운로드 후 압축을 해제합니다.

3. 빌드 디렉토리로 이동

소스 코드를 저장한 디렉토리로 이동합니다.

cd path/to/source/code



4. 빌드

일반적으로 다음과 같은 순서로 빌드를 진행합니다.

./configure
make
sudo make install

 ./configure : 빌드 환경을 설정

make : 소스 코드를 컴파일하여 실행 파일을 생성

sudo make install : 생성된 실행 파일을 시스템에 설치  

5. 설치 확인

소스 코드를 성공적으로 빌드하고 설치했다면, 해당 프로그램이 제대로 작동하는지 확인합니다.


반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함