当前位置: 首页 > news >正文

CentOS服务器网页版Rstudio-server及R包批量安装最佳实践

CentOS服务器安装网页版Rstudio-server及R包批量安装

以下为CentOS 7/8的Rstudio-server安装、配置和R包安装操作

1. 软件包安装

Centos 7安装

# 下载安装包,大小115.14 MB 
wget -c https://download2.rstudio.org/server/centos7/x86_64/rstudio-server-rhel-2023.09.1-494-x86_64.rpm# 安装
sudo yum install rstudio-server-rhel-2023.09.1-494-x86_64.rpm

Centos 8安装

# 下载安装包,大小110.57 MB
wget https://download2.rstudio.org/server/rhel8/x86_64/rstudio-server-rhel-2023.09.1-494-x86_64.rpm# 安装
sudo yum install rstudio-server-rhel-2023.09.1-494-x86_64.rpm

2. 开放访问端口

# 查询rstudio-server服务运行状态
sudo systemctl status rstudio-server# 永久开放8787端口,用于Web访问
sudo firewall-cmd --zone=public --add-port=8787/tcp --permanent# 重启防火墙
sudo systemctl restart firewalld

3. 浏览器访问Rstudi-server

server-ip为服务器IP地址,例如192.168.1.10
打开浏览器输入以下地址

# 查询服务器IP地址
ifconfig 

启动Rstudi-server Web程序

http:// server-ip:8787

# 关闭rstudio-server服务
sudo systemctl stop rstudio-server
# 启动有报错,使用下列命令查询错误
sudo rstudio-server verify-installation
# 重启rstudio-server服务
sudo systemctl stop rstudio-server

服务器账号密码登录

登录界面

4. 主题配置

全局选项主题选择

5. 下载源配置和R包批量下载

Ctrl + Shift + N 新建一个Rscript
R包批量下载参考生信技能树

# 配置下载源为清华镜像
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options()$repos ################## R包批量下载 ###################
# 常用安装包,可自行添加
listOfPackages <- c("shiny","tidyr",'tidyverse', "clusterProfiler","DT","ashr","enrichplot","plotly","ALL","CLL","dbplyr","GEOquery")# listOfPackages 为待安装的包
allPackages = rownames(installed.packages())
save(allPackages,file = 'allPackages.Rdata')# 检查 listOfPackages 列表中包是否安装
newPackages <- listOfPackages[!(listOfPackages %in% installed.packages()[,"Package"])]
newPackages# 检查待安装的包与已安装的包是否存在差异
packageToInstall <- setdiff(listOfPackages, installed.packages())
packageToInstallif(T){# BiocManager安装包lapply(packageToInstall, function(x){BiocManager::install(x,ask = F,update = F)})
}
################## 等待R包批量安装 #################### 载入 listOfPackages 中安装包
lapply(intersect(listOfPackages, installed.packages()),function(x){# 不输出安装报错suppressPackageStartupMessages(library(x,character.only = T))
})

800个R包安装

将上述Rscript中的listOfPackages 变量替换为以下变量即可

