{"id":71,"date":"2023-10-02T21:39:00","date_gmt":"2023-10-02T13:39:00","guid":{"rendered":"https:\/\/blog.glen.ng\/?p=71"},"modified":"2023-10-03T02:15:45","modified_gmt":"2023-10-02T18:15:45","slug":"install-r-and-rstudio-on-opensuse","status":"publish","type":"post","link":"https:\/\/blog.glen.ng\/index.php\/2023\/10\/02\/install-r-and-rstudio-on-opensuse\/","title":{"rendered":"\u55baOpenSUSE\u4e0a\u9762\u5b89\u88ddR\u540cRStudio"},"content":{"rendered":"\n<p>\u904e\u53bb\u591a\u5e74\u55ba\u79d1\u5927\u7528\u958bSTATA\uff0c\u5982\u4eca\u7562\u696d\u5728\u5373\u53c8\u8ad7\u4f4f\u55ba\u6536\u5165\u504f\u4f4e\u65e2\u5730\u5340\u6435\u5de5\uff08well\u5176\u5be6\u53ea\u4fc2\u9999\u6e2f\u9ad8\uff09\uff0c\u5c31\u60f3\u5617\u8a66\u91cd\u62fe<a href=\"https:\/\/zh.wikipedia.org\/zh-tw\/R%E8%AF%AD%E8%A8%80\">\u81ea\u7531\u8edf\u4ef6R<\/a>\u505a\u7d71\u8a08\u5206\u6790\u3002\u8fd1\u5e7e\u5e74\u5187\u7528R\u90fd\u6709\u807d\u805e\u500becosystem\u51fa\u5de6\u4e0d\u5c11\u65b0\u5622\uff0c\u4f8b\u5982\u51fa\u5de6\u6bd4<a href=\"https:\/\/rmarkdown.rstudio.com\/\">rmarkdown<\/a>\u66f4\u9069\u5408\u6df7\u5408\u5176\u4ed6\u7a0b\u5f0f\u8a9e\u8a00\u65e2<a href=\"https:\/\/quarto.org\/\">quarto<\/a>\uff0c\u800c<a href=\"https:\/\/www.tidyverse.org\/\">tidyverse<\/a>\u90fd\u9678\u9678\u7e8c\u7e8c\u51fa\u5de6\u4e0d\u5c11\u65b0\u529f\u80fd\u3002\u672a\u4f86\u5e7e\u500b\u6708\u8981\u6162\u6162\u5b78\u8ffd\u8fd4\u4e0a\u6f6e\u6d41\uff0c\u804a\u4f5c\u8a18\u9304\u3002\u5982\u679c\u6709\u54a9\u5fc3\u5f97\u90fd\u6703\u7e7c\u7e8c\u55ba\u5ea6\u5206\u4eab\u4e0b\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u9ede\u89e3\u63c0OpenSUSE<\/h2>\n\n\n\n<p>\u7528R\u505a\u7d71\u8a08\u5206\u6790\uff0c\u597d\u591a\u6642\u90fd\u8981\u7528\u5230\u5514\u5c6c\u65bcR\u57fa\u672c\u7cfb\u7d71\u65e2package\u3002\u4f46\u4fc2R\u5b98\u65b9 <a href=\"https:\/\/cran.r-project.org\/index.html\">CRAN<\/a> \u53ea\u6709\u63d0\u4f9bWindows\u540cMacOS\u65e2binaries\u3002\u672c\u8eab\u7528\u958bArch-based\u65e2<a href=\"https:\/\/endeavouros.com\/\">EndeavourOS<\/a>\uff0c\u4ea6\u5187\u63d0\u4f9bbinaries\uff0c\u82e5\u4e0d\u7528<a href=\"https:\/\/www.bioarchlinux.org\/\">BioArchLinux<\/a>\u65e2\u975e\u5b98\u65b9repo\uff0c\u5c31\u552f\u6709\u88ddsource code\u81ea\u5df1compile\u3002\u684c\u9762\u96fb\u8166\u90fd\u5c1a\u53ef\uff0c\u4f46\u82e5\u679c\u7528laptop\u90fd\u8981\u4e0b\u4e0bcompile\u5c31\u986f\u5f97\u592a\u8cbb\u6642\u5931\u4e8b\u3002\u65bc\u662f\u5c31\u53bb\u63c0<a href=\"https:\/\/posit.co\/\">Posit<\/a>(\u5373\u4fc2\u539f\u4f86\u65e2RStudio\u516c\u53f8\uff0c<a href=\"https:\/\/en.wikipedia.org\/wiki\/RStudio\">2022\u5e74\u4e2d\u6539\u540d<\/a>)\u6709\u63d0\u4f9bbinaries\u65e2<a href=\"https:\/\/packagemanager.posit.co\/client\/#\/repos\/cran\/setup\">distro<\/a>\u3002\u57fa\u672c\u4e0a\u90fd\u4fc2\u5f97\u5e7e\u500b\u8001\u724c\u7a69\u5b9adistro\u53ef\u4ee5\u63c0\uff0cRed Hat\u4eca\u5e74\u5148\u7206\u51fa<a href=\"https:\/\/arstechnica.com\/information-technology\/2023\/06\/red-hats-new-source-code-policy-and-the-intense-pushback-explained\/\">\u9032\u4e00\u6b65\u9650\u5236source code\u767c\u4f48<\/a>\u65e2\u6d88\u606f\u5514\u60f3\u7528\uff0c\u52a0\u4e0a\u7528\u6163\u5de6flatpak\u5514\u60f3\u7528Ubuntu\uff0c\u5c31\u5269\u8fd4Debian\u540cOpenSUSE\u4e8c\u63c0\u4e00\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5b89\u88dd\u6d41\u7a0b<\/h2>\n\n\n\n<p>\u7248\u672c\u4fc2OpenSUSE Leap 15.5\u3002\u5b89\u88ddOpenSUSE\u65b9\u6cd5\u5187\u54a9\u7279\u5225\u5c31\u5514\u8a73\u7d30\u5beb\u3002\u904e\u7a0b\u5c1a\u7b97\u9806\u5229\uff0c\u88dd\u5b8c\u53c3\u8003\u5de6\u5462\u7de8<a href=\"https:\/\/www.techhut.tv\/opensuse-5-things-you-must-do-after-installing\/\">\u6587\u7ae0<\/a>\u88ddpackman\u540cflatpak\u3002\u4e2d\u6587\u8f38\u5165\u6cd5\u8a66\u5de6\u5c31\u5481\u88dd\u4e4b\u524d\u7528\u958b\u7684ibus\u5514work\uff0c\u5f8c\u4f86\u53bb\u8fd4YaST\/System\/Language\u63c0\u5de6\u7e41\u9ad4\u4e2d\u6587\u505asecondary language\u81ea\u52d5\u88dd\u5de6\u5572\u5305\u62ecgcin\u5728\u5167\u7684packages\uff1b\u65e2\u7136OpenSUSE\u504f\u597dgcin\u5481\u5c31\u7167\u7528\u5566\u3002\u9664\u6b64\u4e4b\u5916\u4f3c\u4e4e\u5c31\u5187\u4e5c\u7279\u5225\u5622\u9700\u8981\u641e\u3002<\/p>\n\n\n\n<p>R\u7528\u5de6\u7cfb\u7d71repo\u88dd\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo zypper install R-base<\/code><\/pre>\n\n\n\n<p>\u4f46RStudio\u5c31\u592a\u820a\u4e86\uff0c2022\u5e746\u6708\u7248\uff0c\u9023quarto\u90fd\u672a\u6709\u3002Google\u5de6\u4e00\u4e0b\u4f3c\u4e4e\u5514\u898b\u6709\u73fe\u6210rpm repo\u53ef\u4ee5\u52a0\uff0c\u5c31\u8ddf\u5de6RStudio<a href=\"https:\/\/posit.co\/code-signing\/\">\u5b98\u7db2\u65e2\u6307\u793a<\/a>\uff0c\u4e0b\u8f09\u5de6Posit\u689dpublic key\u540c\u57cbimport\u4fferpm\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>gpg --keyserver keys.openpgp.org --search-keys 51C0B5BB19F92D60\ngpg --export --armor 51C0B5BB19F92D60 &gt; posit-signing.key\nrpm --import posit-signing.key <\/code><\/pre>\n\n\n\n<p>\u7136\u5f8c\u5c31\u53bb\u8fd4<a href=\"https:\/\/posit.co\/download\/rstudio-desktop\/\">\u4e0b\u8f09\u9801\u9762<\/a>download\u5de6rpm package\u540c\u57cb\u5b89\u88dd\u3002\u5b89\u88dd\u5b8c\u6253\u958bRStudio\uff0c\u9078\u55ae\u63c0Tools\/Options\/Packages\uff0c\u5c07Primary CRAN repository\u6539\u53bbPosit\u65e2Public Package Manager\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;packagemanager.posit.co\/cran\/__linux__\/opensuse154\/latest<\/code><\/pre>\n\n\n\n<p>\u6539\u597d\u4e4b\u5f8c\u55baRStudio\u754c\u9762\u5b89\u88dd\u65e2R packages\u5c31\u6703\u4fc2\u4f86\u81eaPosit\u65e2binaries\u3002\u96d6\u7136\u500brepo\u5beb\u4f4f\u4fc2\u4ffeLeap 15.4\uff0c\u66ab\u6642\u4ffeLeap 15.5\u7528\u4f3c\u4e4e\u90fd\u5187\u554f\u984c\u3002\u9996\u5148\u5b89\u88dd\u5de6tidyverse\u540crmarkdown\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>install.packages(\"tidyverse\")\ninstall.packages(\"rmarkdown\")<\/code><\/pre>\n\n\n\n<p>\u96a8\u4fbf\u958b\u5de6\u500bquarto\u6587\u4ef6render\u5de6\u4e00\u6b21\uff0c\u904b\u4f5c\u7747\u843d\u90fd\u6b63\u5e38\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/blog.glen.ng\/wp-content\/uploads\/2023\/10\/image-1024x576.png\" alt=\"\" class=\"wp-image-75\" srcset=\"https:\/\/blog.glen.ng\/wp-content\/uploads\/2023\/10\/image-1024x576.png 1024w, https:\/\/blog.glen.ng\/wp-content\/uploads\/2023\/10\/image-300x169.png 300w, https:\/\/blog.glen.ng\/wp-content\/uploads\/2023\/10\/image-768x432.png 768w, https:\/\/blog.glen.ng\/wp-content\/uploads\/2023\/10\/image-1536x864.png 1536w, https:\/\/blog.glen.ng\/wp-content\/uploads\/2023\/10\/image.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u904e\u53bb\u591a\u5e74\u55ba\u79d1\u5927\u7528\u958bSTATA\uff0c\u5982\u4eca\u7562\u696d\u5728\u5373\u53c8\u8ad7\u4f4f\u55ba\u6536\u5165\u504f\u4f4e\u65e2\u5730\u5340\u6435\u5de5\uff08well\u5176\u5be6\u53ea\u4fc2\u9999\u6e2f\u9ad8\uff09\uff0c\u5c31\u60f3\u5617\u8a66\u91cd\u62fe\u81ea\u7531\u8edf\u4ef6R\u505a\u7d71\u8a08\u5206\u6790\u3002\u8fd1\u5e7e\u5e74\u5187\u7528R\u90fd\u6709\u807d\u805e\u500becosystem\u51fa\u5de6\u4e0d\u5c11\u65b0\u5622\uff0c\u4f8b\u5982\u51fa\u5de6\u6bd4rmarkdown\u66f4\u9069\u5408\u6df7\u5408\u5176\u4ed6\u7a0b\u5f0f\u8a9e\u8a00\u65e2quarto\uff0c\u800ctidyverse\u90fd\u9678\u9678\u7e8c\u7e8c\u51fa\u5de6\u4e0d\u5c11\u65b0\u529f\u80fd\u3002\u672a\u4f86\u5e7e\u500b\u6708\u8981\u6162\u6162\u5b78\u8ffd\u8fd4\u4e0a\u6f6e\u6d41\uff0c\u804a\u4f5c\u8a18\u9304\u3002\u5982\u679c\u6709\u54a9\u5fc3\u5f97\u90fd\u6703\u7e7c\u7e8c\u55ba\u5ea6\u5206\u4eab\u4e0b\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-71","post","type-post","status-publish","format-standard","hentry","category-in-cantonese"],"_links":{"self":[{"href":"https:\/\/blog.glen.ng\/index.php\/wp-json\/wp\/v2\/posts\/71","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.glen.ng\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.glen.ng\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.glen.ng\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.glen.ng\/index.php\/wp-json\/wp\/v2\/comments?post=71"}],"version-history":[{"count":14,"href":"https:\/\/blog.glen.ng\/index.php\/wp-json\/wp\/v2\/posts\/71\/revisions"}],"predecessor-version":[{"id":102,"href":"https:\/\/blog.glen.ng\/index.php\/wp-json\/wp\/v2\/posts\/71\/revisions\/102"}],"wp:attachment":[{"href":"https:\/\/blog.glen.ng\/index.php\/wp-json\/wp\/v2\/media?parent=71"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.glen.ng\/index.php\/wp-json\/wp\/v2\/categories?post=71"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.glen.ng\/index.php\/wp-json\/wp\/v2\/tags?post=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}