在工作中,我们开发了一些在Raspbian(基于Debian)上运行的Python软件,该软件基于Raspberry Pi
我们有一些Ansible脚本,可以获取一个新的Raspbian映像,在Raspberry Pi上启动,并将其配置为运行我们的软件。Ansible做了几件事:
每次Ansible运行时,它都会安装我们测试软件所用的Python库的确切版本(来自PyPi),这一点非常好。不幸的是,这不适用于通过apt安装的软件包
执行apt-get install package
或Ansible等效程序将安装该软件包的最新版本。今天的版本可能与明天的版本不同。这意味着,如果我今天运行Ansible脚本来安装Raspberry Pi,我的软件可能会工作得很好,但明天在新的Raspberry Pi上运行Ansible可能会安装apt的新版本软件,这可能会破坏我们的软件
除了apt,还有什么方法可以做pip所做的事情吗?冻结当前安装的软件包版本,以后在新系统上安装时,是否安装这些软件包的确切版本?或者类似的东西
我知道我们可以安装我们想要的任何版本的软件包,并将SD卡克隆到其他PI上,但这种做法一开始就违背了使用Ansible脚本的目的
有一个工具值得一提https://github.com/TrevorSundberg/apt-lock
使用ansible,您可以指定以这种方式安装哪个版本的packge
然后,为了防止在系统升级时升级包,请以这种方式将包标记为hold
相关问题 更多 >
编程相关推荐