网站建设道冲百度手机助手应用商店下载

pingmian/2026/1/20 1:10:02/文章来源:
网站建设道冲,百度手机助手应用商店下载,公司网站建设广州,洛可可设计集团在老旧的系统环境下使用Rust开发工具 笔者的一台硬件资源紧张的旧电脑安装了Ubuntu-12.04#xff0c;希望在其上运行比较新的Rust开发工具#xff0c;但却发现其因glibc较老#xff0c;不能正常运行cargo工具#xff0c;结果如下#xff1a; yejqUNIX:~$ uname -a Linux…在老旧的系统环境下使用Rust开发工具 笔者的一台硬件资源紧张的旧电脑安装了Ubuntu-12.04希望在其上运行比较新的Rust开发工具但却发现其因glibc较老不能正常运行cargo工具结果如下 yejqUNIX:~$ uname -a Linux UNIX 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:51:20 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux yejqUNIX:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.5 LTS Release: 12.04 Codename: precise yejqUNIX:~$ cargo new --bin hello cargo: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.17 not found (required by cargo)如上cargo可执行文件对glibc最低版本要求是GLIBC_2.17而Ubuntu-12.04系统的glibc版本较低因此不能正常运行。一种可行的解决方法是使用docker容量在Ubuntu-12.04系统下使用新的Rust开发工具但限于笔者对docker了解程度比较浅并没有尝试该方法。笔者想到的方法也比较简单直接此前的博客对该方法有相关的说明在Ubuntu-12.04系统上安装Ubuntu-22.04系统的glibc动态库不替换原先的glibc库,之后修改Rust开发工具的可执行文件强制其依赖新的glibc库。 在Ubuntu-22.04下载并解压新的glibc动态库 首先笔者需要另一台安装了较新版本Ubuntu的系统环境Ubuntu-22.04使用apt-get download命令下载四个相关的deb软件包 yejqubuntu:~/x64_libs$ apt-get download libc6 Get:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 libc6 amd64 2.35-0ubuntu3.6 [3,236 kB] Fetched 3,236 kB in 1s (2,870 kB/s) yejqubuntu:~/x64_libs$ apt-get download libgcc-s1 Get:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 libgcc-s1 amd64 12.3.0-1ubuntu1~22.04 [53.9 kB] Fetched 53.9 kB in 0s (123 kB/s) yejqubuntu:~/x64_libs$ apt-get download libstdc6 Get:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 libstdc6 amd64 12.3.0-1ubuntu1~22.04 [699 kB] Fetched 699 kB in 1s (1,158 kB/s) yejqubuntu:~/x64_libs$ apt-get download zlib1g Get:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 zlib1g amd64 1:1.2.11.dfsg-2ubuntu9.2 [58.4 kB] Fetched 58.4 kB in 0s (145 kB/s) yejqubuntu:~/x64_libs$ ls -lh *.deb -rw-r--r-- 1 yejq yejq 3.1M Jan 10 20:40 libc6_2.35-0ubuntu3.6_amd64.deb -rw-r--r-- 1 yejq yejq 53K Jun 29 2023 libgcc-s1_12.3.0-1ubuntu1~22.04_amd64.deb -rw-r--r-- 1 yejq yejq 683K Jun 29 2023 libstdc6_12.3.0-1ubuntu1~22.04_amd64.deb -rw-r--r-- 1 yejq yejq 58K Oct 18 2022 zlib1g_1%3a1.2.11.dfsg-2ubuntu9.2_amd64.deb之后再手动解压这四个软件包其中包含了我们要在Ubuntu-12.04系统中安装的动态库。以libgcc-s1软件包为例下面是解压的操作 yejqubuntu:~/x64_libs$ ls -lh libgcc-s1_12.3.0-1ubuntu1~22.04_amd64.deb -rw-r--r-- 1 yejq yejq 53K Jun 29 2023 libgcc-s1_12.3.0-1ubuntu1~22.04_amd64.deb yejqubuntu:~/x64_libs$ ar x libgcc-s1_12.3.0-1ubuntu1~22.04_amd64.deb yejqubuntu:~/x64_libs$ ls -lh control.tar.zst data.tar.zst debian-binary -rw-r--r-- 1 yejq yejq 1.7K Feb 17 20:15 control.tar.zst -rw-r--r-- 1 yejq yejq 51K Feb 17 20:15 data.tar.zst -rw-r--r-- 1 yejq yejq 4 Feb 17 20:15 debian-binary yejqubuntu:~/x64_libs$ tar -axf data.tar.zst yejqubuntu:~/x64_libs$ find ./lib ./lib ./lib/x86_64-linux-gnu ./lib/x86_64-linux-gnu/libgcc_s.so.1 yejqubuntu:~/x64_libs$ mkdir -p lib64 yejqubuntu:~/x64_libs$ mv ./lib/x86_64-linux-gnu/* ./lib64/如上使用ar x命令解压deb包可以获得三个文件control.tar.zst/data.tar.zst/debian-binary之后再次解压data.tar.zst可得到./lib文件夹其中包含了我们想要的动态库。对另外三个deb需要重复这个解压的操作。最后将所有的动态库全部都集中到./lib64文件夹下复制到Ubuntu-12.04系统中注意软链接的复制。笔者得到的lib64文件夹中的内容有多了一些ncurses的库 yejqubuntu:~/x64_libs$ ls ./lib64 audit libmenu.so.6.3 libpthread.so.0 gconv libm.so.6 libresolv.so.2 ld-linux-x86-64.so.2 libmvec.so.1 librt.so.1 libanl.so.1 libncurses.so.6 libstdc.so.6 libBrokenLocale.so.1 libncurses.so.6.3 libstdc.so.6.0.30 libc_malloc_debug.so.0 libnsl.so.1 libthread_db.so.1 libc.so.6 libnss_compat.so.2 libtic.so.6 libdl.so.2 libnss_dns.so.2 libtic.so.6.3 libform.so.6 libnss_files.so.2 libtinfo.so.6 libform.so.6.3 libnss_hesiod.so.2 libtinfo.so.6.3 libgcc_s.so.1 libpanel.so.6 libutil.so.1 libmemusage.so libpanel.so.6.3 libz.so.1 libmenu.so.6 libpcprofile.so libz.so.1.2.11在Ubuntu-12.04系统上修改新的glibc 笔者在Ubuntu-12.04系统下创建了/home/user/x64_libs文件夹并将lib64文件夹复制到该目录。之后笔者通过modify.sh脚本直接修改了lib64中的动态库 rootUNIX:/home/user/x64_libs# ls lib64 modify.sh rootUNIX:/home/user/x64_libs# ./modify.sh xxd -g 26 -l 26 -s 11712 lib64/gconv/gconv-modules.cache INFO: processing [lib64/gconv/gconv-modules.cache], (/usr/lib/x86_64-linux-gnu/) replaced 1 time(s). xxd -g 26 -l 26 -s 180311 lib64/ld-linux-x86-64.so.2 xxd -g 26 -l 26 -s 182135 lib64/ld-linux-x86-64.so.2 INFO: processing [lib64/ld-linux-x86-64.so.2], (/usr/lib/x86_64-linux-gnu/) replaced 2 time(s). xxd -g 26 -l 26 -s 1951808 lib64/libc.so.6 xxd -g 26 -l 26 -s 1953808 lib64/libc.so.6 INFO: processing [lib64/libc.so.6], (/usr/lib/x86_64-linux-gnu/) replaced 2 time(s). xxd -g 16 -l 16 -s 188955 lib64/ld-linux-x86-64.so.2 xxd -g 16 -l 16 -s 204139 lib64/ld-linux-x86-64.so.2 INFO: processing [lib64/ld-linux-x86-64.so.2], (/etc/ld.so.cache) replaced 2 time(s). xxd -g 22 -l 22 -s 180288 lib64/ld-linux-x86-64.so.2 xxd -g 22 -l 22 -s 182112 lib64/ld-linux-x86-64.so.2 INFO: processing [lib64/ld-linux-x86-64.so.2], (/lib/x86_64-linux-gnu/) replaced 2 time(s). xxd -g 9 -l 9 -s 180344 lib64/ld-linux-x86-64.so.2 xxd -g 9 -l 9 -s 182168 lib64/ld-linux-x86-64.so.2 INFO: processing [lib64/ld-linux-x86-64.so.2], (/usr/lib/) replaced 2 time(s). xxd -g 5 -l 5 -s 26613 lib64/ld-linux-x86-64.so.2 xxd -g 5 -l 5 -s 44617 lib64/ld-linux-x86-64.so.2 xxd -g 5 -l 5 -s 180338 lib64/ld-linux-x86-64.so.2 xxd -g 5 -l 5 -s 182162 lib64/ld-linux-x86-64.so.2 INFO: processing [lib64/ld-linux-x86-64.so.2], (/lib/) replaced 4 time(s). xxd -g 27 -l 27 -s 189539 lib64/ld-linux-x86-64.so.2 xxd -g 27 -l 27 -s 205047 lib64/ld-linux-x86-64.so.2 INFO: processing [lib64/ld-linux-x86-64.so.2], (/lib64/ld-linux-x86-64.so.2) replaced 2 time(s). xxd -g 27 -l 27 -s 1982000 lib64/libc.so.6 INFO: processing [lib64/libc.so.6], (/lib64/ld-linux-x86-64.so.2) replaced 1 time(s). /lib64/ld-linux-x86-64.so.y - /home/user/x64_libs/lib64/ld-linux-x86-64.so.2脚本modify.sh调用了笔者编写的一个简单的hed工具用于批量替换二进制文件中的字符串或二进制数据有需要可以联系笔者该脚本的内容如下 rootUNIX:/home/user/x64_libs# cat modify.sh #!/bin/bashREPSTR/home/user/x64_libs/lib64/ OLDSTR/usr/lib/x86_64-linux-gnu/if [ $UID -ne 0 ] ; thenecho Error, run again as root. 12exit 1 fihed lib64/gconv/gconv-modules.cache \lib64/ld-linux-x86-64.so.2 \lib64/libc.so.6 -s \${OLDSTR} ${REPSTR} sync ; sleep 1# /lib/ # /usr/lib/ # /lib/x86_64-linux-gnu/ hed lib64/ld-linux-x86-64.so.2 -s \/etc/ld.so.cache \/etc/ld.so.cachy \/lib/x86_64-linux-gnu/ \/NON/x86_64-linux-gnu/ \/usr/lib/ \/usr/NON/ \/lib/ \/NON/sync ; sleep 1 hed lib64/ld-linux-x86-64.so.2 \lib64/libc.so.6 -s \/lib64/ld-linux-x86-64.so.2 \/lib64/ld-linux-x86-64.so.yln -sv $(readlink -f ./lib64/ld-linux-x86-64.so.2) \/lib64/ld-linux-x86-64.so.ysync该操作完成后接下来就需要修改Rust开发工具了。 修改安装于Ubuntu-12.04系统上的Rust工具链 笔者将Rust开发工具链安装到了/opt/rust-lang路径下可参考笔者之前的相关博客实际上这个工具链是在Ubuntu-22.04下安装的之后笔者将其打包复制到了Ubuntu-12.04系统中。执行以下命令可以批量替换/opt/rust-lang路径下的可执行文件使用的动态链接器从而强制其使用在Ubuntu-22.04系统下载的新的glibc动态库 rootUNIX:/opt/rust-lang# find ./ -type f -print0 | xargs -0 -i hed {} -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.y以上命令执行完成后就可以在Ubuntu-12.04系统中正常使用新版本的Rust开发工具了 yejqUNIX:~$ cargo --version cargo 1.72.1 (103a7ff2e 2023-08-15) yejqUNIX:~$ cargo new --bin helloCreated binary (application) hello package yejqUNIX:~$ cd hello/ yejqUNIX:~/hello$ ls Cargo.toml src yejqUNIX:~/hello$ cargo build --release -j1Compiling hello v0.1.0 (/home/yejq/hello)Finished release [optimized] target(s) in 1.00s yejqUNIX:~/hello$ ./target/release/hello Hello, world!这种方法虽然可行但仍存在一个问题Ubuntu-12.04系统安装的gcc版本太老了它作为Rust在编译构建时的链接器可能会存在链接失败的问题。不过针对这个潜在的问题我们仍有解决方案从此处下载新版本的gcc编译器通过TARGET_CC这一与Rust编译链接相关的环境变量强制其使用新版本的gcc作为链接器这里笔者就不展开了。 总结 这种修改、替换应用使用的动态链接器从而间接指定使用的glibc动态库的方法可以方便地为老系统安装一些新的应用。在一些工作环境受限的条件下如不能安装新的系统作为开发环境能够让我们不受过多的限制不影响我们对开发工具的选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爱奇艺做任务领vip网站学而思网校官网

