利用conda打包/復刻生信環境

01、寫在前面

大家拿到自己的服務器(趁開學| 入手足夠完成碩博生涯的生信環境)后可能需要安裝很多的軟件與包,Linux中許多包的安裝依賴過多、安裝復雜。而conda作為一個能夠直接安裝超過90%軟件的"管家",能夠像Windows和手機中的應用商店那樣一鍵為你解決安裝軟件的煩惱。conda 是一個開源的軟件包管理和環境管理系統,用于簡化在不同平臺上安裝、運行和管理軟件包。該工具用于支持 Python 語言,但也能夠管理非 Python 的軟件。conda的特點介紹、安裝使用可見教程:生信軟件管家——conda的安裝、使用、卸載。

本教程基于Linux環境演示,計算資源不足的同學可參考:

足夠支持你完成碩博生涯的生信環境

忘記宣傳了,獨享用戶連技術支持都是獨享的

RTX5090、4080S、5070顯卡上機

如果你對下面的教程比較迷茫,那么你可以先行學習編程教程:

十小時學會Linux

生信Linux及服務器使用技巧

5.5h入門R語言

02、利用conda分享/復刻生信環境

大家除了能按部就班的利用conda安裝生信軟件外,還能夠通過yml文件打包/復刻生信環境(如下圖所示),其中能夠收錄完整的配置(包括 Python 版本、所有依賴庫及其精確版本、甚至操作系統相關的依賴),通過這樣一個幾kb的文件就能直接收錄成百上千個依賴信息。這樣任何人都能在自己的電腦或服務器上快速復現與原環境完全一致的配置,徹底解決 “我這能跑,你那報錯” 的依賴沖突問題。讓環境從 “隱性經驗” 變成 “顯性文件”。

具體使用起來也很簡單,例如我這里存在一些conda虛擬環境:

大家按照這個語法即可完成環境打包與再安裝的流程:

# 激活環境:
conda activate your_env_name
# 打包環境為yml文件:
conda?env?export?> my_env.yml
# 在新機器上復刻環境:
conda?env?create -f my_env.yml

例如我現在需要用到一文學會scFAST-seq數據分析中用到的seeksoul環境,對應的代碼就是:

# 激活環境:
conda activate seeksoultools
# 打包環境為yml文件:
conda?env?export?> seeksoultools.yml
# 在新機器上復刻環境:
conda?env?create -f seeksoultools.yml

本質上是一個文本文件,打開后內容如下:

