自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

開(kāi)源軟件的分支與發(fā)行版有什么不同?

開(kāi)源
開(kāi)源軟件的發(fā)行版和分支是不一樣的。了解其中的區(qū)別和潛在的風(fēng)險(xiǎn)。如果你們對(duì)開(kāi)源軟件有過(guò)一段時(shí)間的了解,一定曾在許多相關(guān)方面中聽(tīng)說(shuō)過(guò)分支fork和發(fā)行版distribution兩個(gè)詞。許多人對(duì)這兩個(gè)詞的區(qū)別不太清楚,因此我將試著通過(guò)這篇文章為大家解答這一疑惑。

如果你們對(duì)開(kāi)源軟件有過(guò)一段時(shí)間的了解,一定曾在許多相關(guān)方面中聽(tīng)說(shuō)過(guò)分支fork和發(fā)行版distribution兩個(gè)詞。許多人對(duì)這兩個(gè)詞的區(qū)別不太清楚,因此我將試著通過(guò)這篇文章為大家解答這一疑惑。

[[412660]]

(LCTT 譯注:fork 一詞,按我們之前的倡議,在版本控制工作流中,為了避免和同一個(gè)倉(cāng)庫(kù)的 branch 一詞混淆,我們建議翻譯為“復(fù)刻”。但是在項(xiàng)目和發(fā)行版這個(gè)語(yǔ)境下,沒(méi)有這個(gè)混淆,慣例上還是稱之為“分支”。)

首先,一些定義

在解釋分支與發(fā)行版兩者的細(xì)微區(qū)別與相似之處之前,讓我們先給一些相關(guān)的重要概念下定義。

開(kāi)源軟件是指具有以下特點(diǎn)的軟件:

  • 在特定的 許可證 限制下,軟件供所有人免費(fèi)分發(fā)
  • 在特定的許可證限制下,軟件源代碼可以供所有人查看與修改

開(kāi)源軟件可以按以下方式 使用:

  • 以二進(jìn)制或者源代碼的方式下載,通常是免費(fèi)的。(例如,Eclipse 開(kāi)發(fā)者環(huán)境)
  • 作為一個(gè)商業(yè)公司的產(chǎn)品,有時(shí)向用戶提供一些服務(wù)并以此收費(fèi)。(例如,紅帽產(chǎn)品)
  • 嵌入在專有的軟件解決方案中。(例如一些智能手機(jī)和瀏覽器用于顯示字體的 Freetype 軟件)

自由開(kāi)源軟件free and open source software(FOSS)不一定是“零成本”的“免費(fèi)free”。自由開(kāi)源軟件僅僅意味著這個(gè)軟件在遵守軟件許可證的前提下可以自由地分發(fā)、修改、研究和使用。軟件分發(fā)者也可能為該軟件定價(jià)。例如,Linux 可以是 Fedora、Centos、Gentoo 等免費(fèi)發(fā)行版,也可以是付費(fèi)的發(fā)行版,如紅帽企業(yè)版 Linux(RHEL)、SUSE Linux 企業(yè)版(SLES)等。

社區(qū)community指的是在一個(gè)開(kāi)源項(xiàng)目上協(xié)作的團(tuán)體或個(gè)人。任何人或者團(tuán)體都可以在遵守協(xié)議的前提下,通過(guò)編寫(xiě)或?qū)彶榇a/文檔/測(cè)試套件、管理會(huì)議、更新網(wǎng)站等方式為開(kāi)源項(xiàng)目作出貢獻(xiàn)。例如,在 Openhub.net 網(wǎng)站上,我們可以看見(jiàn)政府、非營(yíng)利性機(jī)構(gòu)、商業(yè)公司和教育團(tuán)隊(duì)等組織都在 為一些開(kāi)源項(xiàng)目作出貢獻(xiàn)。

一個(gè)開(kāi)源項(xiàng)目project是集協(xié)作開(kāi)發(fā)、文檔和測(cè)試的結(jié)果。大多數(shù)項(xiàng)目都搭建了一個(gè)中央倉(cāng)庫(kù)用來(lái)存儲(chǔ)代碼、文檔、測(cè)試文件和目前正在開(kāi)發(fā)的文件。

發(fā)行版distribution是指開(kāi)源項(xiàng)目的一份的二進(jìn)制或源代碼的副本。例如,CentOS、Fedora、紅帽企業(yè)版 Linux(RHEL)、SUSE Linux、Ubuntu 等都是 Linux 項(xiàng)目的發(fā)行版。Tectonic、谷歌的 Kubernetes 引擎(GKE)、亞馬遜的容器服務(wù)和紅帽的 OpenShift 都是 Kubernetes 項(xiàng)目的發(fā)行版。

開(kāi)源項(xiàng)目的商業(yè)發(fā)行版經(jīng)常被稱作產(chǎn)品products,因此,紅帽 OpenStack 平臺(tái)是紅帽 OpenStack 的產(chǎn)品,它是 OpenStack 上游項(xiàng)目的一個(gè)發(fā)行版,并且是百分百開(kāi)源的。

主干trunk是開(kāi)發(fā)開(kāi)源項(xiàng)目的社區(qū)的主要工作流。

開(kāi)源分支fork是開(kāi)源項(xiàng)目主干的一個(gè)版本,它是分離自主干的獨(dú)立工作流。

