CentOS 系统彻底崩了

这是由画图引起了一场“血案”。因为需要画一个叶绿体共线性的图,使用nucmer比对,然后使用mumerplot画图,但显示没有安装gnuplot,使用yum install 安装gnuplot后,发现缺少Qt和Qt Creator库,安装Qt发现需要需要gcc11版本以上,接着使用这个“CentOS8完美升级切换gcc版本方法”,显示升级失败。接下来大部分linux命令都用不了,可能是像上次一样是libc文件坏了,而是按照原来的方法。

1 修改U盘位置

开机启动,在进入到启动盘界面时,用上下键选择救援模式,然后按”e”进入编辑模式,将hd:后的内容换成U盘所在的盘符位置:

vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 rescue quiet
###修改为
vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdc4:/ rescue quiet
###如果不知道U盘的位置,可以退出后进入shell模式,然后使用:
ls /dev/sd*
##或者使用查看
fdisk -l

这一步没有问题后按”ctrl+x”运行,看见有选择界面后选择“ 1 continue”,可以运行了。救援模式是用Anaconda做的一个小的linux环境,使用Alt+Tab可以切换到命令模式。

2 激活引导分区

###查看磁盘分区情况
fdisk -l
###查看逻辑卷
lvdisplay
###激活逻辑卷
vgchange -ay /dev/cl   ##cl是上一步需要激活的"VG name"
###重新进入救援模式
systemctl --no-wall rescue

3 恢复libc.so.6文件

与CentOS7不同的是CentOS8默认挂载的文件夹是”/mnt/sysroot/”,不是”/mnt/sysimage”, “chroot /mnt/sysroot”进入到服务器的系统目录(注意不是启动盘中的系统目录),运行”df -h‘可以看到所有挂载的盘,拷贝一个libc.so.6文件到/mnt/sysroot/lib64/这个文件夹中就可以了。但重启系统后发现 “Failed to start Crash recovery kernel arming”, “centos failed to start udev coldplug all devices”, 和加载逻辑盘time out的错误。整了两天,通过disable kernel 相关服务可以消除第一个错误,但后面两个错误怎么也解决不了,系统只能进入emergency模式。没办法,只能打算重装系统了。

4 拷贝数据,重装系统

准备一个空盘,格式化成ext4文件格式。按上述2方法进入救援模式,使用fdisk -l 查看备份盘所在的地方(启动盘不能拔掉),查看逻辑卷,激活逻辑卷,重新进入救援模式,挂载备份盘,使用df -h查看所有盘符所在位置,拷贝所需文件至备份盘。