name:?/data2/analysis/xunyin/seeksoultools
channels:-?http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main-?http://mirrors.ustc.edu.cn/anaconda/pkgs/free- bioconda-?https://mirror.nju.edu.cn/anaconda/cloud/pytorch-?https://mirror.nju.edu.cn/anaconda/cloud/conda-forge-?https://mirror.nju.edu.cn/anaconda/pkgs/msys2-?https://mirror.nju.edu.cn/anaconda/pkgs/r-?https://mirror.nju.edu.cn/anaconda/pkgs/free-?https://mirror.nju.edu.cn/anaconda/pkgs/main- conda-forge
dependencies:- _libgcc_mutex=0.1=conda_forge- _openmp_mutex=4.5=2_gnu- _r-mutex=1.0.1=anacondar_1- alsa-lib=1.2.8=h166bdaf_0- binutils_impl_linux-64=2.40=hf600244_0- bioconductor-beachmat=2.10.0=r41hc247a5b_2- bioconductor-biobase=2.54.0=r41hc0cfd56_2- bioconductor-biocgenerics=0.40.0=r41hdfd78af_0- bioconductor-biocio=1.4.0=r41hdfd78af_0- bioconductor-biocparallel=1.28.3=r41hc247a5b_1- bioconductor-biostrings=2.62.0=r41hc0cfd56_2- bioconductor-delayedarray=0.20.0=r41hc0cfd56_2- bioconductor-delayedmatrixstats=1.16.0=r41hdfd78af_0- bioconductor-dropletutils=1.14.2=r41hc247a5b_1- bioconductor-edger=3.36.0=r41hc247a5b_2- bioconductor-genomeinfodb=1.30.1=r41hdfd78af_0- bioconductor-genomeinfodbdata=1.2.7=r41hdfd78af_2- bioconductor-genomicalignments=1.30.0=r41hc0cfd56_2- bioconductor-genomicranges=1.46.1=r41hc0cfd56_1- bioconductor-hdf5array=1.22.1=r41hc0cfd56_1- bioconductor-iranges=2.28.0=r41hc0cfd56_2- bioconductor-limma=3.50.3=r41hc0cfd56_0- bioconductor-matrixgenerics=1.6.0=r41hdfd78af_0- bioconductor-noiseq=2.38.0=r41hdfd78af_0- bioconductor-rhdf5=2.38.1=r41hbe1951d_0- bioconductor-rhdf5filters=1.6.0=r41hc247a5b_2- bioconductor-rhdf5lib=1.16.0=r41hc0cfd56_2- bioconductor-rhtslib=1.26.0=r41hc0cfd56_2- bioconductor-rsamtools=2.10.0=r41hc247a5b_2- bioconductor-rtracklayer=1.54.0=r41h171f361_4- bioconductor-s4vectors=0.32.4=r41hc0cfd56_0- bioconductor-scuttle=1.4.0=r41hc247a5b_2- bioconductor-singlecellexperiment=1.16.0=r41hdfd78af_0- bioconductor-sparsematrixstats=1.6.0=r41hc247a5b_2- bioconductor-summarizedexperiment=1.24.0=r41hdfd78af_0- bioconductor-xvector=0.34.0=r41hc0cfd56_2- bioconductor-zlibbioc=1.40.0=r41hc0cfd56_2- bwidget=1.9.14=ha770c72_1- bx-python=0.9.0=py39h6471ffd_0- bzip2=1.0.8=h7f98852_4- c-ares=1.18.1=h7f98852_0- ca-certificates=2022.12.7=ha878542_0- cairo=1.16.0=ha61ee94_1014- cffi=1.15.1=py39he91dace_3- click=8.1.3=unix_pyhd8ed1ab_2- curl=7.26.0=1- cutadapt=4.1=py39hbf8eff0_1- dnaio=0.10.0=py39hbf8eff0_0- expat=2.5.0=hcb278e6_1- font-ttf-dejavu-sans-mono=2.37=hab24e00_0- font-ttf-inconsolata=3.000=h77eed37_0- font-ttf-source-code-pro=2.038=h77eed37_0- font-ttf-ubuntu=0.83=hab24e00_0- fontconfig=2.14.2=h14ed4e7_0- fonts-conda-ecosystem=1=0- fonts-conda-forge=1=0- freetype=2.12.1=hca18f0e_1- fribidi=1.0.10=h36c2ea0_0- future=0.18.3=pyhd8ed1ab_0- gcc_impl_linux-64=12.2.0=hcc96c02_19- geos=3.11.2=hcb278e6_0- gettext=0.21.1=h27087fc_0- gfortran_impl_linux-64=12.2.0=h55be85b_19- giflib=5.2.1=h0b41bf4_3- glpk=5.0=h445213a_0- gmp=6.2.1=h58526e2_0- graphite2=1.3.13=h58526e2_1001- gsl=2.7=he838d99_0- gxx_impl_linux-64=12.2.0=hcc96c02_19- harfbuzz=6.0.0=h8e241bc_0- htslib=1.17=h6bc39ce_0- icu=70.1=h27087fc_0- isa-l=2.30.0=ha770c72_4- jinja2=3.1.2=pyhd8ed1ab_1- jpeg=9e=h0b41bf4_3- kernel-headers_linux-64=2.6.32=he073ed8_15- keyutils=1.6.1=h166bdaf_0- krb5=1.19.3=h3790be6_0- lcms2=2.14=h6ed2654_0- ld_impl_linux-64=2.40=h41732ed_0- lerc=4.0.0=h27087fc_0- libblas=3.9.0=16_linux64_openblas- libcblas=3.9.0=16_linux64_openblas- libcups=2.3.3=h3e49a29_2- libcurl=7.87.0=h91b91d3_0- libdeflate=1.13=h166bdaf_0- libedit=3.1.20191231=he28a2e2_2- libev=4.33=h516909a_1- libexpat=2.5.0=hcb278e6_1- libffi=3.4.2=h7f98852_5- libgcc-devel_linux-64=12.2.0=h3b97bd3_19- libgcc-ng=12.2.0=h65d4601_19- libgfortran-ng=12.2.0=h69a702a_19- libgfortran5=12.2.0=h337968e_19- libglib=2.74.1=h606061b_1- libgomp=12.2.0=h65d4601_19- libiconv=1.17=h166bdaf_0- liblapack=3.9.0=16_linux64_openblas- libnghttp2=1.51.0=hdcd2b5c_0- libnsl=2.0.0=h7f98852_0- libopenblas=0.3.21=pthreads_h78a6416_3- libpng=1.6.39=h753d276_0- libsanitizer=12.2.0=h46fd767_19- libsqlite=3.40.0=h753d276_0- libssh2=1.10.0=haa6b8db_3- libstdcxx-devel_linux-64=12.2.0=h3b97bd3_19- libstdcxx-ng=12.2.0=h46fd767_19- libtiff=4.4.0=h0e0dad5_3- libuuid=2.38.1=h0b41bf4_0- libwebp-base=1.3.0=h0b41bf4_0- libxcb=1.13=h7f98852_1004- libxml2=2.10.3=hca2bb57_4- libzlib=1.2.13=h166bdaf_4- loguru=0.6.0=py39hf3d152e_2- lzo=2.10=h516909a_1000- lzstring=1.0.4=py_1001- make=4.3=hd18ef5c_1- markupsafe=2.1.2=py39h72bdee0_0- ncurses=6.3=h27087fc_1- numpy=1.23.3=py39hba7629e_0- openjdk=17.0.3=h58dac75_5- openssl=1.1.1t=h0b41bf4_0- pandas=1.5.0=py39h4661b88_0- pandoc=2.19.2=h32600fe_2- pango=1.50.14=hd33c08f_0- pbzip2=1.1.13=0- pcre2=10.40=hc3806b6_0- perl=5.32.1=2_h7f98852_perl5- picard=2.27.5=hdfd78af_0- pigz=2.6=h27826a3_0- pip=22.2.2=pyhd8ed1ab_0- pixman=0.40.0=h36c2ea0_0- plotly=5.10.0=pyhd8ed1ab_0- pthread-stubs=0.4=h36c2ea0_1001- pybigwig=0.3.18=py39h792ddb7_2- pycparser=2.21=pyhd8ed1ab_0- pysam=0.19.1=py39h9abd093_1- python=3.9.13=h9a8a25e_0_cpython- python-dateutil=2.8.2=pyhd8ed1ab_0- python-isal=1.1.0=py39hb9d737c_1- python-lzo=1.14=py39h388aed1_2- python_abi=3.9=3_cp39- pytz=2023.3=pyhd8ed1ab_0- qualimap=2.2.2d=hdfd78af_2- r-abind=1.4_5=r41hc72bb7e_1004- r-argparse=2.1.6=r41hc72bb7e_1- r-askpass=1.1=r41h06615bd_3- r-assertthat=0.2.1=r41hc72bb7e_3- r-backports=1.4.1=r41h06615bd_1- r-base=4.1.3=hb87df5d_4- r-base64enc=0.1_3=r41h06615bd_1005- r-bh=1.81.0_1=r41hc72bb7e_0- r-bit=4.0.5=r41h06615bd_0- r-bit64=4.0.5=r41h06615bd_1- r-bitops=1.0_7=r41h06615bd_1- r-blob=1.2.4=r41hc72bb7e_0- r-broom=1.0.4=r41hc72bb7e_0- r-bslib=0.4.2=r41hc72bb7e_0- r-cachem=1.0.7=r41h133d619_0- r-callr=3.7.3=r41hc72bb7e_0- r-catools=1.18.2=r41h7525677_1- r-cellranger=1.1.0=r41hc72bb7e_1005- r-cli=3.6.1=r41h38f115c_0- r-clipr=0.8.0=r41hc72bb7e_1- r-cluster=2.1.4=r41h8da6f51_0- r-codetools=0.2_19=r41hc72bb7e_0- r-colorspace=2.1_0=r41h133d619_0- r-commonmark=1.9.0=r41h133d619_0- r-cowplot=1.1.1=r41hc72bb7e_1- r-cpp11=0.4.3=r41hc72bb7e_0- r-crayon=1.5.2=r41hc72bb7e_1- r-crosstalk=1.2.0=r41hc72bb7e_1- r-curl=4.3.3=r41h06615bd_1- r-data.table=1.14.8=r41h133d619_0- r-dbi=1.1.3=r41hc72bb7e_1- r-dbplyr=2.3.2=r41hc72bb7e_0- r-deldir=1.0_6=r41h8da6f51_1- r-digest=0.6.31=r41h38f115c_0- r-dplyr=1.1.1=r41h38f115c_0- r-dqrng=0.3.0=r41h7525677_1- r-dtplyr=1.3.1=r41hc72bb7e_0- r-ellipsis=0.3.2=r41h06615bd_1- r-evaluate=0.20=r41hc72bb7e_0- r-fansi=1.0.4=r41h133d619_0- r-farver=2.1.1=r41h7525677_1- r-fastmap=1.1.1=r41h38f115c_0- r-findpython=1.0.8=r41hc72bb7e_0- r-fitdistrplus=1.1_8=r41hc72bb7e_1- r-fnn=1.1.3.2=r41h38f115c_0- r-fontawesome=0.5.0=r41hc72bb7e_0- r-forcats=1.0.0=r41hc72bb7e_0- r-formatr=1.14=r41hc72bb7e_0- r-fs=1.6.1=r41h38f115c_0- r-futile.logger=1.4.3=r41hc72bb7e_1004- r-futile.options=1.0.1=r41hc72bb7e_1003- r-future=1.32.0=r41hc72bb7e_0- r-future.apply=1.10.0=r41hc72bb7e_0- r-gargle=1.3.0=r41h785f33e_0- r-generics=0.1.3=r41hc72bb7e_1- r-getopt=1.20.3=r41ha770c72_3- r-ggplot2=3.4.2=r41hc72bb7e_0- r-ggrepel=0.9.3=r41h38f115c_0- r-ggridges=0.5.4=r41hc72bb7e_1- r-globals=0.16.2=r41hc72bb7e_0- r-glue=1.6.2=r41h06615bd_1- r-goftest=1.2_3=r41h06615bd_1- r-googledrive=2.1.0=r41hc72bb7e_0- r-googlesheets4=1.1.0=r41h785f33e_0- r-gplots=3.1.3=r41hc72bb7e_1- r-gridextra=2.3=r41hc72bb7e_1004- r-gtable=0.3.3=r41hc72bb7e_0- r-gtools=3.9.4=r41h06615bd_0- r-haven=2.5.2=r41h38f115c_0- r-here=1.0.1=r41hc72bb7e_1- r-hexbin=1.28.3=r41hac0b197_0- r-highr=0.10=r41hc72bb7e_0- r-hms=1.1.3=r41hc72bb7e_0- r-htmltools=0.5.5=r41h38f115c_0- r-htmlwidgets=1.6.2=r41hc72bb7e_0- r-httpuv=1.6.9=r41h38f115c_0- r-httr=1.4.5=r41hc72bb7e_0- r-ica=1.0_3=r41hc72bb7e_1- r-ids=1.0.1=r41hc72bb7e_2- r-igraph=1.4.2=r41h65ed38e_0- r-irlba=2.3.5.1=r41h5f7b363_0- r-isoband=0.2.7=r41h38f115c_1- r-jquerylib=0.1.4=r41hc72bb7e_1- r-jsonlite=1.8.4=r41h133d619_0- r-kernsmooth=2.23_20=r41hd009a43_1- r-knitr=1.42=r41hc72bb7e_1- r-labeling=0.4.2=r41hc72bb7e_2- r-lambda.r=1.2.4=r41hc72bb7e_2- r-later=1.3.0=r41h7525677_1- r-lattice=0.21_8=r41h133d619_0- r-lazyeval=0.2.2=r41h06615bd_3- r-leiden=0.4.3=r41hc72bb7e_1- r-lifecycle=1.0.3=r41hc72bb7e_1- r-listenv=0.9.0=r41hc72bb7e_0- r-lmtest=0.9_40=r41h8da6f51_1- r-locfit=1.5_9.7=r41h133d619_0- r-lsei=1.3_0=r41hc3ea6d6_2- r-lubridate=1.9.2=r41h133d619_1- r-magrittr=2.0.3=r41h06615bd_1- r-mass=7.3_58.3=r41h133d619_0- r-matrix=1.5_4=r41he1ae0d6_0- r-matrixstats=0.63.0=r41h06615bd_0- r-memoise=2.0.1=r41hc72bb7e_1- r-mgcv=1.8_42=r41he1ae0d6_0- r-mime=0.12=r41h06615bd_1- r-miniui=0.1.1.1=r41hc72bb7e_1003- r-modelr=0.1.11=r41hc72bb7e_0- r-munsell=0.5.0=r41hc72bb7e_1005- r-nlme=3.1_162=r41hac0b197_0- r-npsurv=0.5_0=r41hc72bb7e_1- r-openssl=2.0.5=r41hb1dc35e_0- r-optparse=1.7.3=r41hc72bb7e_1- r-parallelly=1.35.0=r41hc72bb7e_0- r-patchwork=1.1.2=r41hc72bb7e_1- r-pbapply=1.7_0=r41hc72bb7e_0- r-pillar=1.9.0=r41hc72bb7e_0- r-pkgconfig=2.0.3=r41hc72bb7e_2- r-plotly=4.10.1=r41hc72bb7e_0- r-plyr=1.8.8=r41h7525677_0- r-png=0.1_8=r41h10cf519_0- r-polyclip=1.10_4=r41h7525677_0- r-prettyunits=1.1.1=r41hc72bb7e_2- r-processx=3.8.0=r41h06615bd_0- r-progress=1.2.2=r41hc72bb7e_3- r-progressr=0.13.0=r41hc72bb7e_0- r-promises=1.2.0.1=r41h7525677_1- r-ps=1.7.4=r41h133d619_0- r-purrr=1.0.1=r41h133d619_0- r-r.methodss3=1.8.2=r41hc72bb7e_1- r-r.oo=1.25.0=r41hc72bb7e_1- r-r.utils=2.12.2=r41hc72bb7e_0- r-r6=2.5.1=r41hc72bb7e_1- r-rann=2.6.1=r41h7525677_3- r-rappdirs=0.3.3=r41h06615bd_1- r-rcolorbrewer=1.1_3=r41h785f33e_1- r-rcpp=1.0.10=r41h38f115c_0- r-rcppannoy=0.0.20=r41h7525677_0- r-rcpparmadillo=0.12.2.0.0=r41h358215d_0- r-rcppeigen=0.3.3.9.3=r41h9f5de39_0- r-rcppparallel=5.1.6=r41h38f115c_0- r-rcppprogress=0.4.2=r41hc72bb7e_2- r-rcpptoml=0.1.7=r41h7525677_2- r-rcurl=1.98_1.12=r41h133d619_0- r-readr=2.1.4=r41h38f115c_0- r-readxl=1.4.2=r41h81ef4d7_0- r-rematch=1.0.1=r41hc72bb7e_1005- r-rematch2=2.1.2=r41hc72bb7e_2- r-reprex=2.0.2=r41hc72bb7e_1- r-reshape2=1.4.4=r41h7525677_2- r-restfulr=0.0.15=r41h73dbb54_0- r-reticulate=1.28=r41h38f115c_0- r-rgeos=0.6_2=r41h0d5128d_1- r-rjson=0.2.21=r41h7525677_2- r-rlang=1.1.0=r41h38f115c_0- r-rmarkdown=2.21=r41hc72bb7e_0- r-rocr=1.0_11=r41hc72bb7e_2- r-rpart=4.1.19=r41h06615bd_0- r-rprojroot=2.0.3=r41hc72bb7e_1- r-rspectra=0.16_1=r41h9f5de39_1- r-rstudioapi=0.14=r41hc72bb7e_1- r-rtsne=0.16=r41h37cf8d7_1- r-rvest=1.0.3=r41hc72bb7e_1- r-sass=0.4.5=r41h38f115c_0- r-scales=1.2.1=r41hc72bb7e_1- r-scattermore=0.8=r41h06615bd_1- r-sctransform=0.3.5=r41h9f5de39_1- r-selectr=0.4_2=r41hc72bb7e_2- r-seurat=4.1.1=r41h7525677_1- r-seuratobject=4.1.3=r41h38f115c_0- r-shiny=1.7.4=r41h785f33e_0- r-sitmo=2.0.2=r41h7525677_1- r-snow=0.4_4=r41hc72bb7e_1- r-sourcetools=0.1.7_1=r41h38f115c_0- r-sp=1.6_0=r41h133d619_0- r-spatstat.core=2.4_4=r41h7525677_1- r-spatstat.data=3.0_1=r41hc72bb7e_0- r-spatstat.geom=3.1_0=r41h133d619_0- r-spatstat.random=3.1_4=r41h38f115c_0- r-spatstat.sparse=3.0_1=r41h133d619_0- r-spatstat.utils=3.0_2=r41h133d619_0- r-stringi=1.7.12=r41h1ae9187_0- r-stringr=1.5.0=r41h785f33e_0- r-survival=3.5_5=r41h133d619_0- r-sys=3.4.1=r41h06615bd_0- r-tensor=1.5=r41hc72bb7e_1004- r-tibble=3.2.1=r41h133d619_1- r-tidyr=1.3.0=r41h38f115c_0- r-tidyselect=1.2.0=r41hc72bb7e_0- r-tidyverse=1.3.2=r41hc72bb7e_1- r-timechange=0.2.0=r41h38f115c_0- r-tinytex=0.44=r41hc72bb7e_0- r-tzdb=0.3.0=r41h7525677_1- r-utf8=1.2.3=r41h133d619_0- r-uuid=1.1_0=r41h06615bd_1- r-uwot=0.1.14=r41h7525677_1- r-vctrs=0.6.1=r41h38f115c_0- r-viridislite=0.4.1=r41hc72bb7e_1- r-vroom=1.6.1=r41h38f115c_0- r-withr=2.5.0=r41hc72bb7e_1- r-xfun=0.38=r41h38f115c_0- r-xml=3.99_0.14=r41hb43fdd4_0- r-xml2=1.3.3=r41h044e5c7_2- r-xtable=1.8_4=r41hc72bb7e_4- r-yaml=2.3.7=r41h133d619_0- r-zoo=1.8_11=r41h06615bd_1- readline=8.2=h8228510_1- rseqc=3.0.0=py_3- samtools=1.16.1=h00cdaf9_2- scipy=1.9.1=py39h8ba3f38_0- sed=4.8=he412f7d_0- setuptools=67.6.1=pyhd8ed1ab_0- six=1.16.0=pyh6c4a22f_0- sqlite=3.40.0=h4ff8645_0- star=2.7.10a=h9ee0642_0- subread=2.0.1=h7132678_2- sysroot_linux-64=2.12=he073ed8_15- tenacity=8.2.2=pyhd8ed1ab_0- tk=8.6.12=h27826a3_0- tktable=2.10=hb7b940f_3- tzdata=2023c=h71feb2d_0- varscan=2.4.4=hdfd78af_1- wheel=0.40.0=pyhd8ed1ab_0- xopen=1.7.0=py39hf3d152e_1- xorg-fixesproto=5.0=h7f98852_1002- xorg-inputproto=2.3.2=h7f98852_1002- xorg-kbproto=1.0.7=h7f98852_1002- xorg-libice=1.0.10=h7f98852_0- xorg-libsm=1.2.3=hd9c2040_1000- xorg-libx11=1.8.4=h0b41bf4_0- xorg-libxau=1.0.9=h7f98852_0- xorg-libxdmcp=1.1.3=h7f98852_0- xorg-libxext=1.3.4=h0b41bf4_2- xorg-libxfixes=5.0.3=h7f98852_1004- xorg-libxi=1.7.10=h7f98852_0- xorg-libxrender=0.9.10=h7f98852_1003- xorg-libxt=1.2.1=h7f98852_2- xorg-libxtst=1.2.3=h7f98852_1002- xorg-recordproto=1.14.2=h7f98852_1002- xorg-renderproto=0.11.1=h7f98852_1002- xorg-xextproto=7.3.0=h0b41bf4_1003- xorg-xproto=7.0.31=h7f98852_1007- xz=5.2.6=h166bdaf_0- zlib=1.2.13=h166bdaf_4- zstandard=0.19.0=py39h29414ee_1- zstd=1.5.2=h3eb15da_6-?pip:- opencv-contrib-python==4.8.1.78- openslide-python==1.3.1- pillow==10.1.0- pycv2==0.0.1- seeksoultools==1.2.0
prefix:?/data2/analysis/xunyin/seeksoultools

