centos7系统升级GLIBC说明

一、前言说明:

strings /usr/lib64/libstdc++.so.6 | grep CXXABI

strings /lib64/libc.so.6 | grep GLIBC_2.27

查看所需的库版本是否存在

这是正常需要的,系统版本低的情况下默认的这个版本都是比较低导致服务无法启动

如果单独升级/usr/lib64/libstdc++.so.6是可以的,但是 /lib64/libc.so.6是底层基础库

都是需要升级的,这样会误升级 /lib64/libc.so.6 再删除备份libc.so.6导致系统故障,

注意:如果出现这种情况需要使用静态软连接sln 来恢复!

sln libc-2.17.so libc.so.6

所以最终我们还是需要来升级gcc和GLIBC来满足需求!

二、升级GLIBC

先升级gcc这个不用讲了,我用的gcc-9.3.0,本来想安装GLIBC-2.31但是这个需要python3.4以上,centos7默认是2.7,为了安全起见还是升级到GLIBC-2.28

1、先下载glibc包

wget https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz 解压完找到INSTALL文件cat下看看所需的对应环境包版本依赖

主要是gcc  make  bison(yum安装即可)

  1. 先打包下系统文件:tar -czvf /home/soft/glibc_backup.tar.gz /lib64/libc.so* /usr/include/*以防万一
  2. 升级make

wget https://mirrors.aliyun.com/gnu/make/make-4.3.tar.gz

tar zxvf make-4.3.tar.gz

cd make-4.3

mkdir build && cd build

../configure --prefix=/usr/local/make4.3

make && make install

whereis make

cd /usr/bin/  

mv make make.bak

ln -s /usr/local/make4.3/bin/make /usr/bin/make

然后看下版本可以了 make -v

  1. 升级glibc,已下载

tar zxvf glibc-2.28.tar.gz

cd glibc-2.28

mkdir build && cd build

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks --disable-werror

注意:--prefix=/usr 指定其他目录的话会导致make install报错:

/home/soft/glibc-2.28/build/elf/ldconfig: Warning: ignoring configuration file that cannot be opened: /usr/local/glibc-2.28/etc/ld.so.conf: No such file or directory 再调整麻烦

make -j4

make install

查看下是否成功ldd --version

至此完成!

三、出现的问题处理:

不过发现升级完出现yum无法使用的情况

主要可能有两个原因:一是没有安装对应的语言包,二是环境变量配置不正确。

到glibc的build下执行:make localedata/install-locales

然后发现虽然不报错了但是yum卡住如下:

发现/usr/lib/cc没了还有就是/usr/lib64/libstdc++.so.6也被还原了

直接删掉/usr/lib/cc 会默认链接到gcc,/usr/lib64/libstdc++.so.6软链接再设置下然后重启下机器就可以了

注:centos7的gcc升级到10版本及glibc升级到2.28以上,因版本问题会导致yum无法使用很难恢复,谨慎升级!

### 中文电子病历命名实体识别与关系抽取 #### 方法概述 对于中文电子病历中的命名实体识别(NER),主要方法涉及深度学习模型的应用。一种流行的方法是采用 BERT+BiLSTM+CRF 结构来处理这一任务[^3]。该架构利用预训练的语言表示模型BERT捕捉上下文信息,通过双向长短时记忆网络(BiLSTM)进一步增强序列特征的学习能力,并最终借助条件随机场(CRF)层优化标签预测。 #### 工具和技术栈 为了支持上述技术方案,在实践中可以依赖多种开源框架和完成开发工作: - **Hugging Face Transformers** 提供了丰富的预训练模型资源以及便捷接口用于微调这些模型适应特定领域数据集; - **PyTorch/ TensorFlow** 是构建自定义神经网络组件的理想平台; - **spaCy** 或者 **NLTK** 可以为文本预处理提供帮助; 此外,针对医疗领域的特殊需求,还可以考虑使用专门设计的数据标注工具如 Brat Rapid Annotation Tool 来准备高质量的训练样本集合。 #### 研究进展 近年来围绕着提高 NER 性能在医学文档上的表现展开了大量探索性研究。除了改进现有算法外,研究人员还致力于解决跨机构间数据共享困难带来的挑战,尝试引入迁移学习策略以减少对大规模标记语料的需求。同时也有不少工作聚焦于多模态融合方向,试图结合图像、音频等多种形式的信息辅助诊断过程中的关键要素提取[^2]。 ```python from transformers import BertTokenizer, BertForTokenClassification import torch tokenizer = BertTokenizer.from_pretrained('bert-base-chinese') model = BertForTokenClassification.from_pretrained('./path_to_finetuned_model') def predict_entities(text): inputs = tokenizer.encode_plus( text, return_tensors="pt", max_length=512, truncation=True ) outputs = model(**inputs)[0] predictions = torch.argmax(outputs, dim=-1).tolist()[0] entities = [] current_entity = None for i, prediction in enumerate(predictions[:-1]): label = model.config.id2label[prediction] if 'B-' in label or ('I-' not in label and current_entity is not None): if current_entity: entities.append(current_entity) current_entity = {'start': i, 'end': i + 1, 'type': label.replace('B-', '')} elif 'I-' in label and current_entity is not None: current_entity['end'] += 1 if current_entity: entities.append(current_entity) return [(text[e['start']:e['end']], e['type']) for e in entities] ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值