Linux

使用 gentoo,如何將 -9999 ebuild 粘貼到特定的 svn 版本?

  • April 25, 2010

作為給出 django-9999 ebuild 的範例,為了匹配開發人員的環境,我需要從主幹中籤出 R12120。由於包管理的原因,手動安裝 Django 不是一種選擇。但是portage 中也沒有ebuild 用於1.2 beta 版本。

所以我做了以下事情:

ESVN_OPTIONS="-r12120" emerge -1a django

從 svn 安裝了所需的修訂版。但這在某種程度上很麻煩。是否有某種方法可以為每個 ebuild 靜態定義它,例如:

DJANGO_SVN_REV="12120"

make.conf. 這在我眼裡會乾淨得多。

因為下次無論出於何種原因我需要重建 django 時,我都需要記住:“哦,我希望它堅持特定的修訂版”,下一個問題將是“err, f&!#$?%, 又是什麼?”

去這裡的最佳方式是什麼?

記住:

  • 在沒有包管理器知識的情況下手動安裝包是不行的
  • 無法使用手動emerge變數前綴
  • 設置 /etc/portage/package.env 將是一種可行的方法(如此處所述),但這對我來說似乎不受支持和笨拙,因此不受歡迎
  • 修改 make.conf 將是一種方法
  • 將 ebuild 保持在覆蓋中是一種選擇

我並不完全反對使用package.env. 如果您在您的環境中理解並記錄它,它可能是一種有用的方法,可以使用 ebuild 掛鉤應用細微更改,同時仍跟踪穩定的 ebuild。

我不認為這是修復-9999ebuild 修訂的合適方法 - 根據“最小驚訝原則”。make.conf修復軟體包版本似乎也不是一個非常明顯的地方。

一種更簡潔的方法是使用 Layman 推出您自己的 ebuild。如果你django-1.2_pre12120說出它的名字,那麼一旦 Django 1.2 發布並在 Portage 中穩定下來,它的作用就會更加明顯,並為你提供一條簡單的退出路線。

引用自:https://serverfault.com/questions/121441