Nginx 发布了 mainline version 1.13.0(即通常说的开发版)。
为了解决这个问题,Goolgle 提出了Project Mainline。 What is Project Mainline? Mainline是一种通过您已经熟悉的方式直接从Google更新Android核心部分的方法:Google Play商店。 How does Mainline work? Mainline把Android的12个核心组件,模块化。这些模块可以单独更新。 以前,如果某一组件进行了任何更改,需要完整的系统更新,才能到用户手中,但是使用Mainline,可以通过Play商店对其进行更新。 Project Mainline对用户可能是好事,但是对手机厂商不一定。免费的是最贵的,一语成谶!
今天要介绍的是一个更简便的方案:使用 mainline 这款开源的 Ubuntu 内核安装工具。它能让我们在 Ubuntu 系统(包括容器环境)中轻松实现内核的安装和切换。 快速切换任意版本的 Linux 内核第一步,我们需要先安装 mainline 的软件包。 /mainline/。 mainline 1.4.11Updating Kernels...Downloading 6.12.3▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░░░░░░░░░░░ 23% 3/13 MB # sudo mainline install 6.12.3mainline 1.4.11Updating Kernels...Downloading 6.12.3Installing 6.12.3
前段时间,小七和 Mainline 的两位开发者豁如、钰泽聊了聊这个项目,也聊了聊它背后的思考和开发故事。本文便是这次专访的整理稿。开始之前,先介绍下 Mainline 是什么。 如果只用一句话概括:Mainline 想让 AI Coding 时代的团队协作,从「看代码」逐渐变成「看意图」。Mainline 是什么小七:先简单介绍一下 Mainline 是什么。 为什么叫 Mainline小七:我刚刚听下来,其实很好奇,你们为什么叫它 Mainline? Mainline 怎么跑起来小七:开发者实际使用 Mainline 的时候,大概是什么运行模式?钰泽:流程上我们希望尽量标准。首先是安装。 豁如:两个人也可以用 Mainline。但当然团队越大,价值可能越明显。比如 10 个人以上,应该更能体现 Mainline 本身的价值。
那什么是 Project Mainline(后文简称 P-M) 呢?它是干什么的?又解决了什么问题? 二. Project Mainline 2.1 P-M 解决什么问题? 到现在应该都知道 Project Mainline 的作用了吧? Project Mainline 计划将系统中,重要的“模块”封装成一个个 Mainline 组件,通过 Google Play 的支持,使用一种类似更新应用的方式,在需要的时候,直接更新到用户端,以此来解决碎片化所带来的各种问题 Proejct Mainline 让你手里的设备更安全并且兼容性更强了。 2.2 P-M 更新了那些东西? 初期 Project Mainline 支持的模块,主要涉及到安全、隐私和一致性三个方向。 小结时刻 Project Mainline 的本意是为了让更新更快触达用户,以提高安全性、隐私和一致性等问题。
Mainline开发模式mainline开发模式是一种开发人员在mainline上直接进行开发工作的模式。此时,mainline = active development line。 需要非常稳定,所以此时:mainline = stable codeline因此,这两种模式对mainline的稳定程度要求是不同的,mainline开发模式对mainline的稳定程度要求是低于PR开发模式的 mainline开发模式中mainline的稳定程度在持续集成下比PR开发模式更容易发生变化 虽然在mainline开发模式下,mainline = active development line,我们对 mainline。 因为代码的更改会非常频繁地集成到mainline中,每一次的合并实际上都是对mainline质量的一次考验。
博客搬家了 ➡️ 杂烩饭 下载内核:http://kernel.ubuntu.com/~kernel-ppa/mainline/ 下载对应的deb文件。根据自己需求选择版本。 我安装的是4.10版本: 对于 64 位系统: wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-headers-4.10.1 -041001_4.10.1-041001.201702260735_all.deb wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1 4.10.1-041001-generic_4.10.1-041001.201702260735_amd64.deb wget http://kernel.ubuntu.com/~kernel-ppa/mainline 4.10.1-041001-generic_4.10.1-041001.201702260735_i386.deb wget http://kernel.ubuntu.com/~kernel-ppa/mainline
/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline ] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck 第三步:安装主线包请执行第一个命令后在执行第二个命令,默认情况下安装稳定包请跳过第一个命令 yum-config-manager --enable nginx-mainline yum install
installed的错误(猜测该错误产生的原因是没有搞对deb的顺序) 这里推荐一个工具,可以方便地升级或者指定任意版本内核 推荐工具:https://github.com/pimlie/ubuntu-mainline-kernel.sh 使用方法: 可以按照github网址的README.md进行使用,但有时wget无法访问链接,此时可以: git clone https://github.com/pimlie/ubuntu-mainline-kernel.sh.git cd ubuntu-mainline-kernel.sh/ sudo mv ubuntu-mainline-kernel.sh /usr/local/bin/ 然后即可使用脚本 sudo ubuntu-mainline-kernel.sh -i v5.11.0#下载5.11.0版本内核,可指定其他版本 sudo ubuntu-mainline-kernel.sh -u #删除不需要的版本,这样就可以留下需要版本,实现版本随意升级甚至降级
/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline ] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck nginx_signing.key module_hotfixes=true #esc 退出编辑状态并输入wq保存退出 wq sudo yum-config-manager --enable nginx-mainline
2.1、使用ubuntu-mainline-kernel脚本升级2.1.1、步骤(1)下载ubuntu-mainline-kernel脚本 wget https://raw.githubusercontent.com /pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh(2)安装脚本sudo install ubuntu-mainline-kernel.sh /usr/local/bin/(3)安装最新Linux内核 sudo ubuntu-mainline-kernel.sh -i# 安装指定版本:sudo ubuntu-mainline-kernel.sh If omitted, the folder /tmp/ubuntu-mainline-kernel.sh/ is used. 2.1.3、安装指定版本sudo ubuntu-mainline-kernel.sh -i 内核版本号比如sudo ubuntu-mainline-kernel.sh -i v5.15.0:#sudo
/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline ] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck https://nginx.org/keys/nginx_signing.key module_hotfixes=true # 默认启用的是nginx-stable,如果你想启用长期支持版,即nginx-mainline ,可用以下命令开启 sudo yum-config-manager --enable nginx-mainline # 3.
4.18.0-041800_4.18.0-041800.201808122131_all.deb wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline 041800-generic_4.18.0-041800.201808122131_amd64.deb wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline 041800-generic_4.18.0-041800.201808122131_amd64.deb wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline 4.18.0-041800_4.18.0-041800.201808122131_all.deb wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline 041800-generic_4.18.0-041800.201808122131_i386.deb wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline
/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline ] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/\$releasever/\$basearch/
/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline ] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck
下载并安装 cd /home/linuxidc/www.linuxidc.com/ wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline linux-headers-5.6.0-999_5.6.0-999.202003292202_all.deb wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline 5.6.0-999-generic_5.6.0-999.202003292202_amd64.deb wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline 5.6.0-999-generic_5.6.0-999.202003292202_amd64.deb wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline
/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline ] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck
basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline ] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck
传统 Golang 包依赖管理 Golang 设计深受 Google 主干开发模型影响: 所有开发人员基于主干 trunk/mainline 开发:提交到 trunk 或从 trunk 获取最新的代码 cherry-pick 到 release branch 上 Golang 中的 go get 的设计深受 Google 内部单一代码仓库(single monorepo)和基于主干(trunk/mainline based)的开发模型的影响:只获取 trunk/mainline 最新版本 go get 获取的代码会放在 GOPATH/src 下面,而 go build 会在 GOROOT/src 和 由于 go get 获取的都是各个 package repo 的 trunk/mainline 的代码,因此 Go 1.5 之前的 Go compiler 都是基于目标 Go 程序依赖包的 trunk/mainline 代码去编译的 这样的机制带来的问题包括: trunk/mainline 代码时刻变化,不同人不同时刻获取的代码可能不同(即不能实现 reproduceable build) 依赖包的 trunk 演进可能会导致代码无法编译
/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key [nginx-mainline ] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck