우분투 소프트웨어 설치 패키지 생성

슉@Naver의 이미지

안녕하세요.
우분투 소프트웨어 패키지 업데이트 하는 방법을 질문드리고자 글 남깁니다.
예를 들어 현재 시점에 automake-1.0.0, make-1.0.0, vim-1.0.0이 설치되어 있고, 1년 후 automake-2.0.0, make-2.0.0, vim-2.0.0을 업데이트 하기 위한 방법을 조사하고 있습니다.
설정파일들, 라이브러리, 실행파일 등이 고려 사항이 되겠네요.
지금 생각나는건 A,B,C 패키지들과 기존 패키지들을 삭제하고 새로 설치하는 스크립트를 함께 압축하여, 압축을 풀고 스크립트를 수행하면 호환성 유지하면서 가능하지 않을까 싶은데, 혹시 다른 방법이 있는지 알고 싶어서 질문 드립니다.
참고 할 만한 자료나 키워드 알려주시면 너무 고맙겠습니다.
감사합니다.

세벌의 이미지

https://discourse.ubuntu-kr.org/
우분투 커뮤니티에 물어보는 건 어떤가요? 우분투 관련 질문이니...

슉@Naver의 이미지

좋은 정보 감사합니다

김정균의 이미지

보통 배포본들은 패키지 설치나 관리 시에 직접 compile 을 하는 형태 보다는 만들어 놓은 binary 파을을 묶은 패키지를 만들고, 이를 관리하는 도구를 제공합니다. 대표적인 것이 rpm, yum 과 deb, dselect/apt 같은 것들 입니다.

그리고, 이 패키지 매니저들은 각 패키지들의 의존성 관리를 하고 있습니다. 그러므로 기본으로 설치된 프로그램의 의존성이 넓을 경우, 그 패키지를 제거 했을 때 발생할 수 있는 문제가 아주 커 질 수 있습니다.

그러므로, 패키지 매니저에서 제공하지 않는 버전의 경우에는 별도의 경로에 설치를 해서 충돌이 되지 않게 관리를 하는 것이 좋습니다.

예를 들어, autoconf 1.0 과 autoconf 2.0 을 예로 든다면, 설치 시에 ./configure 의 prefix를 /opt/autoconf-1.0 또는 /opt/autoconf-2.0 으로 주고 충돌되지 않게 설치를 해 주는 거죠.

일단은 이런 문제에 대해서는 각 배포본에서 제공하는 패키지 매니저에 대해서 더 알아보실 필요가 있습니다.

그리고 배포본의 경우에는 기본으로 제공하는 패키지에 대해서 거의 patch level 업데이트만 제공을 합니다. minor update 의 경우에도 배포본 버전이 minor update 가 될 경우나 대부분 제공이 되지, 동일 버전에서는 patch level 업데이트만 제공이 됩니다. 이 이유가 다른 프로그램들과의 버전 의존성 때문이 있고, patch level 업데이트만 진행하는 이유는 안전성 지향이 목적으로 있기 때문 입니다. 이런 경향은 특히나 enterprise 버전에서는 더 강조가 됩니다.

패키지 버전 업데이트가 생각보다 간단한 작업이 절대 아닙니다. 그야말로 갑자기 서버가 죽어서 부팅이 되지 않을 경우도 발생을 할 수가 있습니다.

무한포옹의 이미지

고민해보셨으니 아시겠지만 library 버전이 명백히 다르면 여러, 레거시 버전과 공존하는 게
가능합니다.
__________________________________________________________________________
ii libsdl1.2-dev 1.2.15+dfsg2-6 amd64 Simple
ii libsdl1.2debian:amd64 1.2.15+dfsg2-6 amd64 Simple
ii libsdl2-2.0-0:amd64 2.0.22+dfsg-6.1~22.04.sav3 amd64 Simple
ii libsdl2-2.0-0:i386 2.0.22+dfsg-6.1~22.04.sav3 i386 Simple
ii libsdl2-dev:amd64 2.0.22+dfsg-6.1~22.04.sav3 amd64 Simple
_____________________________________________________________________________
그런데 명령어는 좀 어려울 거 같습니다. 다들 같은 이름으로 /bin 이나 /usr/bin에 깔릴테니까요.

명령어 자체로 버전 구분을 하고 있지 않다면 대혼란(python, python2, python3) 파티가 될 거 같아요.

그래서~~~~
그런 의존성을 풀어가는 게 어렵기 때문에 아몰랑이 가능하도록
점점 컨테이너를 어플리케이션, 시스템 배포할 때 많이 사용하겠지요.

다르지만 비슷한 접근 방식으로 snap 이나 flatpak 을 이용해서 분리된 환경의 실행파일을 사용하는 것도 방법인 것 같습니다.

== warning 대부분 틀린 얘기입니다 warning ===

-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.