首页 > 系统相关 >ARM上面ubuntu部署chromedriver的过程

ARM上面ubuntu部署chromedriver的过程

时间:2024-04-05 13:44:07浏览次数:13  
标签:fa83ffdb6742 chrome chromium apt chromedriver ubuntu root ARM

ARM上面ubuntu部署chromedriver的过程


直接上方案

cat >  sources.list <<EOF
deb http://ftp.de.debian.org/debian sid main
EOF

cat >key <<EOF
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
apt-key export 0E98404D386FA1D9 | gpg --dearmour -o /etc/apt/trusted.gpg.d/charlesproxy2.gpg
apt-key export 40976EAF437D05B5 | gpg --dearmour -o /etc/apt/trusted.gpg.d/charlesproxy3.gpg
EOF

chmod 777 key

Dockerfile

FROM ubuntu:24.04
RUN apt-get update
RUN apt-get install gnupg -y
COPY sources.list /etc/apt/
COPY key /root/key
RUN /root/key
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive TZ="Asia/Shanghai"  apt-get install chromium chromium-driver -y && apt-get clean

镜像打包与确认

docker build . -t ubuntu:2204chrome123

版本确认: 
root@fa83ffdb6742:/# chromedriver -v
ChromeDriver 123.0.6312.105 
root@fa83ffdb6742:/# chromium --version
Chromium 123.0.6312.105 built on Debian trixie/sid
root@fa83ffdb6742:/# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.4 LTS"
root@fa83ffdb6742:/# lscpu |grep arch
Architecture:                    aarch64

备份迁移:
docker save ubuntu:2204chrome123 |gzip >ubuntu_aarch64_2204chrome123.tar.gz

脚本说明

1. 从基础镜像开始打包
2. 因为我使用的是 debian的仓库 所以需要引入debian的仓库
3. 引入仓库必须的添加一下 gpg的 新人才可以, 所以有一个比较麻烦的操作.
4. 因为安装chrome有一个选择时期的操作,需要需要加上这一段话:
    DEBIAN_FRONTEND=noninteractive TZ="Asia/Shanghai"
    可以不进行交互,便于镜像打包,并且设置时区为东八区
5. 后续可以增加上python 等部分. 
6. 可以ln -s 别名的方式来使用 chrome 进行处理. 

root@fa83ffdb6742:/# ln -s /usr/bin/chromium  /usr/bin/chrome
root@fa83ffdb6742:/# chrome --version
Chromium 123.0.6312.105 built on Debian trixie/sid,

其他说明之一

应该每次都会自动打包一个最新版本的chrome 以及 chrome-deriver
最合理的方式应该还是 手工编译.
这边么有条件, 所以还是使用包管理器进行处理. 

需要注意 x86 使用的是 google的chrome 
所以浏览器命令是 chrome

使用debian包 则是使用 chromium命令, 这一点存在区别. 

其他说明之二

发现debian的镜像源有一个很坑爹的问题.
我使用阿里云 安培 基于Neoverse-N1 架构的虚拟机
总是会提示错误:
docker run -it ubuntu:2204chrome123
root@fe436e751214:/# chromium --version
Trace/breakpoint trap (core dumped)

但是我迁移到 鲲鹏上面就是可以的. 
root@fa83ffdb6742:/# chromium --version
Chromium 123.0.6312.105 built on Debian trixie/sid,

怀疑 debian的仓库用的事比较久的 aarch64 架构的指令集. 
对更新的安培其实不支持, 这里面其实挺坑的. 

标签:fa83ffdb6742,chrome,chromium,apt,chromedriver,ubuntu,root,ARM
From: https://www.cnblogs.com/jinanxiaolaohu/p/18115694

相关文章

  • Ubuntu_amd64容器化部署chromedriver的过程
    Ubuntu_amd64容器化部署chromedriver的过程获取部分资料其他版本需要自己选择下载:https://chromedriver.com/download老版本:https://old.chromedriver.com/index.htmlhttps://www.chromedownloads.net/chrome64linux-stable/dockerpullubuntu:2404wgethttps://sto......
  • 题解 CF1942F【Farmer John's Favorite Function】
    萌萌F题,上大分。首先,如下定义\(g(i)\):\(g(1)=\lfloor\sqrt{a_1}\rfloor\);对于所有\(i>1\),\(g(i)=\lfloor\sqrt{g(i-1)+a_i}\rfloor\)。也就是将\(f(i)\)的每一步运算后都向下取整。注意到\(\lfloorf(i)\rfloor=g(i)\)恒成立,于是我们只需要转而求每次修改后\(g(n......
  • CF1942F Farmer John's Favorite Function
    题意简述定义\(f_i=\sqrt{f_{i-1}+a_i},f_0=0\)。有\(q\)次操作,每次操作单点修改一个\(a_i\)的值,每次修改后求\(\lfloorf_n\rfloor\)的值。\(n,q\le2\times10^5,0\lea_i\le10^{18}\)。分析发现这个\(f_i\)不是整数非常不利于我们做题,考虑将它变成整数。令新的......
  • CodeForces 1942E Farm Game
    洛谷传送门CF传送门不妨假设先手的牛在后手的牛左边,右边是对称的。直接给出结论:先手必败当且仅当全部\(b_i-a_i\)为奇数。证明考虑归纳,首先\(\foralli\in[1,n],b_i-a_i=1\)是必败态,因为先手只能往左退,最后后手会把先手逼到最左边使得它无法动弹。然后若存在......
  • CodeForces 1942F Farmer John's Favorite Function
    洛谷传送门CF传送门考虑一些复杂度带根号的做法。考虑分块,对于一个块,我们需要处理出一个数经过这个块会变成哪个数。以下假设块长\(\ge10\)(最后一个块块长可能\(<10\),暴力处理即可)。观察这个递推式\(f_i=\left\lfloor\sqrt{f_{i-1}+a_i}\right\rfloor\),发现对于一......
  • 01-ARM64体系结构基础知识
    本章思考题ARMv8体系结构处理器包含多少个通用寄存器?答:提供31个64位宽的通用寄存器,可以减少对栈的访问,从而提高性能。AArch64执行状态包含多少个异常等级?它们分别有什么作用?答:定义ARMv8异常模型,支持4个异常等级,即EL0~EL3。请简述PSTATE寄存器中NZCV标志位的含义。答:如下表所......
  • 如何在 Ubuntu 服务器上安装桌面环境 (GUI)
    先以VNC方式远程登录服务器执行命令sudoaptupdate&&sudoaptupgrade#选择1---使用tasksel安装sudoaptinstall-ytaskselsudotaskselinstall-yubuntu-desktop#选择2---使用apt安装sudoaptinstallubuntu-desktopsudoaptinstalllightdm安装lightdm......
  • 【Linux】Ubuntu 文件权限管理
    Linux系统对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功,这也是Linux有别于Windows的机制,也是基于这个权限机制,Linux可以有效防止病毒自我运行。因为运行的条件是必须要有运行的权限,而这个权限在Linux是用户所赋予的。文件权......
  • 挑战程序设计竞赛 2.6章习题 UVA - 10006 Carmichael Numbers
    https://vjudge.csgrandeur.cn/problem/UVA-10006当今计算机科学的一个重要的领域就是密码学。有些人甚至认为密码学是计算机科学中唯一重要的领域,没有密码学生命都没有意义。阿尔瓦罗就是这样的一个人,它正在设计一个为西班牙杂烩菜饭加密的步骤。他在加密算法中应用了一......
  • python中小学教学一体化管理系统django-pycharm毕业设计
    根据近年来学校的发展情况,结合文献资料,对槐荫中学教学管理的信息化;至此,开发具有一定的技术可行性和安全性。该系统的核心内容是对首页、个人中心、学生管理、教师管理、教学计划管理、授课信息管理、培养计划管理、学生评价管理、在线考试管理、试题内容管理、系统管理、考试......