目录 ​编辑 一.什么是智能指针 1.RAII 2.智能智能指针 二.为什么需要智能指针 1.内存泄漏 a. 什么是内存泄漏,内存泄漏的危害 b.内存泄漏分类 c.如何检测内存泄漏 d.如何避免内存泄漏 总结一下: 2.为什么需要智能指针以及智能指针的原理 三.智能指针的使用 1.C…

高密做网站哪家好代理义乌百度广告公司

概要 在 es 中,一个字段可能运用于不同的场景,但是某个字段类型的使用场景是有局限的 下面,我们先来看一段 es 查询语句: $must ["bool" > ["should" > [["range" > ["user_id.r…

网站开发的软件环境中国水电建设招标网站

目录 步骤一:首先确认自己是否已经安装JDK步骤二:下载安装Tomcat步骤三:Tomcat配置环境变量步骤四:验证Tomcat配置是否成功步骤五:为IDEA配置Tomcat 步骤一:首先确认自己是否已经安装JDK jdk各版本通用安装…

网站301做下佛山公司官网制作哪家好

以下为阅读《Linux命令行与shell脚本编程大全 第3版》的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:转载于:https://www.cnblogs.com/guochaoxxl/p/7888810.html

博罗网站建设费用wordpress 附件大小

Java程序最初都是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁,就会把这些代码认定为“热点代码”(Hot Spot Code),为了提高热点代码的执行效率&#xf…

霸州 网络 网站建设wordpress做个论坛

目录 UML类图介绍UML图UML图的分类 关系依赖关系泛化关系实现关系关联关系聚合关系 UML类图 介绍 uml(统一建模语言),是一种用于软件系统分析和设计的语言工具,他用于帮助软件开发人员进行思考和记录思路的结果UML本身是一套符号的规定,就像…

网站建设部署视频常州百度网站排名优化

文章目录移动光标修改、剪切或复制配对符之间的内容ctagscscopegtags编译快速修改窗口自动补全多行缩进缩出折叠移动光标 命令说明gd跳转到局部变量的定义处gD跳转到全局变量的定义处,从当前文件开头开始搜索g;上一个修改过的地方g,下一个修改过的地方[[跳转到上一…

国外网站有哪些平台个人或主题网站建设

EtherCAT通信采用主从架构,其中一个主站设备负责整个EtherCAT网络的管理和控制,而从站设备则负责在数据环网上传递数据。 主站设备可以是计算机、工控机、PLC等, 而从站设备可以是传感器、执行器、驱动器等。 EL3102:MDP5001_300_CF8D1684;…

初二信息课网站怎么做网络运维工程师简历范文

小程序组件是由宿主环境提供的,开发者可以基于组件快速搭建出页面结构。官方把小程序组件分为9类。 视图容器基础内容表单组件导航组件媒体组件map地图组件canvas画布组件开放能力无障碍访问 常用视图组件 view 官网传送门 普通视图区域 类似于HTML中div&#x…

网站建设难度大吗wordpress shortinit

虽然age 10在__init__方法中定义了一个局部变量age,但这个局部变量并不会影响类属性age的值。类属性是在类级别上定义的,不属于任何一个实例。因此,在创建实例s1和s2时,它们的age属性值都为类属性的初始值0。 尽管对类的属性值进…

单位网站建设做到哪个科目专业高端网站建设服务公司

一、红外遥控的原理 红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传 输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是 家用电器广泛采用,并越来越多的应用到计算机系…

抚顺做网站的公司网站 的建设意义

最近,不少用户的电脑都被《永恒之蓝》病毒侵袭,因此微软官方推出了预防补丁 — kb4012212,正常系统只要安装该补丁就能避免电脑遭到伤害。不过,有用户反馈自己遇到了电脑无法安装kb4012212补丁的情况,该怎么办呢&#…

网站建设调研问卷做网站的公司哪家好

HTTP的Keep-Alive 在http1.0的版本中,它是基于请求-应答模型和TCP协议的,也就是在建立TCP连接后,客户端发送一次请求并且接收到响应后,就会立马断开TCP连接,称为HTTP短连接,这种方式比较耗费时间以及浪费资…

静态网站模板源码下载如何做网站安全加固

抖音算法推荐机制详解!(科普向) 众所周知抖音的流量分配是去中心化的,这种去中心化算法,让每个人都有机会爆红,可为什么别人几个粉玩抖音,就能轻松获得10w点赞?而你怒拍几十条也枉然? 抖音的…

重庆网站建设cq600网站的推广是怎么做的

Datawhale赛事 赛事:2021“AI Earth”人工智能挑战赛2021“AI Earth”人工智能创新挑战赛,由阿里巴巴达摩院联合南京信息工程大学、国家气候中心、国家海洋环境预报中心、安徽省气象局共同创办。大赛以“AI助力精准气象和海洋预测”为主题,聚…

nodejs 做网站js交件泰安岱岳区招聘网最新招聘信息

背景,之前代码需要优化升级,这里进行了更新。主要是解析pdf中的操作,最后转为图片。 在Python中,将PDF文件转换为图片可以使用多种库,例如 pdf2image 或 pdfplumber 结合 PIL(Python Imaging Library)。以下是一个使用 pdf2image 的基本示例:from PIL import Image fr…

刷外链网站含数据的wordpress

大空间消防水炮现在是高大建筑的消防必备的设备之一,其型号按照流量可分为4种,ZDMS0.6/5S,ZDMS0.6/10S,SZDMS0.8/20S,ZDMS0.8/30S。在这中间使用较多的是5L和30L的,5L的消防水炮都是吊装,但是30…

四川网站制作wordpress搭建电商教程

烈火建站学院转载 不是所有的wordpress主题都自带导航栏的,我早就想自行添加一个。昨天的标题前有“GOOGLE是个好老师”这个句子,今早赶紧删了,倒不是不认同,而是觉得在添加导航栏这个事情上还真不是那么回事情。以前我就说过&…

预付网站建设费用怎么做分录自己做的网站能上传吗

2023年目前要说最热的点,肯定是ChatGPT了。 ChatGPT官方提供的网页版本,还有需要科*上网,很多人都会基于此进行封装。 现在是移动互联网时代,基于手机APP的需求还是很大的。 所以,今天给大家推荐一个ChatGPT客户端开…

企业信息公示怎么弄重庆网站seo按天计费

最经公司的项目需要实现类似于新浪微盾功能的功能,因此我把这个实战的demo的经历分享给大家。 新浪微盾是啥子玩意? 微盾是由新浪网推出的一款产生一次性动态密码的产品,可以用于新浪旗下各服务,包括新浪微博,新付通&a…