好啦,大家嘗試一下自己打包conda鏡像并分發給小伙伴們吧~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/96450.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/96450.shtml
英文地址,請注明出處:http://en.pswp.cn/web/96450.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據分析:合并

🔷 DA37:統計運動會項目報名人數(僅輸出有人報名的項目)? 題目描述給定兩個 CSV 文件:items.csv:包含項目信息(item_id, item_name, location)signup.csv:包含員工報名信…

高并發內存池(一):項目介紹和ThreadCache(線程緩存)實現

前言:本文將要介紹的高并發內存池,它的原型是Google的?個開源項?tcmalloc,全稱Thread-Caching Malloc,近一個月我將以學習為目的來模擬實現一個精簡版的高并發內存池,并對核心技術分塊進行精細剖析,分享在…

RK3399平臺ffmpeg-VPU硬編碼錄制USB攝像頭視頻、H264或MJPEG編碼

文章目錄 1 前言2 項目內容詳細說明2.0 功能2.1 工程文件夾說明 3 代碼3.1 CameraThread類3.1 CameraThreadImpl類 4 資源下載 1 前言 在某項目中需要在RK3399平臺實現USB攝像頭畫面的實時預覽、視頻錄制、拍照存儲等功能。 ??先來看需要實現的最終效果。 ?? ffmpeg USB攝…