listOfPackages <- "abind, acepack, ade4, ADGofTest, afex, affxparser, affy, 
affyio, AIMS, airway, ALL, amap, AnnoProbe, annotate, AnnotationDbi, 
AnnotationFilter, AnnotationHub, ape, aplot, aroma.light, arules, 
arulesViz, askpass, assertthat, backports, base, base64, base64enc, 
base64url, BayesFactor, bayestestR, bbmle, bdsmatrix, beachmat, beanplot, 
beeswarm, benchmarkme, benchmarkmeData, BH, bibtex, Biobase, BiocFileCache, 
BiocGenerics, BiocIO, BiocManager, BiocNeighbors, BiocParallel, BiocSingular, 
BiocVersion, biocViews, biomaRt, Biostrings, biovizBase, bit, bit64, bitops, 
blob, bluster, boot, bootstrap, brew, bridgesampling, brio, Brobdingnag, 
broom, broom.mixed, broomExtra, BSgenome, bslib, bumphunter, BWStest, ca, 
cachem, callr, car, carData, caret, caTools, ccdrAlgorithm, cellranger, 
checkmate, ChIPpeakAnno, ChIPseeker, chron, circlize, class, cli, clipr, 
clisymbols, CLL, clue, cluster, clusterProfiler, ClusterR, cmprsk, coda, 
codetools, coin, colorspace, colourpicker, combinat, cometExactTest, commonmark,
compiler, ComplexHeatmap, conquer, ConsensusClusterPlus, contfrac, copula, 
corpcor, correlation, corrplot, cowplot, cpp11, crayon, credentials, crosstalk,
ctc, curl, cutoff, data.table, datasets, datawizard, DBI, dbplyr, dbscan, DDRTree, 
DelayedArray, DelayedMatrixStats, deldir, dendextend, densityClust, DEoptimR, desc,
DescTools, DESeq2, deSolve, devtools, dichromat, diffobj, digest, diptest, 
discretecdAlgorithm, do, DO.db, docopt, doParallel, doRNG, DOSE, dotCall64, 
downloader, dplyr, dqrng, DT, dtplyr, dynamicTreeCut, e1071, EDASeq, edgeR, 
effectsize, egg, ellipse, ellipsis, elliptic, emmeans, EMT, enrichplot, 
EnsDb.Hsapiens.v75, ensembldb, estimability, europepmc, evaluate, Exact, 
exactRankTests, exomeCopy, ExperimentHub, expm, ez, factoextra, FactoMineR,
fansi, farver, fastcluster, fastGHQuad, fastICA, fastmap, fastmatch, FD, 
FDb.InfiniumMethylation.hg19, ff, fgsea, fields, filelock, fit.models, 
fitdistrplus, flashClust, flexmix, FNN, fontawesome, forcats, foreach, 
foreign, formatR, Formula, fpc, fs, furrr, futile.logger, futile.options, 
future, future.apply, gameofthrones, gapminder, gargle, gbRd, gclus, gdata, 
genefilter, genefu, geneplotter, generics, genomation, GenomeInfoDb, GenomeInfoDbData,
GenomicAlignments, GenomicFeatures, GenomicRanges, geometry, GEOquery, gert, GetoptLong, 
GGally, ggbeeswarm, ggbio, ggcorrplot, ggdendro, ggExtra, ggforce, ggfortify, ggfun, 
ggnetwork, ggplot2, ggplotify, ggpubr, ggraph, ggrepel, ggridges, ggrisk, ggsci, ggsignif, 
ggstatsplot, ggtext, ggthemes, ggtree, gh, git2r, gitcreds, gld, glmnet, glmSparseNet, GlobalOptions, 
globals, glue, gmodels, gmp, gnm, GO.db, goftest, googledrive, googlesheets4, GOplot, GOSemSim, 
gower, GPArotation, gplots, graph, graphics, graphite, graphlayouts, grDevices, grid, gridBase, 
gridExtra, gridGraphics, gridtext, GSEABase, gsl, gsubfn, GSVA, gtable, gtools, harrypotter, hash, 
haven, HDF5Array, here, hexbin, hgu133a.db, hgu133a2.db, hgu133plus2.db, hgu95av2.db, highr, Hmisc, 
hms, howmany, HSMMSingleCell, htmlTable, htmltools, htmlwidgets, httpuv, httr, 
hugene10sttranscriptcluster.db, hwriter, hypergeo, iC10, iC10TrainingData, ica, idr, ids, igraph, 
illuminaHumanv3.db, illuminaio, impute, ini, inline, insight, InteractionSet, interactiveDisplayBase, 
ipred, IRanges, IRdisplay, IRkernel, irlba, isoband, iterators, jackstraw, jcolors, jmv, jmvcore, jomo,
eg, jquerylib, jsonlite, KEGGREST, kernlab, KernSmooth, km.ci, KMsurv, knitr, kSamples, labeling, 
labelled, laeken, lambda.r, LaplacesDemon, lars, later, lattice, latticeExtra, lava, lavaan, lazyeval, 
leaps, learnr, leiden, lfa, libcoin, lifecycle, limma, linprog, listenv, lme4, lmerTest, lmom, lmtest, 
locfdr, locfit, logspline, loo, loose.rock, lpSolve, lsei, lubridate, lumi, made4, maftools, magic, 
magick, magrittr, manipulate, manipulateWidget, mapproj, maps, maptools, markdown, MASS, Matching, 
MatchIt, mathjaxr, matlab, Matrix, MatrixGenerics, MatrixModels, matrixStats, maxstat, mbkmeans, mc2d, 
mclust, mcmc, MCMCpack, memoise, memuse, metaBMA, metafor, metap, metaplus, metapod, methods, methylumi, 
mets, mgcv, mice, mime, minfi, miniUI, minqa, miRNAtap, missMDA, mitml, mitools, mlbench, mnormt,
ModelMetrics, modelr, modeltools, monocle, multcomp, multcompView, MultiAssayExperiment, multtest,
munsell, mutoss, mvnfast, mvnormtest, mvtnorm, network, nleqslv, nlme, nloptr, NMF, nnet, 
nomogramFormula, nor1mix, nortest, npsurv, numDeriv, oligo, oligoClasses, oompaBase, openssl, 
openxlsx, ordinal, org.Dm.eg.db, org.Hs.eg.db, org.Mm.eg.db, org.Rn.eg.db, OrganismDbi, packrat, 
paletteer, palr, pals, pamr, pan, pander, parallel, parallelly, parameters, patchwork, pbapply, 
pbdZMQ, pbivnorm, pbkrtest, pcaMethods, pcaPP, pd.hugene.2.0.st, pdftools, pec, performance, permute, 
pheatmap, phylobase, pillar, pinfsc50, pixmap, pkgbuild, pkgconfig, pkgload, pkgmaker, plogr, plotly, 
plotrix, plyr, PMCMR, PMCMRplus, png, polspline, polyclip, polynom, prabclus, pracma, praise, 
preprocessCore, prettyunits, princurve, prismatic, pROC, processx, prodlim, progress, progressr, 
promises, ProtGenerics, proto, proxy, ps, pspline, psych, Publish, purrr, purrrlyr, qap, qlcMatrix, 
qpdf, quadprog, quantmod, quantreg, qvalue, qvcalc, R.methodsS3, R.oo, R.utils, R6, randomForest, 
ranger, RANN, rappdirs, rat2302.db, RBGL, rbibutils, rcmdcheck, RColorBrewer, rcompanion, rcorpora, 
Rcpp, RcppAnnoy, RcppArmadillo, RcppEigen, RcppGSL, RcppHNSW, RcppParallel, RcppProgress, RcppZiggurat, RCurl,
RCy3, Rdpack, reactome.db, ReactomePA, readr, readxl, recipes, regioneR, registry, relimp, rematch, rematch2, remotes, 
renv, repr, reprex, reshape, reshape2, restfulr, reticulate, rex, Rfast, rgl, rhdf5, rhdf5filters, Rhdf5lib, Rhtslib, 
rio, riskRegression, rJava, rjson, RJSONIO, rlang, rmarkdown, rmeta, Rmpfr, rms, RnBeads, RnBeads.hg38, rncl, RNeXML, 
rngtools, robust, robustbase, RobustRankAggreg, ROCit, ROCR, rootSolve, ROTS, roxygen2, rpart, rprojroot, rrcov, rsample,
Rsamtools, RSpectra, RSQLite, rstan, rstantools, rstatix, rstudioapi, rsvd, RTCGA, RTCGA.clinical, RTCGA.miRNASeq, RTCGA.rnaseq, 
rtracklayer, Rtsne, RUnit, rvcheck, rversions, rvest, rWikiPathways, S4Vectors, sandwich, sass, ScaledMatrix, scales, scater, 
scattermore, scatterpie, scatterplot3d, scico, scran, scrime, scRNAseq, sctransform, scuttle, segmented, selectr, seqinr, seqPattern,
seriation, sessioninfo, set, Seurat, SeuratObject, shadowtext, shape, shiny, shinyjs, shinythemes, ShortRead, siggenes, 
SingleCellExperiment, sitmo, sjlabelled, sjmisc, sjstats, skimr, slam, slider, slingshot, smoother, sn, sna, snow, softImpute,
SomaticCancerAlterations, SomaticSignatures, sourcetools, sp, spam, sparsebn, sparsebnUtils, SparseM, sparseMatrixStats, sparsesvd, 
spatial, spatstat.core, spatstat.data, spatstat.geom, spatstat.sparse, spatstat.utils, splines, sqldf, SQUAREM, stabledist, 
StanHeaders, statmod, statnet.common, stats, stats4, statsExpressions, stringi, stringr, SummarizedExperiment, SuppDists, survcomp, 
survey, survival, survivalROC, survminer, survMisc, sva, swirl, sys, table1, tableone, taRifx, TCGAbiolinks, TCGAbiolinksGUI.data, 
tcltk, tensor, testthat, TFisher, TH.data,tibble, tidygraph, tidyr, tidyselect, tidytree, tidyverse, timeDate, timereg, timeROC, 
tinytex, TMB, tmcn, tmvnsim, tools, TrajectoryUtils, treeio, triebeard, tsne, TSP, TTR, tweenr, TxDb.Dmelanogaster.UCSC.dm3.ensGene,
TxDb.Dmelanogaster.UCSC.dm6.ensGene, TxDb.Hsapiens.UCSC.hg19.knownGene, tximport, tzdb, uchardet, ucminf, UpSetR, urltools, usethis, 
utf8, utils, uuid, uwot, V8, VariantAnnotation, vcd, vcdExtra, vcfR, vctrs, vegan, VennDiagram, VGAM, VIM, vipor, viridis, viridisLite,
visNetwork, vroom, waldo, warp, webshot, WGCNA, whisker, withr, wordcloud, WRS2, xfun, XLConnect, XML, xml2, xopen, xtable, xts, XVector,
yaml, yulab.utils, zeallot, zinbwave, zip, zlibbioc, zoo"

