web-dev-qa-db-ja.com

install.packagesの警告:一時インストールを移動できません

R/RStudioでパッケージをインストールまたは更新するときに、この警告に関連するいくつかの質問を見つけましたが、私の状況に完全に一致するものはありません。

  • 企業のWindows 7システム、管理者権限へのアクセスなし
  • McAfee Anti-Virus例外リストを変更する方法はありません
  • Rはユーザー空間に完全にインストールされますC:\Users\[myname]\R
  • ユーザースペースに完全にインストールされたRStudio C\Users\[myname]\RStudio
  • いずれのディレクトリにも権限の問題はありません...それらに対する完全なアクセス制御があります
  • 問題はR 3.4のインストール後にのみ開始されましたが、RStudioが開始時にランダムに失敗するか、数か月間ハングします
  • R_LIBS_USERは、適切なディレクトリを指すユーザー環境変数として追加されました
  • .libPaths()システムとユーザーの両方の正しいディレクトリを表示
  • Rバージョン3.4.2、RStudioバージョン1.0.153
  • RとRstudioの両方をアンインストールし、両方をクリーンに再インストールしました
  • trace(utils:::unpackPkgZip,edit = T)を試行し、行140 Sys.sleep(0.5)Sys.sleep(2)に編集しました。これは一時的に動作する場合がありますが、編集は保存されません...セッションが再起動するたびにSys.sleep(0.5)にリセットされます
  • RStudioとRGuiの両方で発生する
  • いくつかのKbよりも大きいパッケージがあると、次のメッセージが表示されます。

    package ‘packagename’ successfully unpacked and MD5 sums checked
    Warning in install.packages :
      unable to move temporary installation ‘C:\Users\[myname]\R\win-library\3.4\file2b884fc37c13\packagename’ to ‘C:\Users\[myname]\R\win-library\3.4\packagename’
    

パッケージのインストールまたは更新に失敗しています。だから、私の質問は:

  1. 管理者権限やウイルス対策ポリシーの変更を必要としない問題を完全に回避する方法はありますか?
  2. unpackPkgZipを編集して永続的に保存する方法はありますか?

この時点で、私は困惑しています。ダウンロード後にファイル/ディレクトリを一時的にロックするウイルス対策と関係があるのではないかと思いますが、それ以降は何もできません。 Sys.sleep(2)がうまくいくように見えますが、すべてのパッケージをインストールまたは更新する前にそれを続けることはできず、編集をそのままにしておくことはできません。

23
Scard

この問題に関しては、これが私にとって唯一有効なものでした(残念ながら、ウイルス対策ソフトウェアをアンインストールしても何も得られませんでした)。

Windowsシステムでは、ライブラリのインストールが非常に高速に実行され、「一時インストールを移動できません」というエラーが発生することがあります。その後、パッケージは移動されていないため、ユーザーライブラリに見つかりません...

修正するには、次を試してください:trace(utils:::unpackPkgZip, edit=TRUE)

次に、コードの140行目に移動し、Sys.sleep(0.5)Sys.sleep(2.5)に変更します

これは、手動でパッケージを移動したり、ソフトウェアをアンインストールしたり、管理者の役割を置き換えたり、パッケージを特定の場所に個別にルーティングしたりする必要のない、長期的なニースソリューションです。

31
kslayerr

私の最初の返事は以下にありますが、その後より良い解決策を見つけました。

次の行を実行します。

Trace(utils:::unpackPkgZip, edit=TRUE)

2つではなく3つのコロンがあることに注意してください。

次に、142行目をSys.sleep(0.5)からSys.sleep(2.0)に編集し、クリックして編集を保存します(行番号は若干異なる場合があります)。残念ながら、これはRセッションを超えて保持されませんが、これを行うのに10秒しかかかりません。その後、現在のセッションのパッケージを思いのままにインストールできます。

元の回答:

私は職場で同じ問題に遭遇しました。私はシェルドンの提案したアプローチを使用することができましたが、指摘したように、それはすぐに退屈になります。別の方法として、ダウンロードしたZipファイルの場所に一時ディレクトリに移動し(install.packagesで報告されるように)、ファイルを解凍します(複数のZipファイルがある場合は複数あります)依存パッケージ)、すべての解凍されたディレクトリをR\win-library\3.4ディレクトリに直接移動またはコピーします。これもそれほど面白くありませんが、特に複数の依存関係が関係しており、インストールする必要がある場合、シェルドンの方法に従って、デバッガーをステップ実行するよりも痛みが少ないことがわかります。

10
JeffR

ここでウイルス対策をオフにできない場合は、unpackPkgZipファイルの編集を伴わない回避策を見つけました。 unzipパッケージ機能をデバッグしてからステップ実行すると、ウイルス対策ソフトウェアが干渉することなくジョブを実行するのに十分な時間を確保できます。次のコマンドを使用します。

debug(utils:::unpackPkgZip) install.packages("packageName")

そして、インストール中にRがデバッグを開始したら、コードをステップ実行します(Enterキーを何度も押します)。

私はこの解決策を見つけました here

この変更をより永続的にしたい場合は、Rprofileファイルにデバッグコードを追加できます。 here を参照してください。ただし、ステップを使用する必要がありますパッケージがインストールされるたびに解凍機能を使用します。

6
Sheldon

私たちは職場でも同じ問題を抱えており、同僚の1人がすばらしい回避策を発見しました。残念なことに、これは恒久的な修正ではなく、パッケージをインストールするたびに行う必要がある一時的なものです。 McAfeeで企業のWindows 8(管理者権限なし)を実行しています。これをR 3.4.0-3.4.3でテストしました。

