从历史上看,Android源码编译环境的搭建仍然是一件麻烦的事情。 网上介绍如何编译Android源码的文章不计其数,要么方法复杂android4.4 源码 编译,步骤太多;要么方法复杂,步骤太多。 责备。 有的童鞋硬着头皮做了,结果因为伟大的GFW,大部分都死在了第一步——repo脚本下载不了,即使下载也过不了gerrit关卡。 另外,即使你有能力访问国外网站,下载时间也成为了绊脚石; 普通的V***通常需要七八个小时才能下载,这简直太痛苦了。 久而久之,很多人都在感叹Android源码的下载和编译。
明天我将为大家提供一个非常简单稳定的方案来解决Android源码下载编译的问题。
首先,可以通过镜像来解决下载问题; 北大镜像和交大镜像都是非常好的选择。 一般情况下,一个Android源码分支在一到两个小时内就可以下载完毕。
然后就是编译环境的问题。 由于Android源码庞大,依赖关系复杂; 一旦使用的编译工具链略有不同,编译可能会失败。 官方文档推荐使用Ubuntu 14.04进行编译。 如果我们使用Windows或者Mac系统,传统的方法是使用虚拟机; 明天,我们可以使用 Docker 来代替! ! 使用Docker,我们不用担心编译环境问题; 无论我们的开发机是什么系统,我们都可以使用Docker创建UbuntuImage,直接创建在这个Ubuntu系统环境下编译所需的工具链(JDK、ubuntu系统依赖库等)。 ETC。); 而且Ubuntu运行在Docker上的系统开销比虚拟机低很多,使得下载和编译速度都有质的提升。 更重要的是,这个环境可以打包并作为Image分发! 这样,你在不同的开发机器之间、你和你的朋友之间就拥有了相同的编译环境,这会省去很多不必要的麻烦。关于Docker的更多信息,请参见Docker官网
事实上,这个伟大的壮举不是我完成的,而是 kylemanna/docker-aosp 完成的! 我对Docker和天朝的网络环境做了一些修改,并fork了一份tiann/docker-aosp。
废话不多说,我们来看看如何使用以及简单的使用方法。
使用以下步骤安装 Docker
Docker的下载地址参见Docker下载; 下载后,安装。
计划工作
如果您不是Mac系统,可以直接跳过此步骤。
Mac的文件系统默认不区分大小写,不符合Android源码编译系统的要求(编译时直接Error); 因此,需要单独创建区分大小写的c盘镜像。 请按如下方式进行:
打开Mac系统软件:c盘工具CMD+N,新建一个c盘镜像,参数设置如右图:
其中,C盘大小设置为50~100G为宜,格式选择时一定要区分大小写标记。
开始下载并编译
实际的下载和编译过程非常简单,脚本将手动完成; 步骤如下:
设置Android源码下载和存放的目录; 如果是Mac系统,这一步必须设置目录区分大小写; 否则后面编译时会失败。 如果不设置这一步,源码会下载到~/aosp-root目录下; 设置过程如下:exportAOSP_VOL=/Volume/Android/下载包装脚本; 如果需要下载其他系统版本android4.4 源码 编译,下载后直接更改build-nougat。 sh文件的android-4.4.4_r2.0.1改为你需要的分支即可。 有关分支信息,请参阅curl -O 运行脚本并开始手动下载和安装过程; Windows系统可以使用BashforWindows或cygwin。 bash ./build-nougat.sh
这样,所有的工作就完成了。 静静地等待; 时间要看下载速率,北大的图率还不错。 作者在不到2个小时的时间内完成了下载和编译过程。
三步即可完成,是不是非常简单? 快速下载、编译、安装你的Android系统^_^
博客:
Mintimate的博客,仅供分享给大家
nginx
“Nginx 是一个轻量级的 HTTP 服务器nginx源码编译,采用风暴驱动的异步非阻塞处理方法框架,这使得它具有优异的 IO 性能,常用于服务器端反向代理和负载均衡。”
优势
Nginx的优点,相信大家基本都知道,这里有一些:
环境计划
本次Nginx的安装是安装在Debian发行版的Linux上。 如果是CentOS发行版本的Linux,则需要注意:
推荐服务器可以选择腾讯云轻量级应用服务器:
另外,如果你觉得本文的安装方法技术性太强。 当然,你也可以尝试宝塔面板的一键操作。
dpkg 安装 nginx
Debian 使用 apt-get 作为包管理器,因此我们可以直接使用 apt-get 安装 dpkg,从而安装 Nginx:
sudo apt-get install nginx
复制
安装完成后,输入whereisnginx可以查看Nginx的安装位置,其中nginx.conf是Nginx的配置文件。
这种方法简单、速度非常快,而且好处显着:
Docker 安装 Nginx
Nginx的Docker安装似乎和dpkg安装类似,安装Docker时:
# 查找Nginx
docker search nginx
复制
使用命令拉取镜像到本地
docker pull nginx
复制
然后,检查图像 ID:
docker images nginx
复制
根据ID,创建Docker容器并完成80端口的映射:
docker run -d --name myNginx -p 80:80 d1a
复制
此时浏览器可以登录看到Nginx页面:
至于更改镜像,我个人建议在Linux上挂载Docker镜像来进行更改。
总的来说,我认为Docker安装的Nginx的配置与dpkg安装的Nginx的配置类似。
自动编译安装Nginx
自动编译安装Nginx比较复杂,通常用得最多。 原因:
现在我们来解释一下如何编译和安装Nginx。
在此之前,首先确保软件包是最新的:
sudo apt-get update
复制
环境计划
编译Nginx需要gcc+环境支持,build-essential包含gcc+套件,所以我们可以安装build-essential:
sudo apt-get install build-essential
复制
Tips________:也可以自己编译gcc+
由于nginx.conf中使用了正则表达式,因此在编译Nginx时需要将PCRE库编译到Nginx中,而PCRE库是在Debian中安装的,可以这样安装:
sudo apt-get install libpcre3 libpcre3-dev
复制
热的时候,Nginx编译过程和Http对应过程也需要gzip格式压缩,所以我们还需要安装zlib库来将HTTP包的内容压缩为gzip格式,可以这样安装:
sudo apt-get install zlib1g-dev
复制
最后,现在SSL合约非常重要,Chrome等主流浏览器已经开始默认HTTPS,所以OpenSSL编译环境也非常重要:
sudo apt-get install openssl libssl-dev
复制
另外,如果不想安装OpenSSL,或者想指定第三方OpenSSL进行编译,可以在编译Nginx时添加一个编译参数: --with-openssl
下载Nginx源代码
然后,我们下载并解压Nginx的源码,Nginx源码下载官方地址:
对于开发环境nginx源码编译,我们使用最新稳定版本的Nginx:
# 下载Nginx 1.20.1源码(Stable稳定版本)
wget "http://nginx.org/download/nginx-1.20.1.tar.gz"
# 使用tar命令解压
tar -xf nginx-1.20.1.tar.gz
# 进入解压后出现的目录,已备接下来的编译
cd nginx-1.20.1
复制
编译Nginx
首先,我们需要生成一个makefile。 编译时的参数可以参考Nginx官方文档:
我自己编译Nginx时,选择的参数通常是:
./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=www --group=www --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module
复制
在:
如果没有问题,将会显示以下消息:
Configuration summary
+ using threads
+ using system PCRE library
+ using system OpenSSL library
+ using system zlib library
nginx path prefix: "/etc/nginx"
nginx binary file: "/usr/sbin/nginx"
nginx modules path: "/etc/nginx/modules"
nginx configuration prefix: "/etc/nginx"
nginx configuration file: "/etc/nginx/nginx.conf"
nginx pid file: "/var/run/nginx.pid"
nginx error log file: "/var/log/nginx/error.log"
nginx http access log file: "/var/log/nginx/access.log"
nginx http client request body temporary files: "/var/cache/nginx/client_temp"
nginx http proxy temporary files: "/var/cache/nginx/proxy_temp"
nginx http fastcgi temporary files: "/var/cache/nginx/fastcgi_temp"
nginx http uwsgi temporary files: "/var/cache/nginx/uwsgi_temp"
nginx http scgi temporary files: "/var/cache/nginx/scgi_temp"
复制
然后,执行编译:
make && make install
复制
这时候我们可以使用浏览器看到Nginx已经可以使用了。
选择方式
个人推荐安装优先级:
编译安装>Docker安装>dpkg安装
主要原因有:
事实上,这三种方法都是非常好的安装Nginx的方法。
常用 Nginx 命令
这里我给大家介绍一下Nginx的一些常用命令:
命令
命令含义
nginx
打开 nginx
nginx-t
测试配置文件是否有句子错误
nginx-sreopen
重启 Nginx
nginx-sreload
重新加载Nginx配置文件
nginx-sstop
强制停止Nginx服务
nginx-squit
安全停止Nginx服务(即处理完所有请求后停止服务)
如何卸载Nginx
如果想改变Nginx的安装方式,如何卸载已经安装的Nginx?
dpkg 卸载 Nginx
如果你使用的是dpkg安装的Nginx,安装非常简单,卸载也是一样:
# 卸载Nginx
sudo apt-get remove nginx
复制
docker 卸载 Nginx
如果你使用Docker安装的Nginx,卸载也很简单:
# 查看Nginx镜像ID
docker images
复制
获取ID后,根据ID卸载:
docker rmi d1a3
复制
如果删除失败,例如:
我们先清除它的依赖关系:
docker ps -a
docker rm $ID
docker rmi $ID
复制
编译并删除Nginx
编译和删除Nginx也很简单,首先停止运行Nginx:
# 关闭Nginx
nginx -s quit
# 删除Nginx
sudo rm -rf /etc/nginx
复制
这样Nginx就已经被卸载了
总结
虽然? 就我个人而言,我喜欢编译和安装Nginx。 不过,虽然宝塔面板的Nginx也很好,但新版本也可以选择编译安装模块,总有一些大鳄认为面板部署没有“灵魂”。 这里就不过多介绍了。
如果你平时喜欢使用Docker,可以尝试安装Docker。 Docker的第三方库应该能够安装模块,或者已经集成了模块。
Nginx确实是一个Web服务器利器~~~