相关文章:

CentOS服务器网页版Rstudio-server及R包批量安装最佳实践

CentOS服务器安装网页版Rstudio-server及R包批量安装 以下为CentOS 7/8的Rstudio-server安装、配置和R包安装操作 1. 软件包安装 Centos 7安装 # 下载安装包&#xff0c;大小115.14 MB wget -c https://download2.rstudio.org/server/centos7/x86_64/rstudio-server-rhel-…...

centos7内核升级(k8s基础篇)

1.查看系统内核版本信息 uname -r 2.升级内核 2.1更新yum源仓库 yum -y update更新完成后&#xff0c;启用 ELRepo 仓库并安装ELRepo仓库的yum源 ELRepo 仓库是基于社区的用于企业级 Linux 仓库&#xff0c;提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行…...

数据结构与算法设计分析——NP完全理论

目录 一、P类问题与NP类问题的定义二、常见的NP类问题&#xff08;一&#xff09;旅行商问题&#xff08;TSP&#xff09;&#xff08;二&#xff09;哈密尔顿回路问题&#xff08;三&#xff09;判断回路问题&#xff08;四&#xff09;图的着色问题&#xff08;五&#xff09…...

AGNES层次聚类

已知数据集D中有9个数据点&#xff0c;分别是(1,2)&#xff0c;(2&#xff0c;3)&#xff0c;(2,1), (3,1),(2,4),(3,5),(4,3),(1,5),(4,2)。要求&#xff1a; (1)采用层次聚类的聚集算法进行聚类&#xff0c;k2。 (2)距离计算采用欧几里得距离。 (3)簇之间的距离采用单链接方…...

HCIP —— 双点重发布 + 路由策略 实验

目录 实验拓扑&#xff1a; 实验要求&#xff1a; 实验配置&#xff1a; 1.配置IP地址 2.配置动态路由协议 —— RIP 、 OSPF R1 RIP R4 OSPF R2 配置RIP、OSPF 双向重发布 R3配置RIP、OSPF 双向重发布 3.查询路由表学习情况 4.使用路由策略控制选路 R2 R3 5.检…...

Python标准库:datetime模块【侯小啾python领航班系列(二十五)】

Python标准库:datetime模块【侯小啾python领航班系列(二十五)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ…...

新版idea如何开启多台JVM虚拟机

1.看看自己的项目 2.可能开始的时候啥也没有&#xff0c;就点Run Configuration Type 3.再点击Edit Configurations... 4.点击号添加SpringBoot 5.主类选择一下&#xff0c;一般就一个&#xff0c;点他选了就行。 6.然后点击Modify Options 选择添加add VM Options 7.点击appl…...

软件工程单选多选补充

2. 4. 5. 6. 7. 8. 9. 10. 12。 13....

6-66.时间

本题要求输入小时、分钟和秒数&#xff0c;并将其输出。针对时间表示中出现的异常进行处理。例如小时数不应超过23&#xff0c;分钟不应超过59&#xff0c;秒数不应超过59。此外&#xff0c;以上三个变量均应大于等于0。 输入样例&#xff1a; 在这里给出三组输入。例如&…...

面试多线程八股文十问十答第一期

面试多线程八股文十问十答第一期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1.ThreadLocal如何实现线程安全 Java的ThreadLocal是一个线程本地变量&#xff0…...

Mybatis 操作续集(结合上文)

当我们增加一个数据之后,如果我们想要获取它的 Id 进行别的操作,我们该如何获取 Id 呢? 用那个Options package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo; import org.apache.ibatis.annotations.*;import java.util.List;Mapper pub…...

JVM基础篇:垃圾回收

目录 1.前言 1.1C/C的内存管理 1.2Java的内存管理 2.方法区的回收 3.堆回收 3.1引用计数法和可达性分析法 3.2五种对象引用 强引用 软引用 弱引用 虚引用 终结器引用 3.3垃圾回收算法评价标准 ①吞吐量 ②最大暂停时间 ③堆使用效率 3.4垃圾回收算法 ①标记清…...

蓝桥杯ACwing习题

题目 &#xff1a;https://www.acwing.com/problem/content/4409/ 解析 &#xff1a;根据题目我们可以知道 问的是方案数 那么首先就想到了 dp 仔细想一下 发现类似于蒙德里安的梦想那道状态压缩的题 &#xff0c; 所以我们先考虑怎么定义 f[i][j] f[i][j] 表示的是 已经放了…...

vue发送请求携带token,拼接url地址下载文件

封装请求 &#xff0c;该请求为普通的get请求 该请求返回值为&#xff1a; 请求成功之后拼接URL地址下载文件 代码块 downTemplateRequest(activeKeys.value).then((res) > {let url http://47.169.168.99:18888/media/${res.data.name};var elink document.createElemen…...

【PTA-C语言】编程练习3 - 循环结构Ⅱ

如果代码存在问题&#xff0c;麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 编程练习3 - 循环结构&#xff08;9~15&#xff09; 7-9 特殊a串数列求和&#xff08;分数 15&#xff09;7-10 穷举法搬运砖块问题&#xff08;分数 15&#xff09;7-11 数字金字塔&#xff08;分数 15&…...

Google Chrome 下载 (离线版)

1 访问网址 Google Chrome 网络浏览器 2 点击 下载Chrome 3 直接运行 ChromeStandaloneSetup64.exe 其他&#xff1a; ####################### 谷歌浏览器 (Google Chrome) 最新版离线安装包下载 https://www.iplaysoft.com/tools/chrome/#google_vignette Google Chrome …...

2023年GopherChina大会-核心PPT资料下载

一、峰会简介 自 Go 语言诞生以来&#xff0c;中国便是其应用最早和最广的国家之一&#xff0c;根据 Jetbrains 在 2021 年初做的调查报告&#xff0c;总体来说目前大概有 110 万专业的开发者 选择 Go 作为其主要开发语言。就其全球分布而言, 居住在亚洲的开发者最多&#xff…...

从源代码出发,Jenkins 任务排队时间过长问题的解决过程

最近开发了一个部署相关的工具&#xff0c;使用 Jenkins 来构建应用。Jenkins 的任务从模板中创建而来。每次部署时&#xff0c;通过 Jenkins API 来触发构建任务。在线上运行时发现&#xff0c;通过 API 触发的 Jenkins 任务总是会时不时在队列中等待较长的时间。某些情况下的…...

openssl 生成CA及相关证书

实验环境&#xff1a;ubuntu18.04-desktop 获取openssl.cnf配置文件 # 这个返回的路径&#xff0c;不一定被使用了&#xff08;经测试&#xff0c;ubuntu18下的openssl似乎未加载任何配置文件&#xff09; openssl version -d生成私钥文件(pem) # 生成私钥 # genrsa&#xf…...

App测试之App日志收集及adb常用命令

文章目录 前言一、adb是什么1.APP测试收集手机日志常用的工具2.adb下载与安装3.ADT/SDK/ADB是什么4.adb连接真机 二、adb常用命令三、android系统日志文件1.logcat日志文件2.logcat日志文件分析 四、分析crash & ANR 日志1.发生crash如何分析2.发生ANR如何分析 总结扩展&am…...