解決藍牙耳機連win11電腦畫質依托答辯問題

以wh910n藍牙耳機為例 設置-系統-聲音-輸出(耳機)-常規(輸出點不允許)然后刪除wh910n藍牙設備 重新配對藍牙耳機

獨立顯卡和集成顯卡切換電腦卡住了怎么辦?

你是不是也遇到過這種情況——正忙著切換顯卡呢,電腦突然就卡住了,鼠標不動、屏幕定格,怎么按都沒反應?其實這種問題挺常見的,尤其是用了雙顯卡的筆記本或者工作站。別急著強制關機,嗯,咱們一步…

Java根據模版導出PDF文件

問題 工作中經常有這樣的需求,將一些數據,導出為下圖的PDF文件,那Java怎么做呢?今天手把手教你 準備模版 模版地址:https://download.csdn.net/download/ZHUSHANGLIN/91923381 修改模版使用AcrobatProPortable工具…

力扣hot100:環形鏈表(快慢指針法)(141)

一、題目描述二、思路分析這是鏈表題目中的經典問題,核心就是 如何判斷鏈表是否有環。 常見的兩種方法有:哈希表法:用一個集合存儲訪問過的節點,如果再次遇到相同節點說明有環。缺點:需要額外的空間,空間復…

AI 智能編碼工具:重塑開發效率的革命,從 GitHub Copilot 到國產新秀的全面解析

