임베디드 프로그래밍이라는 과목을 듣게 됐습니다. 여기서 질문드립니다

우분투 처음 사용하는 학생입니다.

보드는 achro 210t 를 사용하고요. 우분투 10.04LTS 와 함께 사용할 것 같습니다.

제가 궁금했던 부분이 우분투 버전업이 아닌 소프트웨어 업데이트를 해도 되느냐는 것이었는데요.

보드 제조사에 직접 전화를 하여 문의를 드렸더니 우분투간 버전업이 없으면 git 이 업데이트가 안되기 때문에 컴파일러는 메이저 버전업이 안 된다. 따라서 소프트웨어 업데이트가 가능하다는 답변을 받았습니다.

여기서 질문은

10.04 내에서 git 버전업이 안될거라는 보장이 없는데, 즉 만약 git 버전업이 된다면 컴파일러 등 보드에 직접적인 호환성에 영향을 끼치는 소프트웨어들이 업데이트가 될 수 도 있지 않습니까?

고수분들의 의견이 궁금하네요~

업데이트 안 하고 그냥 써도 되는데 그냥 우분투라는 게 어떻게 돌아가는 것인지 궁금해서요…

우분투 14.04까지 나왔는데 10.04는 좀 예전버전 같은데…
바라는 답변 나오려면 이곳은 오래 걸릴지도 모릅니다. :oops:
궁금하신 것 핵심 단어를 이용하여 구글에 영어로 물어보시는 게 더 빠를지도.

git 버전업이라는 의미를 잘 모르겠네요

git는 소스 버전 컨트롤 시스템이라, 소스레벨로 버전업을 한다는 말인가요?
git로 소프트웨어를 업그레이드하는 것에 대해서는, 그 소프트웨어를 제공하는 측에 따라 버전이 결정되지만,
의존되는 소프트웨어나 라이브러리의 경우는, 대체로 그렇지 않습니다.
git로 제공되는 소프트웨어의 버전을 업그레이드 하더라도, 의존되는 소프트웨어나 라이브러리를 git내에서 제공하는 경우는
극히 드물고, 또한 시스템 소프트웨어나 라이브러리까지 제공할리는 만무합니다.
그러니, 시스템 소프트웨어나 라이브러리는 이미 설치된 상태이거나, 필요한 버전을 설치하기를 요구하게 되고,
사용자가 설치해줘야 하는데, 이때 의존성의 문제가 생깁니다.
시스템 라이브러리가 git에서 제공하는 소프트웨어의 요구버전과 다를 경우, 둘 중 하나를 포기해야 되죠.
git 소프트웨어를 포기하던, 시스템버전을 업그레이드/다운그레이드 하던 말이죠.
git로 컴파일 설치하는 경우, 일반적인 설정의 prefix는 /usr/local이 되고, 설치 또한 /usr/local/bin등에 실행파일이 놓이므로,
시스템의 파일과 충돌하는 경우는 별로 없습니다. 그러나 PATH 검색 순서에 따라, 실행되는 명령이 달라질 수 는 있죠.

git가 아니라, 일반 소프트웨어 레포지터리의 경우는, 우분투 버전 별로, 레포지터리의 주소 경로 자체가 달라지기 때문에…
예를 들어, 12.04에서 소프트웨어 업그레이드 한다고, 14.04버전의 프로그램으로 교체될리는 없습니다.
물론 이런 것이 필요할 경우는 ppa레포지터리를 사용할 수 있죠
/etc/apt/sources.list.d나 /etc/apt/sources.list에 lucid대신 trusty등의 다른 레포지터리를 추가하면,
중복된 버전의 경우, 최신버전인 trusty로 적용받습니다.

이때, 강제적으로 버전을 선택할 필요가 있을때에는
sudo apt-get install 소프트웨어=버전 과 같은 형식으로 버전을 선택할 수 있습니다.
이걸 응용해서 우분투 자체의 다운그레이드도 가능하지만, 별로 추천하고 싶지 않으며, 의존성의 문제가 발생할 소지가 큽니다.

우분투자체의 버전업과 소프트웨어 레포지터의 교체는 사실 다르지 않습니다.

예를들어, 12.04를 설치하신 후, /etc/apt/sources.list에서 lucid 대신, trusty로 바꾸고 난후,
sudo apt-get update && sudo apt-get dist-upgrade 명령을 하면,
12.04에서 14.04로 업그레이드를 시도할 것입니다.
물론 다분히 의존성 문제가 발생할 경우가 크지만 만일 업그레이드가 성공적으로 끝난다면,
그 우분투 시스템은 이미 14.04로 설치한 것과 다르지 않습니다.

주로 새로운 배포판이 나왔다고, 기존 시스템을 백업하고, 새 버전으로 설치하지 않고,
sudo update-manager -d 나, sudo do-release-upgrade -d 명령으로 업그레이드를 시도해보고,
잘 안되면, /etc/apt/sources.list를 변경해서, 업그레이드 합니다.

마찬가지로, 다운그레이드도 했었습니다.
lxqt가 utopic에 추가되어 있길래, utopic으로 업글해봤다가

다운그레이드해서 사용중입니다.
물론 다운그레이드할 때, 많이 고생했지만 말입니다.

정리하자면,
우분투 배포판 자체의 교체와 소프트웨어 레포지터리를 교체한 후, 업그레이드 하는 것은 다르지 않습니다.
또한 git레포지터리로 소프트웨어를 업그레이드 하더라도, 대부분의 라이브러리는 시스템에 기설치를 요구하며,
이 경우, 필요한 라이브러리 버전이나 시스템 라이브러리의 의존성에 만족되지 않으면 git소스를 포기하거나, 우분투버전을 맞춰줘야 할 것입니다.
그러니 대부분의 경우, git 레포지터리보다는 ppa 레포지터리가 훨씬 우분투에 문제 발생의 소지가 적습니다.

gcc의 경우, 위의 답변처럼 우분투자체를 버전업하거나, ppa 레포지터리로 gcc자체를 교체하지 않는 이상,
gcc 버그픽스의 마이너버전 업그레이드는 될 지 모르지만, 메이저 버전 업그레이드는 이루어지지 않습니다.
이러한 근본적인 이유는 필요한 libc 버전자체가 달라, 의존되는 것이 너무나 많기 때문입니다.
libc자체의 버전 교체는 대부분 배포판의 업그레이드를 통해 이루어집니다.

답변 감사드립니다. 정말 많은 공부 됩니다… :)