嵌入式扫码模组:POS机核心部件技术解析与选型指南

1. 项目概述&#xff1a;固定式POS机里的“眼睛”与“大脑”如果你拆开过一台超市、便利店或者餐厅里常见的固定式POS机&#xff0c;可能会发现一个有趣的现象&#xff1a;那个用来扫商品条码的“窗口”或“枪口”&#xff0c;其内部结构远比我们想象的要精密。它不是一个简单的…...

Vue2项目里,如何用DHTMLX Gantt实现任务搜索、今日线定位和视图切换?这些实用功能我帮你搞定了

Vue2项目中DHTMLX Gantt三大进阶功能实战&#xff1a;搜索、今日线与视图切换 在项目管理工具的开发中&#xff0c;甘特图作为核心可视化组件&#xff0c;其交互体验直接决定了用户的使用效率。本文将聚焦三个高频需求场景&#xff0c;手把手教你如何在已有DHTMLX Gantt集成的V…...

如何构建一个基于YOLOv8的智慧化工地管理系统,用于工地要素分割与检测

如何构建一个基于YOLOv8的智慧化工地管理系统&#xff0c;用于工地要素分割与检测。该系统将涵盖10大要素&#xff08;工人佩戴安全帽、不佩戴安全帽、预制构件、混凝土运输车、渣土车、搅拌车、挖掘机、压路车、推土车、装载车&#xff09; 文章目录以下文字仅供参考&#xff…...

StreamCap:如何一站式解决40+直播平台录制难题?

StreamCap&#xff1a;如何一站式解决40直播平台录制难题&#xff1f; 【免费下载链接】StreamCap Multi-Platform Live Stream Automatic Recording Tool | 多平台直播流自动录制客户端 基于FFmpeg 支持监控/定时/转码 项目地址: https://gitcode.com/gh_mirrors/st/Strea…...

从2018到2023:Unity WebGL内存管理变迁史与你的2G内存墙突破指南

Unity WebGL内存管理演进与2G内存墙突破实战 引言 2018年的某个深夜&#xff0c;当我第一次在Chrome控制台看到"Out of Memory"的红色警告时&#xff0c;完全没意识到这会成为接下来五年与Unity WebGL缠斗的开端。那个使用Unity 2017.3构建的医疗可视化项目&#xff…...

C++高性能服务器框架----Servlet模块

Servlet模块HTTP Servlet包括两部分&#xff0c;第一部分是Servlet对象&#xff0c;每个Servlet对象表示一种处理HTTP消息的方法&#xff0c;第二部分是ServletDispatch&#xff0c;它包含一个请求路径到Servlet对象的映射&#xff0c;用于指定一个请求路径该用哪个Servlet来处…...

使用 Taotoken 后如何通过用量看板清晰掌握各模型消耗与成本分布

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用 Taotoken 后如何通过用量看板清晰掌握各模型消耗与成本分布 当你在项目中接入多个大模型时&#xff0c;一个常见的困扰是成本…...

Unity 2D游戏开发:用Cinemachine 2D Camera实现平滑镜头跟随,告别手动写代码

Unity 2D游戏开发&#xff1a;用Cinemachine 2D Camera实现平滑镜头跟随&#xff0c;告别手动写代码 在2D游戏开发中&#xff0c;摄像机跟随是最基础却又最容易出问题的功能之一。很多开发者习惯用代码手动控制摄像机的位置更新&#xff0c;却常常陷入边界抖动、跟随延迟不自然…...

CentOS 7最小化安装后,如何用VNC Viewer远程连接GNOME桌面?实测避坑指南

CentOS 7最小化安装后构建GNOME远程桌面的完整实践指南 当你面对一台仅完成最小化安装的CentOS 7服务器&#xff0c;突然需要图形界面完成某些复杂配置时&#xff0c;这套从零构建GNOME桌面环境并通过VNC安全访问的解决方案&#xff0c;将成为你的技术救星。不同于常规教程&…...

排列检验的色彩力量

原文&#xff1a;towardsdatascience.com/the-colorful-power-of-permutation-tests-38f0490ebfba https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4ce3dd25bad50a2c1f85e5463faedb76.png 由作者创作的鸢尾花&#xff0c;通过 Midjourney…...