簡體   English   中英

無法安裝RVM。 / usr / local / rvm中的權限被拒絕

[英]Cannot install RVM . Permission denied in /usr/local/rvm

根據我之前的帖子: Ruby安裝的RVM無法正常工作? 我使用root用戶安裝RVM的地方,然后我必須完全刪除RVM安裝,現在我作為用戶安裝。

所以我做了 :

  1. 通過執行以下操作創建新用戶:useradd newuser
  2. 按照RVM網站上的說明執行命令:bash <<(curl http://rvm.beginrescueend.com/releases/rvm-install-head

現在,我得到錯誤: mkdir:無法創建目錄`/ usr / local / rvm':權限被拒絕

我創建的新用戶無權訪問此目錄。 我手動嘗試創建文件夾,但同樣的錯誤。 請幫忙。

編輯:原始問題發生,因為我沒有重新啟動終端,它仍然使用舊設置。

現在,我遇到了一個新問題:安裝RVM后,我無法運行它並且它給我一個錯誤:找不到rvm命令。

這是我的〜/ .bash_profile的輸出

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"  # This loads RVM into a shell session.

這是〜/ .bashrc文件的輸出

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"  # This loads RVM into a shell session.

mkdir:無法創建目錄`/ usr / local / rvm':權限被拒絕

如果您以前以root身份運行rvm安裝程序,請刪除/ usr / local / rvm和/ etc / rvmrc。

RVM易於安裝,但是通過嘗試混合和匹配安裝類型會使您變得更加困難。 您不需要創建新用戶。 運行時,RVM將在您的主目錄中創建一個目錄: ~/.rvm ,並在其中安裝所有內容。 這意味着您將擁有所有正確的權限。 您不需要以root身份運行,也不需要使用sudo。 我建議關閉所有命令行並打開一個新的命令行並從主目錄開始。 如果以root用戶身份運行,請注銷,然后重新登錄普通帳戶。 對於單用戶安裝,您不需要是root用戶。

對於使用RVM作為其Ruby沙箱的單個用戶 ,請使用單用戶安裝文檔 按照該頁面上的所有說明進行操作, 包括 “安裝后”部分。

關閉終端窗口,然后重新打開它。 如果您已正確遵循上述說明,則鍵入rvm info應該在安裝Ruby實例后吐出一個模板。 如果您沒有看到任何輸出或出現錯誤,請在“安裝后”部分中回溯您的步驟,然后完成“故障排除”部分。 人們出現的大多數問題都是因為他們沒有費心去閱讀指示。

安裝RVM后,鍵入rvm notes並閱讀需要安裝的依賴項。 如果您不添加這些文件,則安裝的Rubies將缺少功能。 它們會起作用,但是你會聽到的一些生物舒適功能不起作用,你會想知道為什么。

安裝依賴項后,您應該處於良好狀態以安裝Rubies。 鍵入rvm list known所有rvm list known RVM可以安裝。 如果你想要1.8.7類型的rvm install 1.8.7 ,同樣地, rvm install 1.9.2 for Ruby 1.9.2。 如果您需要特定修訂,可以根據列表中的修訂添加該修訂。

使用rvm get head定期更新RVM非常重要。 這將添加功能,修復錯誤,並告訴RVM如果您請求它可以安裝的新版本的Ruby。

安裝Ruby之后,輸入rvm list ,它應該顯示在列表中,看起來像這樣:

rvm rubies

   ruby-1.8.7-p334 [ x86_64 ]
   ruby-1.9.2-p180 [ x86_64 ]

鍵入rvm use 1.9.2 --default設置一個默認的Ruby,它將在登錄之間粘貼。 如果1.9.2沒有漂浮您的船,請使用您想要默認的任何Ruby的版本。 一旦定義了默認值,它應該類似於:

rvm rubies

   ruby-1.8.7-p334 [ x86_64 ]
=> ruby-1.9.2-p180 [ x86_64 ]

在開始將Gems安裝到RVM管理的Ruby之前,請閱讀“RVM和RubyGems” ,特別是“不要使用sudo ...”的部分。 我重復。 盡管某些博客或網頁上寫道,但不要使用sudo來安裝任何寶石。 在使用RVM控制的Rubies時,RVM的作者更清楚。 這是人們使用RVM的另一個錯誤,再次是由於沒有閱讀指示。

在Mac OS上,您需要為您的操作系統提供最新版本的XCode。 請勿在DVD上使用Snow Leopard附帶的XCode。 它是馬車。 Apple的開發者網站下載並安裝新版本。 這是免費下載,需要免費注冊。 這是一個大文件,大約8GB,所以你想要啟動它並走開。 安裝XCode,您應該已准備好讓RVM安裝Rubies。

最后,RVM很容易安裝,你要求它安裝的Rubies也是如此。 我在Mac OS,Ubuntu和CentOS上大約有四五台不同的機器和虛擬機。 安裝它需要大約一分鍾,配置它並開始安裝新的Ruby需要一分鍾。 它真的很容易。

我在這個問題中報告了原始問題,“ mkdir:在嘗試安裝rvm時無法創建目錄`/ usr / local / rvm':Permission denied ”。

這是我的場景以及我是如何解決的 - 也許這會幫助其他人解決同樣的問題。

我在筆記本電腦上安裝了Ubuntu 11.04,我只有1個用戶,我在安裝時創建的用戶名為nathan。 當我嘗試將rvm安裝為nathan時,rvm安裝程序將我視為root並繼續嘗試全局安裝rvm,但由於我不是root用戶,因此無法訪問/ usr / local / rvm中創建目錄。

我不是Ubuntu的專家,所以我確信有更容易/更好的方法來完成我所做的事情(我很想了解它們),但這對我有用:

  1. 我創建了一個名為rubydev的新用戶
  2. 我以rubydev身份登錄,打開終端並輸入:

     rubydev~$ bash < <(curl -B http://rvm.beginrescueend.com/install/rvm) 
  3. rvm安裝正確,我退出rubydev

  4. 作為nathan回來,打開一個終端並鍵入“su”(你可以用sudo完成所有這些,我很懶)
  5. 成功獲得root后,我輸入以下命令:

     root: /home/nathan# cp -R /home/rubydev/.rvm . root: /home/nathan# chown -R nathan .rvm root: /home/nathan# chgrp -R nathan .rvm root: /home/nathan# exit nathan~$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile nathan~$ echo 'export rvm_path="/home/nathan/.rvm"' > ~/.rvmrc nathan~$ source .bash_profile 
  6. 此時,rvm已正確安裝在我的主目錄下。 要驗證我鍵入:

     nathan~$ type rvm | head -1 rvm is a function (if you don't get this response, something else is wrong) 
  7. 閱讀說明並安裝任何依賴項

     nathan~$ rvm notes 
  8. 我安裝了一些紅寶石

     nathan~$ rvm install 1.8.7-head nathan~$ rvm install 1.9.2-head 
  9. 已驗證安裝

      nathan~$ rvm list rvm rubies ruby-1.8.7-head [x86_64] ruby-1.9.2-head [x86_64] nathan~$ rvm use 1.9.2 using /home/nathan/.rvm/gems/ruby-1.9.2-head nathan~$ rvm list rvm rubies ruby-1.8.7-head [x86_x64] => ruby-1.9.2-head [x86_x64] 
  10. 最后,我編輯了終端本身的首選項,以確保選中“標題和命令”選項卡下的“運行命令和登錄shell”。 似乎.bash_profile沒有以其他方式處理。

  11. 我刪除了在步驟1中創建的rubydev用戶。

有了這些,我使用我的首選用戶名在Ubuntu 11.04下有一個工作rvm。

如果您首先以root用戶身份安裝RVM,然后將其卸載。 現在您嘗試將其安裝為非sudo用戶,並且您收到以下錯誤:

mkdir: cannot create directory `/usr/local/rvm': Permission denied

在嘗試在用戶下安裝之前,請確保已注銷根會話。

我通過添加來解決這個問題

export rvm_path=~/.rvm

到〜/ .bash_profile

對我來說跑步

__rvm_unload

首先工作,這是因為我已經為多用戶安裝了rvm。

如果以用戶身份安裝RVM,則應在主目錄中生成RVM文件夾:

~/.rvm 

哪里應該沒有權限問題。

我建議它從系統安裝中獲取一些舊的配置。

確保沒有留下/ etc / rvmrc或$ HOME / .rvmrc文件,因為它可能正在使用這些文件中先前初始化的變量來構造錯誤的安裝路徑。

如果我們看一下bash腳本的這一部分:

if [[ ${rvm_ignore_rvmrc:-0} -eq 0 ]]; then
  for file in /etc/rvmrc "$HOME/.rvmrc  " ; do
    if [[ -s "$file" ]] ; then
      source $file
    fi
  done
fi

它試圖找到其中一個文件,如果它找到一個,如果它將運行它可能初始化rvm_path,隨后不會被此命令設置為$ HOME / .rvm

rvm_path="${rvm_path:-"$HOME/.rvm"}"

我遇到過同樣的問題。 當我嘗試創建gemset時,我會收到權限被拒絕錯誤。 我忘了先運行“rvm use 1.8.7”命令。 之后我能夠毫無問題地創建和使用gemset。

在rstm的持續版本中,您還需要刪除/etc/profile.d/。

如果您嘗試以root用戶身份安裝,然后再以普通用戶身份重試,則會發生這種情況。

希望這有幫助。

在/ etc目錄下面查找文件rvm.sh(可能在/ etc或/etc/init.d中)。 另外,嘗試一些grep rvm / etc -r,這樣你就可以找到一些阻止你在$ HOME目錄中安裝rvm的文件/行。

如果您以root身份安裝了rvm並且您正在獲得權限被拒絕的問題(可能您使用capistrano作為非root用戶進行部署),那么您可以在執行rvm install 2.2.2之后嘗試使用rvm fix-permissions作為root並創建gemset作為根。

Scott Bartell的解決方案對我有用。 我正在使用數字海洋預制圖像,他們已經將rvm設置為root。 1.刪​​除/ etc / rvmrc。 2.將導出rvm_path =〜/ .rvm添加到〜/ .bash_profile 3.從ssh會話中注銷到虛擬機4.重新登錄並執行!

本來會評論,但代表是3分太低了:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM