CentOS 6.6,使用者特定環境的限制
所以我會添加上下文,但我的 BLUF 是這樣的:
在一個積極喜歡“舊的、已知的、穩定的”(CentOS 6.6、高度策劃的 Repo 等)而不是“現代、高效、有效”的組織中,但允許我在自己的個人資料中有很大的自由度,我能走多遠(或者我應該)在我的個人資料中創建自己的環境,實現這一目標的最明智的方法是什麼?
我正在談論的一個簡單範例是 Python。系統範圍內我僅限於 2.6,但沒有人關心我是否出於自己的目的執行 2.7 或 3.4,但即使手動建構它們(更不用說使用 pyenv 等工具)也沒有成功(儘管它似乎總是在我的技能範圍之外)
所以沒有人對我編譯新程式碼或從合理的來源執行包有任何問題。我所做的任何事情都不會在 SU 環境中執行,等等,但我似乎在這里花費了大量的時間來轉動我的輪子。我無法安裝 RPM,因為我什至無法執行該死的工具(即使在使用者上下文中)等等……我想他們有辦法修復權限以允許我這樣做(不允許我進行系統範圍的更改),但在我去尋求類似的東西之前,我需要知道這是解決我的問題的最佳(或至少是可行的)解決方案。
我應該採取什麼途徑來嘗試實現這一目標?除了我能做的之外,我實際上確實想遵守這些政策的總體意圖,所以我想避免做任何真正會帶來任何安全隱患的事情,那麼我應該採取多遠有限制嗎*?*
使用包管理器是否可行?建構功能性建構環境?等等
當然,如果在我應該閱讀的某個地方有一本入門書,我們將不勝感激。我的 google-fu 在這裡讓我失望了(可能是因為我很難簡潔地描述這個問題)。
好的,這就是我從你的問題中得到的。您想擁有一個包含您認為需要的任何軟體包的任何版本的環境嗎?如果是這樣的話,你這樣做沒有問題,因為 Linux 實際上支持這一點。作為您的使用者,您不能做什麼幾乎沒有限制。
對於您的第一個範例,python。系統管理員(明確地)避免升級它,因為它對 YUM 非常重要,破壞它會使伺服器無法更新。然而,這並不能阻止您在主目錄中創建子文件夾並引入包含所需二進製文件的 tar 球。只需去這裡Python 下載並選擇一個 tar 球。在你的家中解壓縮並在
export PATH=/location_to_bin_folder_for python:$PATH
你的 .bashrc 中添加一個,你就可以開始了。這在 Linux 世界中是完全可以接受的(公司可能對您安裝的內容有限制),並且 tar 球通常是封閉基礎設施的方式。包管理器通常是管理員使用的東西,除非您有特定的想法,例如來自 Red Hat 或其他 3rd 第三方 repo 提供商的 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
添加您認為適合您選擇的版本的任何其他二進製文件,它將按預期工作