因此,發(fā)行版并不等同于分支。發(fā)行版是上游項(xiàng)目的一種包裝,由廠商提供,經(jīng)常作為產(chǎn)品進(jìn)行銷(xiāo)售。然而,發(fā)行版的核心代碼和文檔與上游項(xiàng)目的版本保持一致。分支,以及任何基于分支的的發(fā)行版,導(dǎo)致代碼和文檔的版本與上游項(xiàng)目不同。對(duì)上游項(xiàng)目進(jìn)行了分支的用戶必須自己來(lái)維護(hù)分支項(xiàng)目,這意味著他們失去了上游社區(qū)協(xié)同工作帶來(lái)的好處。

為了進(jìn)一步解釋軟件分支,讓我來(lái)用動(dòng)物遷徙作比喻。鯨魚(yú)和海獅從北極遷徙到加利福尼亞和墨西哥;帝王斑蝶從阿拉斯加遷徙到墨西哥;并且北半球的燕子和許多其他鳥(niǎo)類飛翔南方去過(guò)冬。成功遷徙的關(guān)鍵因素在于,團(tuán)隊(duì)中的所有動(dòng)物團(tuán)結(jié)一致,緊跟領(lǐng)導(dǎo)者,找到食物和庇護(hù)所,并且不會(huì)迷路。

獨(dú)立前行帶來(lái)的風(fēng)險(xiǎn)

一只鳥(niǎo)、帝王蝶或者鯨魚(yú)一旦掉隊(duì)就失去了許多優(yōu)勢(shì),例如團(tuán)隊(duì)帶來(lái)的保護(hù),以及知道哪兒有食物、庇護(hù)所和目的地。

相似地,從上游版本獲取分支并且獨(dú)立維護(hù)的用戶和組織也存在以下風(fēng)險(xiǎn):

  • 由于代碼不同,分支用戶不能夠基于上游版本更新代碼。 這就是大家熟知的技術(shù)債,對(duì)分支的代碼修改的越多,將這一分支重新歸入上游項(xiàng)目需要花費(fèi)的時(shí)間和金錢(qián)成本就越高。
  • 分支用戶有可能運(yùn)行不太安全的代碼。 由于代碼不同的原因,當(dāng)開(kāi)源代碼的漏洞被找到,并且被上游社區(qū)修復(fù)時(shí),分支版本的代碼可能無(wú)法從這次修復(fù)中受益。
  • 分支用戶可能不會(huì)從新特性中獲益。 擁有眾多組織和個(gè)人支持的上游版本,將會(huì)創(chuàng)建許多符合所有上游項(xiàng)目用戶利益的新特性。如果一個(gè)組織從上游分支,由于代碼不同,它們可能無(wú)法納入新的功能。
  • 它們可能無(wú)法和其他軟件包整合在一起。 開(kāi)源項(xiàng)目很少是作為單一實(shí)體開(kāi)發(fā)的;相反地,它們經(jīng)常被與其他項(xiàng)目打包在一起構(gòu)成一套解決方案。分支代碼可能無(wú)法與其他項(xiàng)目整合,因?yàn)榉种Тa的開(kāi)發(fā)者沒(méi)有與上游的其他參與者們合作。
  • 它們可能不會(huì)得到硬件平臺(tái)認(rèn)證。 軟件包通常被搭載在硬件平臺(tái)上進(jìn)行認(rèn)證,如果有問(wèn)題發(fā)生,硬件與軟件工作人員可以合作找出并解決問(wèn)題發(fā)生的根源。

總之,開(kāi)源發(fā)行版只是一個(gè)來(lái)自上游的、多組織協(xié)同開(kāi)發(fā)的、由供應(yīng)商銷(xiāo)售與支持的打包集合。分支是一個(gè)開(kāi)源項(xiàng)目的獨(dú)立開(kāi)發(fā)工作流,有可能無(wú)法從上游社區(qū)協(xié)同工作的結(jié)果中受益。

 

責(zé)任編輯:未麗燕 來(lái)源: Linux中國(guó)
相關(guān)推薦

2023-12-01 15:39:13

Linux操作系統(tǒng)

2021-06-11 06:10:25

Linux發(fā)行版操作系統(tǒng)

2018-10-27 15:29:17

Kubernetes發(fā)行版版本

2015-11-06 09:18:31

2021-12-31 09:35:05

GoboLinux命令Linux

2023-10-10 10:15:50

Zephix 7發(fā)行版

2021-07-30 13:18:35

微軟Linux代碼

2011-02-16 16:23:09

Debian發(fā)行版

2009-03-23 09:51:59

LinuxOracleRed Hat

2021-08-16 10:41:03

Linux黑客代碼

2017-02-06 17:00:09

TensorFlowHadoop開(kāi)源

2017-02-07 09:30:49

TensorFlowHadoop開(kāi)源

2010-01-13 14:05:10

CentOS與RHEL

2021-07-21 17:15:58

微軟Linux發(fā)行版開(kāi)源

2009-10-13 09:22:01

Linux發(fā)行版

2020-09-22 07:32:56

Linuxstat 命令滾動(dòng)發(fā)行版

2009-12-21 16:27:55

2018-04-17 10:00:18

Linux發(fā)行版面向企業(yè)

2017-03-10 11:05:38

Linux發(fā)行版

2020-09-13 09:19:58

Linux Linux 發(fā)行版操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)