
所以我會添加上下文,但我的BLUF是這樣的:
在一個積極喜歡「舊的、已知的、穩定的」(CentOS 6.6、精心策劃的Repo 等)而不是「現代的、高效的、有效的」的組織中,但允許我在自己的個人資料中擁有很大的自由度,我能走多遠(或者我應該)在我的個人資料中創建自己的環境,實現這一目標的最明智的方法是什麼?
我所說的一個簡單的例子是Python。系統範圍內我僅限於2.6,但沒有人關心我是否出於自己的目的運行2.7或3.4,但即使手動構建它們(不要介意使用像pyenv等工具)也沒有成功(儘管它總是看起來只是超出了我的技能範圍)
因此,沒有人對我編譯新程式碼或從合理來源運行套件有任何問題。我所做的任何事情都不會在 SU 環境中運行,等等,但我似乎花了難以置信的大量時間在這裡旋轉我的輪子。我無法安裝 RPM,因為我什至無法運行該死的工具(即使在用戶上下文中)等等...我想他們有一種方法可以修復權限以允許我這樣做(不允許我這樣做)進行系統範圍的更改),但在我去詢問類似的東西之前,我需要知道這是解決我的問題的最佳(或至少可行的)解決方案。
我應該採取什麼路線來嘗試實現這一目標?並且超出了我的範圍能確實,我實際上做我想遵守這些策略的整體意圖,所以我想避免做任何確實會帶來任何安全隱患的事情,那麼我應該採取多遠的措施是否有限制?
使用套件管理器是否可行?建置功能齊全的建置環境? ETC。
當然,如果有我應該閱讀的入門讀物,那麼我將不勝感激。我的谷歌-fu在這裡讓我失敗了(可能是因為我很難簡潔地描述這個問題)。
答案1
好的,這就是我從你的問題中得到的資訊。您希望擁有一個包含您認為正確所需的任何軟體包的任何版本的環境嗎?如果是這種情況,您這樣做不會有任何問題,因為 Linux 實際上支援這一點。作為用戶,您不能做的事情幾乎沒有限制。
對於你的第一個例子,python。系統管理員(明確)不要升級它,因為它對 YUM 來說非常重要,破壞它將使伺服器無法更新。然而,這並不能阻止您在主目錄中建立子資料夾並引入包含所需二進位檔案的 tar 球。就到這裡吧Python下載並選擇一個焦油球。將其解壓縮到您的家中並export PATH=/location_to_bin_folder_for python:$PATH
在 .bashrc 中添加一個,然後您就可以開始了。
這在 Linux 世界中是完全可以接受的(公司可能對您安裝的內容有限制),而 tar 球通常是封閉基礎設施的方法。套件管理器通常由管理員使用,除非您有特定的想法,例如來自 Red Hat 或其他第 3 方儲存庫提供者的 php 版本,否則您不會知道這一點。
總之,您受到管理員設定的規則的限制。在封閉的基礎設施中,安全並不是一個大問題。如果您需要使用 tar 球作為更新,您可以更進一步,製作 RPM,並且您可以訂閱更新以保持 RPM 更新。我會找出他們想要限制你多少,但實際上所有開發工具都可以作為 tar 存檔用於此目的。
編輯 :
實現您正在尋找的目標的最簡單方法是替代方案的完成方式。您可以在家中建立一個資料夾,例如
/home/user/bin
在兩個單獨的資料夾中安裝 python 和其他東西,例如 Java
/home/user/python
和/home/user/java.
在 bin 資料夾中,建立指向所需二進位檔案的符號鏈接
$ ls -l /home/user/bin
lrwxrwxrwx. 1 user user 13 May 19 19:59 java -> /home/user/java/bin/java
lrwxrwxrwx. 1 user user 13 May 19 19:59 javac -> /home/user/java/bin/javac
lrwxrwxrwx. 1 user user 15 May 19 19:59 python -> /home/user/python/bin/python
將其添加到您的 .bashrc
export PATH=/home/user/bin:$PATH
打開一個新的終端會話並嘗試
which python
應該說/home/user/bin/python
添加您認為適合您選擇的版本的任何其他二進位文件,它將按預期工作