McAfeeの「オンアクセススキャン」機能(Threat Prevention)を一時的にオフにすることでこれを解決しました。Rパッケージはすべて、最初に意図したとおりにインストールされるようになりました。これをオフにする詳細な手順は次のとおりです。

  1. タスクバーの右側の通知領域にあるMcAfeeアイコンを右クリックして、[McAfee Endpoint Security]を選択します。
  2. [脅威対策]をクリックします。これにより、「アクセス保護」、「エクスプロイト防止」、「オンアクセススキャン」などのカテゴリが表示される画面が開きます。
  3. [オンアクセススキャンを有効にする]のチェックを外し、[適用]をクリックします。 (注:[適用]をクリックするのを忘れがちですが、それは必須です)

パッケージをインストールしたら、プロセスを繰り返してオンアクセススキャンをオンに戻すことをお勧めします。

4
dnidz

同じエラーが発生しました-会社のgp /アクセスセキュリティの問題のようです。

また、書き込みに失敗したフォルダーが読み取り専用構造(右クリック-プロパティ)であるかどうかを確認する価値がある場合があります。このフォルダーのアドレスは、Rで。libPaths()[1]を実行することで見つけることができます。

この問題に対するアドホックな解決策は、以下のRコードを使用して、ダウンロードされた(移動されていない)パッケージを解凍して保存することです。バイナリパッケージの場所を示すエラーが表示されます(C:/ Users/.... AppData /...

これで、ここからファイルを.libPaths()の場所に単純に解凍できます。

zipF <- list.files("C:/Users/<YOURNAMEHERE>/AppData/Local/Temp/Rtmp4Apz6Z/downloaded_packages", full.names = TRUE)
outDir <- .libPaths()[1]

for(i in 1: length(zipF)) {
unzip(zipF[i],exdir=outDir)
}

これはWindowsでRを更新する際の残念な一般的な問題であるため、より一般的なソリューションは依然として非常に価値があります。

4
Nick

この問題のインスタンス(Windows 7)を修正し、Rが移動しようとしたフォルダーの「読み取り専用」属性を削除しました。

Windows(7)の[スタート]メニューから[実行]コマンドに移動し、attrib -r + s drive:\\と入力しました。

Microsoftからのこのリンクのように、フォルダーを右クリックしてプロパティを変更しようとしてもかからなかったことに注意してください。 https://support.Microsoft.com/en-us/help/326549/you-cannot- view-or-change-the-read-only-or-the-system-attributes-of-fo

それが誰かを助けることを願っています。

この変更が他の方法で私を台無しにしないことを願っています。

1
DavidE

UnpackPkgZip関数の142行目でSys.sleep値を3.5に拡張すると、

Trace(utils:::unpackPkgZip, edit=TRUE)

ただし、install.packagesの前に次を実行することにより、プログラムで実行することもできます。

localUnpackPkgZip <- utils:::unpackPkgZip
body(localUnpackPkgZip)[[14]][[4]][[4]][[4]][[3]][[3]][[2]][[2]] <- substitute(3.5)
assignInNamespace("unpackPkgZip", localUnpackPkgZip, "utils")

これは、新しいセッションがあるたびに実行する必要があります。同じセッションで問題なく複数回実行できます。

0
user3821113

私は同じ問題に苦労しました。私(Windows 10)の場合、問題はMalwareBytes(プレミアム試用版)を使用していました。それをアンインストールし、Windows Defender、の使用に戻り、問題は解決しました。おそらくもっと時間があれば、例外を作成する方法やMalwareBytes(つまり、非常に良いプログラム)のファイルチェック遅延を作成する方法を見つけることができますが、ユーザーガイド( https://www.malwarebytes .com/pdf/guides/Malwarebytes-User-Guide.pdf )これについては不明です。

0
jrdunson

また、上記のソリューションが企業のウイルス対策で機能しない場合、1つのソリューションを見つけました。最初にパッケージインストールのパスを変更し、次のコマンドを使用してRで実行します。

install.packages('caTools','D:\\ML\\Tools\\Installed\\RPackages')

これで、移動できず、パッケージが特定の場所に配置されるというコンソールのエラーが表示されます。この場所を覚えておいてください。さらに操作を行うには、このZipファイルが必要です。

次のコマンドを使用します。

install.packages("D:/ML/Tools/Installed/RPackages/caTools_1.17.1.Zip", repos = NULL, type = "win.binary", lib="D:/ML/Tools/Installed/R-3.4.3/library") 
0
Vikalp Jain

これは私のために吐き出されたエラーメッセージでした:

package ‘mlogit’ successfully unpacked and MD5 sums checked
Warning in install.packages :
unable to move temporary installation ‘C:\Users\E\Documents\R\win-
library\3.4\file9ec6cfb5e40\mlogit’ to ‘C:\Users\E\Documents\R\win-
library\3.4\mlogit’

The downloaded binary packages are in
C:\Users\E\AppData\Local\Temp\RtmpS0uNDm\downloaded_packages

パッケージをダウンロードした場所(C:\ Users\E\AppData\Local\Temp\RtmpS0uNDm\downloaded_pa​​ckages)に移動し、その圧縮ファイルをデスクトップにコピーし、Winzipを使用してすべてのファイルディレクトリに解凍しましたRのパッケージは保存されています(C:\ Users\E\Documents\R\win-library\3.4)。これでRにロードされます。

library("mlogit")
Loading required package: Formula
Loading required package: maxLik
Loading required package: miscTools
....

何らかの理由でダウンロードしていない唯一のパッケージであったため、私にとってはうまくいきました。すべてのパッケージに対してこれを行う必要がある場合は役に立たないかもしれません。

0
EDennnis