mkdir /mnt/tmp
mount /dev/sdb3 /mnt/tmp
cp /mnt/sysroot/home/admin/* /mnt/tmp/

然后使用1方法修改启动盘符,安装系统,为了避免CentOS升级gcc所带来的问题,彻底抛弃CentOS了,重新安装了一个Ubuntu service LTS 24.04系统。

Endnote 无法联接到在线数据库

Endnote 导入PDF文件文献后识别不了文献作者、标题、期刊等文献信息,如下面显示:

需要先修改Internet设置:

控制面板——网络和Internet——Internet选项——高级——将使用TLS1.0 1.1 1.2全勾上

然后右键点击选择的文献,选择“Edit Reference”, 粘贴上DOI号,更新文献就可以了。

更新好后显示的文献信息:

如果不能下到PDF文献,但需要引用这个文献,可以在google学术上下载这篇文献的引用,然后双击下载的.enw文件,导入到Endnode中。

EndNote参考文献格式修改

参考资料: EndNote文献插入

BUSCO结果画图

1、新建一个文件夹,将BUSCO的结果文件拷贝到的这个文件夹中,注意最好不要修改文件名称,如果修改,只改“short_summary.specific.eudicots_odb10.yourname.txt”中的”yourname”部分,且其中不要出现”.”,否则识别不出来,出现“No files matching the pattern short_summary.[generic|specific]* were found in result/” 这种错误。

mkdur -p plot/result
cd plot
cp ../JDB/short_summary.specific.eudicots_odb10.JDB.txt result/
cp ../SX/short_summary.specific.eudicots_odb10.SX.txt result/
cp ../RP_draf.asm_HiC/short_summary.specific.eudicots_odb10.RP_draf.asm_HiC.txt result/short_summary.specific.eudicots_odb10.RP_draf.txt
cp ../RP_draf.asm.hic.hap1/short_summary.specific.eudicots_odb10.RP_draf.asm.hic.hap1.txt result/short_summary.specific.eudicots_odb10.RP_hap1.txt
cp ../RP_draf.asm.hic.hap2/short_summary.specific.eudicots_odb10.RP_draf.asm.hic.hap2.txt result/short_summary.specific.eudicots_odb10.RP_hap2.txt

2、运行generate_plot.py 程序生成图,如果是用conda安装的busco,可以先激活busco,或者用其绝对路径“~/anaconda3/envs/busco/bin/generate_plot.py”

conda activate busco
generate_plot.py -wd result

博客正式回归

两个月前,博客出现了“此站点出现了致使错误”,删除了插件还是不行,由于一直在组装基因组,也没有心思来打理,所以一直访问不了,平时一些流程和方法都用Typora记在本地了,也懒得去管了。博客虽然已经开通十多年了,但文章并不多,粉丝也很少,没有赠到一份钱,银子却花了不少,就像养了一个不争气的儿子,一直在啃老,现在能保留纯粹是一种情怀。常常就想,做博客是为了什么,为了做笔记心得吧,记在本地不就可以了,为什么要分享,而且随着对生物信息的不断深入,很多技术方面的心得就是自己的心血,是自己踩了无数坑摸索出来的,作为自己的核心竞争力,我为什么要告诉别人。而且网上认识的有些人,花了大量的时间手把手教会了,却连一个谢谢都没有就Bye bye 了,反正茫茫人海中谁认识谁。不得不说,年纪越大越实际,也不得不实际。指望涨粉卖课?现在短视频横行的时代,有几个人去关心博客,自己又有多少时间能做这个。也许这也是导致我这个博客半死半活的原因吧。

但是有时常常又问自己为什么要搞生信,难道不是因为热爱吗,不是因为解决一个问题获得的快乐吗,真正的热爱不是在认清真相依然还热爱吗。把这咱热爱释放出去难道不就是对自己的一种释放和认可吗,渡人渡心渡已而已,因此重拾旧心,重启博客。

perl Class::HPLOO 模块安装

由于安装DBD模块需要Class::HPLOO模块,但Class::HPLOO模块是在perl 5.028000版本写的,利用cpan或者cpanm均会出现问题,需要手动安装,在metacpan网站下载这个模块,手动安装,但还是会出现问题,“ Can’t use ‘defined(@array)’ ”,新版本的perl不支持”defined @”这个语法,去掉“defined ”就可以了。在“lib/Class/HPLOO/Base.pm”和“lib/Class/HPLOO.pm”这两文件中“defined @”的地方去掉”defined “,在“test.pl”这个文件中,将eval { require “test/classtest.pm” } ;” 替换成 “eval { require “./test/classtest.pm” } ;”,然后编译安装就可以了。

 perl Makefile.PL && make && make test && make install

参考资料:

perl模块Class::HPLOO v0.23安装问题

perl module Class::HPLOO v0.23 install issue

CentOS8安装docker

由于有一些软件需要运行在docker上,打算在CentOS8上安装试一下。一开始是按照菜鸟教程上的操作(curl -fsSL https://get.docker.com | bash -s docker –mirror Aliyun)来进行的,但出现下面错误:

Error:
 Problem 1: problem with installed package podman-3.2.3-0.10.module_el8.4.0+886+c9a8d9ad.x86_64
  - package podman-3.2.3-0.10.module_el8.4.0+886+c9a8d9ad.x86_64 requires runc >= 1.0.0-57, but none of the providers can be installed
  - package podman-3.3.1-9.module_el8.5.0+988+b1f0b741.x86_64 requires runc >= 1.0.0-57, but none of the providers can be installed
  - package containerd.io-1.6.8-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-74.rc95.module_el8.4.0+886+c9a8d9ad.x86_64
  - package containerd.io-1.6.8-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-74.rc95.module_el8.4.0+886+c9a8d9ad.x86_64
  - package containerd.io-1.6.8-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.6.8-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - cannot install the best candidate for the job
  - package runc-1.0.0-66.rc10.module_el8.5.0+1004+c00a74f5.x86_64 is filtered out by modular filtering
  - package runc-1.0.0-72.rc92.module_el8.5.0+1006+8d0e68a2.x86_64 is filtered out by modular filtering
 Problem 2: problem with installed package buildah-1.21.4-1.module_el8.4.0+886+c9a8d9ad.x86_64

这是因为安装了podman就不能再安装docker了,需要先卸载podman:

yum install -y -q yum-utils
+ sh -c 'yum install -y -q docker-ce docker-ce-cli containerd.io docker-scan-plugin docker-compose-plugin docker-ce-rootless-extras'
Error:
 Problem 1: problem with installed package containers-common-1:1.3.1-5.module_el8.4.0+886+c9a8d9ad.x86_64
  - package containers-common-1:1.3.1-5.module_el8.4.0+886+c9a8d9ad.x86_64 requires runc, but none of the providers can be installed
  - package containers-common-2:1-2.module_el8.5.0+890+6b136101.noarch requires runc, but none of the providers can be installed
  - package containerd.io-1.6.8-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-74.rc95.module_el8.4.0+886+c9a8d9ad.x86_64
  - package containerd.io-1.6.8-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-74.rc95.module_el8.4.0+886+c9a8d9ad.x86_64
  - package containerd.io-1.6.8-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.6.8-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - cannot install the best candidate for the job
  - package runc-1.0.0-56.rc5.dev.git2abd837.module_el8.3.0+569+1bada2e4.x86_64 is filtered out by modular filtering
  - package runc-1.0.0-66.rc10.module_el8.5.0+1004+c00a74f5.x86_64 is filtered out by modular filtering
  - package runc-1.0.0-72.rc92.module_el8.5.0+1006+8d0e68a2.x86_64 is filtered out by modular filtering
 Problem 2: problem with installed package buildah-1.21.4-1.module_el8.4.0+886+c9a8d9ad.x86_64

这是由于安装的docker版本与系统不匹配的原因,可以手动安装与之对应的版本,先找到相应系统所在的目录,如我的为CentOS 8,对应的目录为“https://download.docker.com/linux/centos/8/x86_64/stable/Packages/”,然后在里面找到需要安装的包,应下面的命令安装就可以了。

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.6.8-3.1.el8.x86_64.rpm --allowerasing
yum install https://download.docker.com/linux/centos/8/x86_64/stable/Packages/docker-ce-20.10.9-3.el8.x86_64.rpm --allowerasing
yum install https://download.docker.com/linux/centos/8/x86_64/stable/Packages/docker-compose-plugin-2.6.0-3.el8.x86_64.rpm --allowerasing

最后启动docker服务,进行测试,添加用户:

systemctl start docker    ##start docker service
docker run hello-world    ###test docker
sudo gpasswd -a $USER docker  ###Add the user
newgrp docke              ###update the user group

mysql++安装

MySQL++是基于 C++的 对MySQL和MariaDB的再次封装, 它建立在与标准c++库相同的原则之上,使处理数据库如同处理std容器(STL)一样简单。MySQL++还提供了一些工具,可以让您在自己的代码中避免重复的SQL,为这些常见任务提供了本地c++接口。 因此首先需要先安装mysql.

yum install mysql-devel

如果没有root权限,也可以下载源代码包安装。下载mysql++并编译安装:

wget https://tangentsoft.com/mysqlpp/releases/mysql++-3.3.0.tar.gz
 tar xzvf mysql++-3.3.0.tar.gz
 cd mysql++-3.3.0/
 ./configure --prefix=/home/usr/local/installdir --with-mysql=/usr/bin --with-mysql-lib=/usr/lib64/mysql --with-mysql-include=/usr/include/mysql 

make
make install

如果没有管理员权限的话可以安装在用户自己的目录下,通过设置“–prefix=/home/usr/local/installdir”目录,如果配置时出现”
configure: error: The MySQL library cannot be found. “找不到MySQL库,但是mysql已经安装了,那是因为配置程序在固定位置找不到所需要库,可以手动指定mysql库所在位置,如果是用yum安装的可以使用“–with-mysql-lib=/usr/lib64/mysql –with-mysql-include=/usr/include/mysql”指定mysql及库所有的位置,如果不是yum安装的,自己也不知道安装在哪里,可以使用“whereis mysql”查找mysql安装的位置,然后更改为其位置。

由于默认多线程是不开启的,如果需要开启,配置时添加–enable-thread-check这个参数,但是会显示”Didn’t find mysqlclient_r library in “这个错误,找不半天还是没有解决这个错误,最后还是去掉这个参数,舍弃多线程。

如果其它程序需要调用mysql++,但却显示找不到mysql++库,可以运行下面程序:

echo "/usr/local/lib64" > /etc/ld.so.conf
ldconfig
ln -s /usr/local/lib/libmysqlpp.so /usr/lib/libmysqlpp.so 

如果是安装在用户自己的目录下,把“/usr/local/lib64″更改成安装目录的库文件夹,libmysqlpp.so的位置也做相应的修改。

Error loading shared libraries libcrypto.so.1.1

openssh文件损坏,导致连不上网,也运行不了远程连接。连网时出现“Error loading shared libraries libcrypto.so.1.1”,“error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory”,因为OpenSSL库默认存储在/usr/lib64下,该目录也将包含在搜索路径中。如果OpenSSL是从源代码编译的,那么共享库将安装在/usr/local/lib64下(如果在配置OpenSSL时未使用前缀选项)。这意味着,新安装的库不在搜索路径中,这就是此错误的原因。所以我们需要做的就是,使用下面的命令在搜索路径中包含OpenSSL库。

echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.conf
ldconfig

BUSCO数据库包含物种

conda activate busco  ##激活busco
busco --list-datasets  ###查看可用的BUSCO数据库,查找目标物种属于哪个分类,分类越小越好

奈何很多物种名字不知道中文名字,我简单百度了一下,现列出真核生物包含的种类及中文翻译。

stramenopiles_odb10菌界
fungi_odb10真菌
ascomycota_odb10子囊菌门
basidiomycota_odb10担子菌门
mucoromycota_odb10毛霉门
saccharomycetes_odb10酵母纲
dothideomycetes_odb10座囊菌纲
eurotiomycetes_odb10散囊菌纲
leotiomycetes_odb10锤舌菌纲
sordariomycetes_odb10粪壳菌纲
mucorales_odb10毛霉目
boletales_odb10牛肝菌目
eurotiales_odb10散囊菌目
helotiales_odb10柔膜菌目
hypocreales_odb10肉座菌目
onygenales_odb10散囊菌目
pleosporales_odb10格孢腔菌目
polyporales_odb10多孔菌目
actinopterygii_odb10放线菌
agaricomycetes_odb10琼脂菌
agaricales_odb10伞菌
glomerellales_odb10炭疽病菌属
tremellomycetes_odb10植物银耳纲
viridiplantae_odb10植物绿色植物界
chlorophyta_odb10植物绿藻门
embryophyta_odb10植物有胚植物
eudicots_odb10植物真双子叶植物
liliopsida_odb10植物百合纲
brassicales_odb10植物十字花目
fabales_odb10植物豆目
poales_odb10植物禾本目
solanales_odb10植物茄目
microsporidia_odb10动物微孢子虫
nematoda_odb10动物线虫纲
alveolata_odb10动物囊泡虫类
plasmodium_odb10动物疟原虫属
euglenozoa_odb10动物眼虫门
arthropoda_odb10动物节肢动物门
insecta_odb10动物昆虫纲
arachnida_odb10动物蛛形纲
endopterygota_odb10动物全变态类
hemiptera_odb10动物半翅目
hymenoptera_odb10动物膜翅目
diptera_odb10动物双翅目
coccidia_odb10动物球虫
lepidoptera_odb10动物鳞翅目
mollusca_odb10动物软体动物门
aconoidasida_odb10动物无类锥体纲
apicomplexa_odb10动物顶复亚门
vertebrata_odb10动物脊椎动物亚门
metazoa_odb10动物后生动物
aves_odb10动物鸟纲
mammalia_odb10动物哺乳动物纲
eutheria_odb10动物真兽亚纲
cetartiodactyla_odb10动物鲸偶蹄类
primates_odb10动物灵长类
sauropsida_odb10动物蜥形类
tetrapoda_odb10动物四足类
capnodiales_odb10动物煤炱目
carnivora_odb10动物食肉目
chaetothyriales_odb10动物刺盾炱目
cyprinodontiformes_odb10动物 鳉形目
euarchontoglires_odb10动物灵长总目
eukaryota_odb10动物真核生物
glires_odb10动物啮类动物
laurasiatheria_odb10动物亚兽总目
passeriformes_odb10动物雀形目