目錄 引言 一、主流智能編碼工具深度測評:從功能到實戰 1. GitHub Copilot:AI 編碼的 “開山鼻祖” 核心特性與實戰代碼 優缺點總結 2. Baidu Comate:文心大模型加持的 “國產之光” 核心特性與實戰代碼 優缺點總結 3. 通義靈碼&…

Server 13 ,CentOS 上使用 Nginx 部署多個前端項目完整指南( 支持多端口與腳本自動化 )

目錄 前言 一、實際背景 1.1 并行部署 1.2 接口代理 1.3 刷新問題 二、安裝腳本 2.1 創建腳本 2.2 不同系統 2.3 執行完成 三、配置文件 3.1 配置文件 3.2 目錄結構 3.3 重新啟動 四、驗證訪問 五、問題排查 5.1 訪問 404 5.2 接口 502 六、本文總結 6.1 清理…

2025最新:徹底解決Docker拉取鏡像超時問題

文章目錄🐳 解決 Docker 拉取鏡像超時:context deadline exceeded 完整指南(2025 親測有效)🔥 問題描述🧩 根本原因分析? 解決方案匯總? 方案 1:配置多源鏡像加速器(推薦&#xff…

小鵬汽車 vla 算法最新進展和模型結構細節

小鵬汽車在 VLA(視覺 - 語言 - 動作)算法領域的最新進展和模型結構細節,體現了其在端到端智駕系統和車端大模型部署上的技術突破。以下是基于 2025 年 9 月最新公開信息的深度解析: 一、最新進展:全場景 VLA 系統量產落…

斐波那契數列推廣

目錄 問題: 法一: 法二: 例題: 問題: 已知斐波那契數列的第一個和最后一個數字,如何求整個數列(即第二個數字) 法一: 主要是將數列拆分成兩個數列的思想 法二: 暴力…

基于STM32設計的智慧路燈(華為云IOT)_281

文章目錄 一、前言 1.1 項目介紹 【1】項目開發背景 【2】設計實現的功能 【3】項目硬件模塊組成 【4】設計意義 【5】國內外研究現狀 【6】摘要 1.2 設計思路 1.3 系統功能總結 1.4 開發工具的選擇 【1】設備端開發 【2】上位機開發 1.5 參考文獻 1.6 系統框架圖 1.7 系統原理…

實驗十 合理定義分布列實現性能優化-分布式表關聯

實驗介紹本實驗通過分析普通查詢過程中存在的性能瓶頸點,通過執行計劃的分析找到可能的性能優化點并加以實施,最終達到優化的效果,重點關注分布式關聯相關查詢語句的優化。實驗目的了解通過合理定義分布列實現分布式關聯的性能優化。實驗步驟…

C#,RabbitMQ從入門到精通,.NET8.0(路由/分布式/主題/消費重復問題 /延遲隊列和死信隊列/消息持久化 )/RabbitMQ集群模式

為什么使用消息隊列 消息隊列(MQ)在分布式系統中用于解耦生產者和消費者,提高系統的異步處理能力、削峰填谷、增強可擴展性和可靠性。通過消息隊列,任務可以異步執行,避免系統因瞬時高并發而崩潰。 消息隊列場景 異…

OpenHarmony之SELinux安全組件底層原理設計架構精講

1. 組件介紹 1.1 核心功能 **SELinux(安全增強式Linux)**是Linux歷史上杰出的安全組件,包含一組內核修改和用戶空間工具,并提供了基于安全策略的強制訪問控制機制(Mandatory Access Control,MAC)。本部件負責對文件、屬性、服務等系統資源提供強制訪問控制保護,提供n…

IIS 部署 asp.net core 項目時,出現500.19、500.31問題的解決方案

目錄 (一)500.19 問題 1. 問題說明 2. 原因 3. 解決 (二)500.31 問題 1. 問題說明 2. 原因 打開事件檢視器的3種方式: 3. 解決 (一)500.19 問題 1. 問題說明 2. 原因 Web項目發布時&am…

中大型水閘安全監測的重要性及實施方法

水閘作為水利工程體系中的關鍵性構筑物,其結構安全性和運行可靠性直接影響到整個水利系統的穩定運行,更與下游地區人民群眾的生命財產安全息息相關。作為水利樞紐工程的重要控制節點,水閘承擔著防洪排澇、灌溉供水、航運發電等多重功能&#…

【芯片設計-信號完整性 SI 學習 1.1.1 -- Unit Interval,比特周期】

文章目錄1. Unit Interval (UI) / 比特周期 的定義2. 舉例說明3. 在眼圖 (Eye Diagram) 中的體現4. 示意圖(a) 單比特周期(b) 不同速率下的 UI(c) 眼圖中的 UI5. 總結1. Unit Interval (UI) / 比特周期 的定義 在高速信號傳輸與 信號完整性 (SI) 測試中,Unit Inter…

Go語言開發工具全解析

Go 語言的開發工具生態對于提高開發效率、保證代碼質量和團隊協作至關重要。一套完善的工具鏈可以幫助開發者:1. 加速編碼過程代碼模板快速生成常見模式例如使用代碼片段(Snippet)快速生成HTTP服務框架自動生成測試用例模板實時語法檢查減少錯誤即時顯示類型不匹配錯…