R語言ERROR解讀|failed to lock directory

image.png

今天升級rlang的時(shí)候報(bào)了錯(cuò):

ERROR: failed to lock directory 'C:/Users/MSI-NB/Documents/R/win-library/4.0' for modifying
Try removing 'C:/Users/MSI-NB/Documents/R/win-library/4.0/00LOCK-rlang'
Warning in install.packages :
  installation of package ‘rlang’ had non-zero exit status
1673422652510.png

這時(shí)如果查看對應(yīng)安裝包的文件夾(例子中是win-library/4.0)歼培,會(huì)發(fā)現(xiàn)多了一個(gè)叫做“00LOCK-rlang”(或者直接叫“00LOCK”)的文件夾。

先放解決方案:

方案1:install.packages() 加上INSTALL_opts = '--no-lock':

install.packages("your_package", INSTALL_opts = '--no-lock')

方案1會(huì)安裝升級成功于微,但是00LOCK-rlang文件夾還在——說明下次更新此包時(shí)仍可能出同樣的error。

方案2:use unlink() to delete 00LOCK-rlang

unlink("C:/path_to_your_pkgs/00LOCK-rlang", recursive = TRUE)

刪除00LOCK-rlang文件夾加匈,后續(xù)照常安裝即可。如果unlink失敗可嘗試重啟R淋叶。

ERROR原因:

install.package()的說明文件里是這么解釋的:

Locking

There are various options for locking: these differ between source and binary installs.
By default for a source install, the library directory is ‘locked’ by creating a directory 00LOCK within it. This has two purposes: it prevents any other process installing into that library concurrently, and is used to store any previous version of the package to restore on error. A finer-grained locking is provided by the option --pkglock which creates a separate lock for each package: this allows enough freedom for parallel installation. Per-package locking is the default when installing a single package, and for multiple packages when Ncpus > 1L. Finally locking (and restoration on error) can be suppressed by --no-lock.
For a macOS binary install, no locking is done by default. Setting argument lock to TRUE (it defaults to the value of [getOption](https://link.zhihu.com/?target=https%3A//www.rdocumentation.org/link/getOption%3Fpackage%3Dutils%26version%3D3.6.2)("install.lock", FALSE)) will use per-directory locking as described for source installs. For Windows binary install, per-directory locking is used by default (lock defaults to the value of [getOption](https://link.zhihu.com/?target=https%3A//www.rdocumentation.org/link/getOption%3Fpackage%3Dutils%26version%3D3.6.2)("install.lock", TRUE)). If the value is "pkglock" per-package locking will be used.
If package locking is used on Windows with libs_only = TRUE and the installation fails, the package will be restored to its previous state.
Note that it is possible for the package installation to fail so badly that the lock directory is not removed: this inhibits any further installs to the library directory (or for --pkglock, of the package) until the lock directory is removed manually.

也就是說阎曹,出于防止其他安裝過程干擾和暫存舊版本的目的,R在安裝X包時(shí)會(huì)先建立并鎖定一個(gè)叫00LOCK-X的臨時(shí)文件夾煞檩。安裝完畢后如果由于某種原因該臨時(shí)文件夾沒有被刪除的話处嫌,下次更新可能會(huì)因?yàn)殒i定失敗而gg。

這樣再回來看兩個(gè)方案就很容易理解了斟湃,方案一禁止安裝過程中鎖定文件夾熏迹,方案二從直接刪除lock文件夾的角度來說更干脆。

參考:

  1. RDocumentation: install.packages

  2. stackoverflow: R install.packages returns “failed to create lock directory”

  3. https://zhuanlan.zhihu.com/p/264363714

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凝赛,一起剝皮案震驚了整個(gè)濱河市注暗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌墓猎,老刑警劉巖捆昏,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異毙沾,居然都是意外死亡骗卜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門左胞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寇仓,“玉大人,你說我怎么就攤上這事烤宙”榉常” “怎么了?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵门烂,是天一觀的道長乳愉。 經(jīng)常有香客問我兄淫,道長,這世上最難降的妖魔是什么蔓姚? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任捕虽,我火速辦了婚禮,結(jié)果婚禮上坡脐,老公的妹妹穿的比我還像新娘泄私。我一直安慰自己,他們只是感情好备闲,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布晌端。 她就那樣靜靜地躺著,像睡著了一般恬砂。 火紅的嫁衣襯著肌膚如雪咧纠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天泻骤,我揣著相機(jī)與錄音漆羔,去河邊找鬼。 笑死狱掂,一個(gè)胖子當(dāng)著我的面吹牛演痒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播趋惨,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼鸟顺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了器虾?” 一聲冷哼從身側(cè)響起讯嫂,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎兆沙,沒想到半個(gè)月后端姚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挤悉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年渐裸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片装悲。...
    茶點(diǎn)故事閱讀 37,989評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡昏鹃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诀诊,到底是詐尸還是另有隱情洞渤,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布属瓣,位于F島的核電站载迄,受9級特大地震影響讯柔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜护昧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一魂迄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惋耙,春花似錦捣炬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至灭美,卻和暖如春推溃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背届腐。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工美莫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人梯捕。 一個(gè)月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像窝撵,于是被迫代替她去往敵國和親傀顾。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容