admin管理员组文章数量:1444916
01 Ubuntu20安装基础软件+两种方法配置R语言和RStudio
零、Ubuntu软件仓库换源
官方源太慢咯,换国内源吧,我用的是清华TUNA源
仓库使用帮助:/
打开终端输入sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
,备份一下,有备无患
再编辑source.list
文件:sudo gedit /etc/apt/sources.list
有人问“你为啥不用vi”,诶嘿嘿老子就是不用,有图形化工具谁还用上古命令行啊
把sources.list
中的内容替换掉:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb / focal main restricted universe multiverse
# deb-src / focal main restricted universe multiverse
deb / focal-updates main restricted universe multiverse
# deb-src / focal-updates main restricted universe multiverse
deb / focal-backports main restricted universe multiverse
# deb-src / focal-backports main restricted universe multiverse
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb / focal-security main restricted universe multiverse
# deb-src / focal-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb / focal-proposed main restricted universe multiverse
# # deb-src / focal-proposed main restricted universe multiverse
然后直接sudo apt update
就完了
一、基础软件安装
这次安装的是Ubuntu双系统,为了最大化适应自己的使(mo)用(yu)习惯,也是借着国家推广关键软件多平台适配的风口,安装了很多常用的软件
1. Snipaste截图软件
下载地址:.html
2. 腾讯系
(1)微信
下载地址:
(2)QQ
下载地址:.shtml
(3)QQ音乐
下载地址:.html
如果遭遇闪退问题,在终端中输入sudo gedit /usr/share/applications/qqmusic.desktop
这是QQ音乐的启动图标文件,其中原始内容如下:
代码语言:bash复制[Desktop Entry]
Name=qqmusic
Exec=/opt/qqmusic/qqmusic %U
Terminal=false
Type=Application
Icon=qqmusic
StartupWMClass=qqmusic
Comment=Tencent QQMusic
Categories=AudioVideo;
将Exec中的%U
改为--no-sandbox
即可
(4)腾讯会议
下载地址:/
3. VSCode
别急,Trae马上就要发布Linux版本了
4. 搜狗输入法
参考这篇:Ubuntu安装搜狗输入法(很详细!)
5. WPS
下载地址:
6. V2ray
懂的都懂
二、Anaconda安装R语言和配置RStudio
别去官网了,直接去清华TUNA镜像站下载吧,速度可快了:/,我下载的是2024.02-1
1. Anaconda的安装
下载好以后在终端打开:sudo bash Anaconda3-2024.02-1-Linux-x86_64.sh
,然后一路回车就好,默认安装在/home/user目录中
安装结束后新开一个终端窗口,这是用户名前面会有一个(base)
标识,代表现在处于Anaconda的虚拟环境中,环境名叫做base
如果不想每次启动终端就自动进入base环境,可以执行命令:
conda config --set auto_activate_base False
查看Anaconda版本:conda --version
查看Anaconda的Python版本:python --version
2. Anaconda换源
海外的库实在是太慢咯,还是换国内源吧,我用的还是清华TUNA源,直接在终端中输入sudo gedit /home/user/.condarc
即可
添加以下内容:
代码语言:bash复制channels:
- defaults
show_channel_urls: true
default_channels:
-
-
-
-
-
custom_channels:
conda-forge:
pytorch:
然后再添加第三方源,打开终端,conda config --set custom_channels.auto /
其实在镜像站的目录中,对应上面文字中的default_channels,pkg库是自定义的,可以按需增减
3. Anaconda中安装R语言和RStudio
(1) 安装和配置
Anaconda中每个虚拟环境都是一个独立的工作环境,可以在其中配置不同的组件来完成不同方向的工作,这里我们是为了配置R语言来创建一个独立的虚拟环境,
代码语言:bash复制#启动Anaconda,进入base环境
conda activate
#创建一个名为r4的虚拟环境,并安装R语言基础组件
conda create -n r4 r-base
此时会显示
代码语言:bash复制Channels:
- defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /home/klab/anaconda3/envs/r4
added / updated specs:
- r-base
The following packages will be downloaded:
package | build
---------------------------|-----------------
_r-mutex-1.0.0 | anacondar_1 2 KB defaults
binutils_impl_linux-64-2.40| h5293946_0 8.7 MB defaults
binutils_linux-64-2.40.0 | hc2dff05_2 25 KB defaults
blas-1.0 | openblas 46 KB defaults
c-ares-1.19.1 | h5eee18b_0 118 KB defaults
cairo-1.16.0 | hb05425b_5 1.2 MB defaults
curl-8.12.1 | h251f7ec_0 178 KB defaults
fontconfig-2.14.1 | h55d465d_3 281 KB defaults
gcc_impl_linux-64-11.2.0 | h1234567_1 22.2 MB defaults
gcc_linux-64-11.2.0 | h5c386dc_2 27 KB defaults
gfortran_impl_linux-64-11.2.0| h1234567_1 10.2 MB defaults
gfortran_linux-64-11.2.0 | hc2dff05_2 25 KB defaults
glib-2.78.4 | h6a678d5_0 508 KB defaults
glib-tools-2.78.4 | h6a678d5_0 115 KB defaults
gxx_impl_linux-64-11.2.0 | h1234567_1 10.6 MB defaults
gxx_linux-64-11.2.0 | hc2dff05_2 25 KB defaults
harfbuzz-10.2.0 | hf296adc_0 2.4 MB defaults
icu-73.1 | h6a678d5_0 25.9 MB defaults
krb5-1.20.1 | h143b758_1 1.3 MB defaults
ld_impl_linux-64-2.40 | h12ee557_0 710 KB defaults
libcurl-8.12.1 | hc9e6f67_0 469 KB defaults
libev-4.33 | h7f8727e_1 111 KB defaults
libffi-3.4.4 | h6a678d5_1 141 KB defaults
libgcc-devel_linux-64-11.2.0| h1234567_1 2.5 MB defaults
libgfortran-ng-11.2.0 | h00389a5_1 20 KB defaults
libgfortran5-11.2.0 | h1234567_1 2.0 MB defaults
libglib-2.78.4 | hdc74915_0 1.5 MB defaults
libiconv-1.16 | h5eee18b_3 759 KB defaults
libmpdec-4.0.0 | h5eee18b_0 86 KB defaults
libnghttp2-1.57.0 | h2d74bed_0 674 KB defaults
libopenblas-0.3.21 | h043d6bf_0 5.4 MB defaults
libssh2-1.11.1 | h251f7ec_0 308 KB defaults
libstdcxx-devel_linux-64-11.2.0| h1234567_1 14.6 MB defaults
libxml2-2.13.5 | hfdd30dd_0 738 KB defaults
openssl-3.0.16 | h5eee18b_0 5.2 MB defaults
pango-1.50.7 | h0fee60c_1 468 KB defaults
pcre2-10.42 | hebb0a14_1 1.3 MB defaults
pip-25.0 | py313h06a4308_0 2.5 MB defaults
python-3.13.2 |hf623796_100_cp313 36.2 MB defaults
python_abi-3.13 | 0_cp313 6 KB defaults
r-base-4.3.1 | h1ae530e_0 23.9 MB defaults
readline-8.2 | h5eee18b_0 357 KB defaults
setuptools-75.8.0 | py313h06a4308_0 2.2 MB defaults
sqlite-3.45.3 | h5eee18b_0 1.2 MB defaults
tzdata-2025a | h04d1e81_0 117 KB defaults
wheel-0.45.1 | py313h06a4308_0 144 KB defaults
------------------------------------------------------------
Total: 187.4 MB
The following NEW packages will be INSTALLED:
_libgcc_mutex anaconda/pkgs/main/linux-64::_libgcc_mutex-0.1-main
_openmp_mutex anaconda/pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu
_r-mutex anaconda/pkgs/main/linux-64::_r-mutex-1.0.0-anacondar_1
_sysroot_linux-64~ anaconda/pkgs/main/noarch::_sysroot_linux-64_curr_repodata_hack-3-haa98f57_10
binutils_impl_lin~ anaconda/pkgs/main/linux-64::binutils_impl_linux-64-2.40-h5293946_0
binutils_linux-64 anaconda/pkgs/main/linux-64::binutils_linux-64-2.40.0-hc2dff05_2
blas anaconda/pkgs/main/linux-64::blas-1.0-openblas
bwidget anaconda/pkgs/main/linux-64::bwidget-1.9.16-h9eba36c_0
bzip2 anaconda/pkgs/main/linux-64::bzip2-1.0.8-h5eee18b_6
c-ares anaconda/pkgs/main/linux-64::c-ares-1.19.1-h5eee18b_0
ca-certificates anaconda/pkgs/main/linux-64::ca-certificates-2025.2.25-h06a4308_0
cairo anaconda/pkgs/main/linux-64::cairo-1.16.0-hb05425b_5
curl anaconda/pkgs/main/linux-64::curl-8.12.1-h251f7ec_0
expat anaconda/pkgs/main/linux-64::expat-2.6.4-h6a678d5_0
fontconfig anaconda/pkgs/main/linux-64::fontconfig-2.14.1-h55d465d_3
freetype anaconda/pkgs/main/linux-64::freetype-2.12.1-h4a9f257_0
fribidi anaconda/pkgs/main/linux-64::fribidi-1.0.10-h7b6447c_0
gcc_impl_linux-64 anaconda/pkgs/main/linux-64::gcc_impl_linux-64-11.2.0-h1234567_1
gcc_linux-64 anaconda/pkgs/main/linux-64::gcc_linux-64-11.2.0-h5c386dc_2
gfortran_impl_lin~ anaconda/pkgs/main/linux-64::gfortran_impl_linux-64-11.2.0-h1234567_1
gfortran_linux-64 anaconda/pkgs/main/linux-64::gfortran_linux-64-11.2.0-hc2dff05_2
glib anaconda/pkgs/main/linux-64::glib-2.78.4-h6a678d5_0
glib-tools anaconda/pkgs/main/linux-64::glib-tools-2.78.4-h6a678d5_0
graphite2 anaconda/pkgs/main/linux-64::graphite2-1.3.14-h295c915_1
gxx_impl_linux-64 anaconda/pkgs/main/linux-64::gxx_impl_linux-64-11.2.0-h1234567_1
gxx_linux-64 anaconda/pkgs/main/linux-64::gxx_linux-64-11.2.0-hc2dff05_2
harfbuzz anaconda/pkgs/main/linux-64::harfbuzz-10.2.0-hf296adc_0
icu anaconda/pkgs/main/linux-64::icu-73.1-h6a678d5_0
jpeg anaconda/pkgs/main/linux-64::jpeg-9e-h5eee18b_3
kernel-headers_li~ anaconda/pkgs/main/noarch::kernel-headers_linux-64-3.10.0-h57e8cba_10
krb5 anaconda/pkgs/main/linux-64::krb5-1.20.1-h143b758_1
ld_impl_linux-64 anaconda/pkgs/main/linux-64::ld_impl_linux-64-2.40-h12ee557_0
lerc anaconda/pkgs/main/linux-64::lerc-4.0.0-h6a678d5_0
libcurl anaconda/pkgs/main/linux-64::libcurl-8.12.1-hc9e6f67_0
libdeflate anaconda/pkgs/main/linux-64::libdeflate-1.22-h5eee18b_0
libedit anaconda/pkgs/main/linux-64::libedit-3.1.20230828-h5eee18b_0
libev anaconda/pkgs/main/linux-64::libev-4.33-h7f8727e_1
libffi anaconda/pkgs/main/linux-64::libffi-3.4.4-h6a678d5_1
libgcc-devel_linu~ anaconda/pkgs/main/linux-64::libgcc-devel_linux-64-11.2.0-h1234567_1
libgcc-ng anaconda/pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1
libgfortran-ng anaconda/pkgs/main/linux-64::libgfortran-ng-11.2.0-h00389a5_1
libgfortran5 anaconda/pkgs/main/linux-64::libgfortran5-11.2.0-h1234567_1
libglib anaconda/pkgs/main/linux-64::libglib-2.78.4-hdc74915_0
libgomp anaconda/pkgs/main/linux-64::libgomp-11.2.0-h1234567_1
libiconv anaconda/pkgs/main/linux-64::libiconv-1.16-h5eee18b_3
libmpdec anaconda/pkgs/main/linux-64::libmpdec-4.0.0-h5eee18b_0
libnghttp2 anaconda/pkgs/main/linux-64::libnghttp2-1.57.0-h2d74bed_0
libopenblas anaconda/pkgs/main/linux-64::libopenblas-0.3.21-h043d6bf_0
libpng anaconda/pkgs/main/linux-64::libpng-1.6.39-h5eee18b_0
libssh2 anaconda/pkgs/main/linux-64::libssh2-1.11.1-h251f7ec_0
libstdcxx-devel_l~ anaconda/pkgs/main/linux-64::libstdcxx-devel_linux-64-11.2.0-h1234567_1
libstdcxx-ng anaconda/pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1
libtiff anaconda/pkgs/main/linux-64::libtiff-4.5.1-hffd6297_1
libuuid anaconda/pkgs/main/linux-64::libuuid-1.41.5-h5eee18b_0
libwebp-base anaconda/pkgs/main/linux-64::libwebp-base-1.3.2-h5eee18b_1
libxcb anaconda/pkgs/main/linux-64::libxcb-1.15-h7f8727e_0
libxml2 anaconda/pkgs/main/linux-64::libxml2-2.13.5-hfdd30dd_0
lz4-c anaconda/pkgs/main/linux-64::lz4-c-1.9.4-h6a678d5_1
make anaconda/pkgs/main/linux-64::make-4.2.1-h1bed415_1
ncurses anaconda/pkgs/main/linux-64::ncurses-6.4-h6a678d5_0
openssl anaconda/pkgs/main/linux-64::openssl-3.0.16-h5eee18b_0
pango anaconda/pkgs/main/linux-64::pango-1.50.7-h0fee60c_1
pcre2 anaconda/pkgs/main/linux-64::pcre2-10.42-hebb0a14_1
pip anaconda/pkgs/main/linux-64::pip-25.0-py313h06a4308_0
pixman anaconda/pkgs/main/linux-64::pixman-0.40.0-h7f8727e_1
python anaconda/pkgs/main/linux-64::python-3.13.2-hf623796_100_cp313
python_abi anaconda/pkgs/main/linux-64::python_abi-3.13-0_cp313
r-base anaconda/pkgs/r/linux-64::r-base-4.3.1-h1ae530e_0
readline anaconda/pkgs/main/linux-64::readline-8.2-h5eee18b_0
setuptools anaconda/pkgs/main/linux-64::setuptools-75.8.0-py313h06a4308_0
sqlite anaconda/pkgs/main/linux-64::sqlite-3.45.3-h5eee18b_0
sysroot_linux-64 anaconda/pkgs/main/noarch::sysroot_linux-64-2.17-h57e8cba_10
tk anaconda/pkgs/main/linux-64::tk-8.6.14-h39e8969_0
tktable anaconda/pkgs/main/linux-64::tktable-2.10-h3d55465_1
tzdata anaconda/pkgs/main/noarch::tzdata-2025a-h04d1e81_0
wheel anaconda/pkgs/main/linux-64::wheel-0.45.1-py313h06a4308_0
xz anaconda/pkgs/main/linux-64::xz-5.6.4-h5eee18b_1
zlib anaconda/pkgs/main/linux-64::zlib-1.2.13-h5eee18b_1
zstd anaconda/pkgs/main/linux-64::zstd-1.5.6-hc292b87_0
Proceed ([y]/n)?
可以看到r-base的版本是4.3.1,没有问题,按下回车,Proceed
创建完毕后输入conda activate r4
,进入虚拟环境,输入R,查看是否能正常启动R语言
(r4) klab@klab-MS-7D90:~$ R
R version 4.3.1 (2023-06-16) -- "Beagle Scouts"
Copyright (C) 2023 The R Foundation for Statistical Computing
Platform: x86_64-conda-linux-gnu (64-bit)
R是自由软件,不带任何担保。
在某些条件下你可以将其自由散布。
用'license()'或'licence()'来看散布的详细条件。
R是个合作计划,有许多人为之做出了贡献.
用'contributors()'来看合作者的详细情况
用'citation()'会告诉你如何在出版物中正确地引用R或R程序包。
用'demo()'来看一些示范程序,用'help()'来阅读在线帮助文件,或
用'help.start()'通过HTML浏览器来看帮助文件。
用'q()'退出R.
OK,看来没什么问题,下一步安装RStudio
conda install rstudio
,然后Proceed安装,安装完成后在r4环境内输入指令rstudio
,启动RStudio,可以看到R版本降低为4.2.0,这是因为conda库中的RStudio版本更新较慢,需要降低R版本进行适配
(2) CRAN换源
还是换清华TUNA源,在RStudio中输入options("repos" = c(CRAN="/"))
到此为止,我们完成了Anaconda中的R语言及其编译环境的基础配置
三、Ubuntu系统直接安装R和RStudio
1. R语言安装
还是从清华TUNA镜像上下载,新版本的镜像和官方网页统一了,下载地址:/
点进去之后会有对应的安装提示:
代码语言:bash复制# version nametable
# 24.04 (“noble”, amd64 only)
# 22.04 (“jammy”, amd64 only)
# 20.04 (“focal”, amd64 only)
# 18.04 (“bionic”)
# 16.04 (“xenial”)
# update indices
sudo apt update -qq
# install two helper packages we need
sudo apt install --no-install-recommends software-properties-common dirmngr
# add the signing key (by Michael Rutter) for these repos
# To verify key, run gpg --show-keys /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
# Fingerprint: E298A3A825C0D65DFD57CBB651716619E084DAB9
wget -qO- .asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
# add the repo from CRAN -- lsb_release adjusts to 'noble' or 'jammy' or ... as needed
sudo add-apt-repository "deb $(lsb_release -cs)-cran40/"
# install R itself
sudo apt install --no-install-recommends r-base
按照步骤输入命令即可,安装后在终端输入 R ,即可进入R语言终端
2. CRAN换源
同样的,换成清华TUNA源:
代码语言:bash复制# CRAN (The Comprehensive R Archive Network) 镜像源配置文件之一是 .Rprofile
# linux 下位于 ~/.Rprofile
sudo gedit ~/.Rprofile
#在文件末尾添加
options("repos" = c(CRAN="/"))
3. 安装RStudio
下载地址:/
安装时,按如下操作进行
代码语言:bash复制# 首先安装依赖项
sudo apt install libclang-dev
# 如果报错,则输入sudo apt --fix-broken install
# 最后输入
sudo dpkg -i rstudio-2024.12.1-563-amd64.deb
安装成功后,和方法二中需要使用命令启动不同,RStudio的图标会显示在开始菜单中,可直接点击打开
四、在 Visual Studio Code 中使用 R 语言
首先要明确的是,在Visual Studio Code中使用R语言,对应的是我们在Ubuntu系统中安装的R,而不是在Anaconda中安装的R
1. 安装R语言插件
在Visual Studio Code的插件市场中搜索R和R Debugger,安装这两个插件
2. 相关依赖项安装和R包配置
在R插件的Wiki-Installation-Linux上,能够找到对应的Linux系统的配置方法
(1)安装依赖项
在安装和编译后续的组件时,会需要有各种各样的依赖,将我遇到的相关依赖项清列如下:
代码语言:bash复制# 编译所需相关组件
sudo apt install build-essential python3-pip
sudo apt install libxml2-dev pkg-config libfontconfig1-dev libfreetype6-dev
# R language highlight tool
pip3 install -U radian
# 安装好radian后添加路径
which radian # 查看安装路径
sudo gedit ~/.bashrc
# 末尾添加一行:
echo 'export PATH="$PATH:/path/to/radian/bin"' >> ~/.bashrc
# 修改好之后记得新建终端source一下
source ~/.bashrc
(2)安装相关R包
代码语言:r复制install.packages("languageserver")
install.packages("rmarkdown")
install.packages("httpgd")
按上面配置依赖之后应该不会报错,如果报错了,多问问deepseek就好了
3. Visual Studio Code 配置
(1)快捷键配置
按照官方库中给出的示例,对Visual Studio Code的配置文件进行修改
打开Visual Studio Code,按下Ctrl + Shift + P,在搜索框中输入Preferences: Open Keyboard Shortcuts (JSON)
,即可打开 keybindings.json 配置文件,将配置内容粘贴进去即可
[
{
"key": "alt+-",
"command": "type",
"when": "editorLangId == r && editorTextFocus || editorLangId == rmd && editorTextFocus",
// if you want using quarto, try this
// "when": "editorLangId =~ /r|rmd|qmd/ && editorTextFocus",
"args": {"text": " <- "}
},
{
"key": "ctrl+shift+m",
"command": "type",
"when": "editorLangId == r && editorTextFocus || editorLangId == rmd && editorTextFocus",
"args": {"text": " %>% "}
},
{
"key": "ctrl+shift+m",
"command": "-workbench.actions.view.problems"
},
// input indicative of r markdown code chunk
{
"key": "ctrl+shift+i",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus && editorLangId == 'rmd'",
"args": {
"snippet": "```{r}\n${TM_SELECTED_TEXT}$0\n```"
},
"label": "input indicative of r markdown code chunk"
},
// you can also input indicative of code chunk in `r` file by inserting "# %% ":
// specifics in ``
{
"key": "ctrl+shift+i",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus && editorLangId == 'r'",
"args": {
"snippet": "$LINE_COMMENT %% "
},
"label": "input indicative of code chunk"
},
// open help panel for selection
{
"key": "f1",
"command": "r.helpPanel.openForSelection",
"when": "editorTextFocus && editorLangId == 'r' || editorTextFocus && editorLangId == 'rmd'"
},
// read yaml header parameters into `params` when editing an Rmarkdown file
{
"key": "ctrl+shift+p",
"command": "r.runCommandWithEditorPath",
"args": "params <- rmarkdown::yaml_front_matter(\"$$\")$params |> lapply(\\(x) if (is.list(x)) x$value else x)",
"when": "editorTextFocus && editorLangId == 'rmd'"
},
// RStudio keybinding for R Package development
{
"key": "ctrl+shift+b",
"command": "r.install",
"when": "resourceLangId == 'r'"
},
{
"key": "ctrl+shift+e",
"command": "r.check",
"when": "resourceLangId == 'r'"
},
{
"key": "ctrl+shift+t",
"command": "r.test",
"when": "resourceLangId == 'r'"
},
{
"key": "ctrl+shift+d",
"command": "r.document",
"when": "resourceLangId == 'r'"
},
{
"key": "ctrl+shift+l",
"command": "r.loadAll",
"when": "resourceLangId == 'r'"
},
{
"key": "ctrl+alt+p",
"command": "r.runCommand",
"when": "editorTextFocus && editorLangId == 'r'",
"args": ".vsc.browser(httpgd::hgd_url(), viewer = \"Beside\")"
}
]
(2)配置R和Radian路径
在R终端中使用R.home("bin")查看R路径,在终端使用
which radian查看Radian路径,然后在Visual Studio Code中按下Ctrl + 逗号,在搜索框中输入
rterm,R > Rterm: Linux中输入Radian的路径;搜索框输入
rpath`,R > Rpath: Linux中输入R的路径
然后再在搜索栏中搜索r.br
,勾选启用Radian
再搜索httpgd
,勾选启用httpgd查看绘图
4. 内置mtcars数据集测试
代码语言:r复制# 加载内置数据集
data(mtcars)
# 绘制散点图,显示马力和每加仑英里数的关系
plot(mtcars$hp, mtcars$mpg,
main = "马力与每加仑英里数的关系",
xlab = "马力 (hp)",
ylab = "每加仑英里数 (mpg)",
pch = 19,
col = "blue"
)
# 添加线性回归线
abline(lm(mtcars$mpg ~ mtcars$hp), col = "red")
本文标签: 01 Ubuntu20安装基础软件两种方法配置R语言和RStudio
版权声明:本文标题:01 Ubuntu20安装基础软件+两种方法配置R语言和RStudio 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1748215005a2827484.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论