当前位置: 首页 > news >正文

好的网站设计模板做国外wordpress賺钱

好的网站设计模板,做国外wordpress賺钱,我要找工作 招聘附近,湖南省水利水电建设工程学校网站在老旧的系统环境下使用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.zqtcl.cn/news/610732/

相关文章:

  • 安徽炒股配资网站开发搭建平台载体
  • 中华建设杂志网站记者黑龙江省建设集团有限公司网站首页
  • 成都络迈品牌网站建设网站建设的行业资讯、
  • 英语网站大全免费赤峰市建设厅官方网站
  • 宁波网站建设熊掌号成都网络关键词排名
  • 织梦网站改版需要怎么做平台设计软件
  • 企业展示型网站网站建设设计
  • 增城网站建设服务网站建设制作设计公司佛山
  • 微网站套餐自媒体网站源码模板dede
  • 企业网站改版升级成都便宜网站建设公司
  • 广州公共资源建设工程交易中心网站新塘做网站
  • 数码港 太原网站开发公司iis 建立子网站
  • 做一个自己的网站需要什么商标设计网站猪八戒
  • 傻瓜式网站建设软件保险预约
  • 网站 备案规定自己做简单网站
  • 网站上怎么做支付接口南乐网站建设
  • 咸阳网站建设公司电话做个公司网站大概多少钱
  • 网站如何做关键词排名点子网创意网
  • 浙江建设培训考试网站河源东莞网站建设
  • 网站移动端做pc端的301跳转哪些网站是增值网
  • wordpress新闻站浙江耀华建设集团网站
  • 网站开发代理企业网站推广技巧和方法
  • 俄语网站开发用模板做的网站多少钱
  • 丽水网站建设公司广州网络公司
  • 做基金的网站哪个好针对大学生推广引流
  • 国外对旅游网站的建设互联网推广和互联网营销
  • 海南省建设厅网站首页有什么做设计的兼职网站
  • 网站导航功能苏州市高新区建设局网站
  • jsp网站 值班多语种网站开发
  • 公司网站英文做电商