"업스트림"이란 무엇입니까?


27

나는 사람들이 소프트웨어 등을 디자인 할 때 "업스트림 병합"이 더 좋다고 말하는 것을 항상 듣는다. 나는 주류 리눅스 커널과 관련이 있다고 생각하지만 아마도 틀렸다.

또한 "업스트림"과 반대되는 것은 무엇입니까? "업스트림"으로가는 것이 좋지 않은 경우 대안은 무엇이고 왜 그런가?

답변:


33

업스트림은 논의중인 구성 요소의 작성자를 나타냅니다.

예를 들어 libtransmission을 기반으로하는 토렌트 클라이언트를 작성한 경우, 클라이언트에서 libtransmission으로 추적되는 버그가 발견됩니다. 버그는 이제 클라이언트에 포함 된 패치로 수정되었습니다.

이 컨텍스트에서 패치를 업스트림으로 병합하면 패치를 libtransmission 작성자에게 보내서 포함시킬 수 있습니다. 이런 식으로 수정 사항은 libtransmission을 기반으로하는 모든 프로젝트에 전파됩니다.

업스트림 병합의 대안은 패치를 유지하는 것입니다.


그래서 모든 업스트림을 병합하는 것은 오픈 소스 사고 방식과 함께 진행됩니까? 여러 소프트웨어에 대한 하나의 수정?
n0pe

4
업스트림 병합은 소스에 액세스 할 수 있고 버그를 직접 찾아서 수정할 수 있기 때문에 오픈 소스 소프트웨어로 수행 할 수있는 작업입니다. 비공개 소스에서는 대부분의 당사자가 그러한 액세스 권한을 갖지 못하지만 (일부 상황에서는 라이센스에 라이센스가 포함될 수 있음) 버그보고 및 / 또는 해결 방법 찾기로 제한됩니다. 업스트림은 소프트웨어 개발에 대한 다층 접근 방식을 말하며 버그 수정뿐만 아니라 개선에도 적용됩니다.
plco

다른 말로 표현하자면 : "업스트림"은 "소스를 얻는 사람"을 의미합니다. 오픈 소스 세계 외부에서는 소스를 전혀 얻지 못했기 때문에 업스트림이 없습니다. =)
rakslice 1

21

우분투를 예로 사용합니다.

우분투는 크고 작은 많은 소프트웨어를 하나로 묶은 배포판입니다. 그래픽 드라이버, X 서버 및 Gnome이 있습니다. 우분투 자체는 이러한 소프트웨어를 개발하지 않습니다. 우분투는 소프트웨어를 함께 포장하여 개별 구성 요소가 함께 작동하는지 확인합니다. Ubuntu가 함께 제공하는 모든 소프트웨어 는 Ubuntu의 관점에서 업스트림 이라고 합니다.

모든 소프트웨어를 결합하는 과정에서 버그가 발생할 수 있습니다. 버그는 소프트웨어 구성 요소 중 하나 (예 : gnome)에 있거나 우분투가하는 특별한 방식 일 수 있습니다. 결국, 배포판은 배포판이 매우 특별한 방식으로 수행되기 때문에 배포판입니다.

우분투가하는 방식으로 버그가 발생하면 우분투는 그 버그를 스스로 수정해야합니다. 버그가 실제로 Gnome과 같은 소프트웨어 구성 요소 중 하나에있는 경우 Ubuntu는 Gnome을 패치해야합니다. Ubuntu가 패치를 Gnome으로 다시 보낼 때 다른 사람들도 패치의 혜택을 볼 수 있으면 Ubuntu는 해당 패치를 업스트림으로 보냅니다 .

우분투가 해당 패치를 업스트림으로 보내지 않기로 결정하거나 업스트림 프로젝트가 패치를 거부하면 (우분투가 여전히 패치를 유지하기로 결정한 경우) 우분투는 기술적 으로 프로젝트를 분기 했습니다.

업스트림의 반대쪽은 다운 스트림이되고, 우분투는 그놈의 다운 스트림입니다. 자주 사용되는 용어를 듣지 못합니다.

Wikipedia의 업스트림대한 기사 도 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.