1.proxychains-ng安装
1 | git clone https://github.com/rofl0r/proxychains-ng.git |
2.proxychains-ng配置
1 | sudo vim /etc/proxychains.conf |
3.proxychains-ng使用
1 | proxy wget http://www.baidu.com |
1.proxychains-ng安装
1 | git clone https://github.com/rofl0r/proxychains-ng.git |
2.proxychains-ng配置
1 | sudo vim /etc/proxychains.conf |
3.proxychains-ng使用
1 | proxy wget http://www.baidu.com |
示例脚本
1 | apply plugin: 'com.android.application' |
操作系统:ubuntu 14.04
一.安装需要工具
1 | sudo apt-get install autoconf libtool libsysfs-dev |
二.制作交叉编译工具链
1.下载NDK,并配置NDK环境变量为NDK的安装路径
2.根据NDK里docs文档里的standalone-toolchain.html来抽取交叉编译的环境。
3.配置SYSROOT环境变量:
1 | SYSROOT=$NDK/platforms/android-19/arch-arm //android-19是你的android开发版本所定 |
4.然后运行命令:
1 | $NDK/build/tools/make-standalone-toolchain.sh --platform=android-19 --install-dir=/tmp/my-android-toolchain |
/tmp/my-android-toolchain是你交叉编译环境的复制路径。最好别放在tmp目录里,因为重启机子就立即消失了。这个新生成的文件 夹即是你的交叉编译环境
5.配置PAHT和CC环境变量:
1 | export PATH=/tmp/my-android-toolchain/bin:$PATH |
三.下载curl并编译
1 | git clone https://github.com/curl/curl.git |
在模块的build.gradle中填入以下内容
1 | task javadoc(type: Javadoc) { |
下面还有一个可能更好使
1 | android.libraryVariants.all { variant -> |
安装dconf-editor,并运行
1 | sudo apt-get install dconf-editor |
勾选org->gnome->nautilus->preferences->"always-use-location-entry"
示例build.gradle
文件如下。
1 | buildscript { |
1.搭建ldap服务器
在终端输入下面的命令:
1 | sunny@server1:~$ sudo apt-get install slapd ldap-utils |
填入相应的信息。如果相重新填写执行sudo dpkg-reconfigure slapd
安装管理工具:
1 | sunny@server1:~$ sudo apt-get install phpldapadmin |
修改配置文件
1 | sunny@server1:~$ sudo vim /etc/phpldapadmin/config.php |
在$servers->setValue('server','base',array('dc=example,dc=com'));
以及$servers->setValue('login','bind_id','cn=admin,dc=example,dc=com');
位置将dc=example,dc=com
修改为上面配置slapd时填入的域名。
登入管理页面http://localhost/phpldapadmin
创建People和group对象,并建立群组和用户实例。
2.ldap认证登陆
1 | sunny@server2:~$ sudo apt-get install ldap-auth-client nscd |
1 | LDAP server Uniform Resource Identifier: ldap://LDAP-server-IP-Address |
如果想重新配置执行sunny@server2:~$ sudo dpkg-reconfigure ldap-auth-config
编辑文件nsswitch.conf
1 | sudo vim /etc/nsswitch.conf |
1 | passwd: files ldap |
上面三部分需要包含ldap
编辑文件
1 | sunny@server2:~$ sudo vim /etc/pam.d/common-session |
在行尾填入如下内容:
1 | session required pam_mkhomedir.so skel=/etc/skel umask=0022 |
重启服务:
1 | sudo /etc/init.d/nscd restart |
这样这台服务器就可以通过server1的ldap中配置的用户登陆了。
在这个教程里,我会介绍怎样搭建一个本地Android源码Gerrit服务器。
完成这个教程后,你会拥有一个完全可运行的AOSP镜像和本地Gerrit服务器。
首先我们需要一个Linux服务器。这里用Ubuntu 14.04
Gerrit 需求:
1.Java JDK > 1.7
2.Git
3.SSH server
4.DB
我选择mysql作为数据库服务,当然你也可以用其他的数据库软件。可以参考Gerrit文档
这里有一句命令可以让你得到你所需要的一切。
1 | $ sudo apt-get install git openjdk-8-jdk openssh-server mysql-server gitweb |
下载并安装Android repo
1 | $ sudo curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/bin/repo |
现在我们需要设置一个本地Android镜像,这需要一段时间,你可以先去喝杯咖啡。
1 | $ mkdir -p /usr/local/aosp/mirror |
下载Gerrit
创建一个Gerrit用户
1 | $ sudo adduser --system --shell /bin/bash --gecos 'Gerrit Code Review User' --group --disabled-password --home /home/gerrit2 gerrit2 |
Gerrit需要一个数据库来工作,这里用的是mysql。打开终端输入以下命令:
1 | $ mysql -u root -p |
上面这个命令在mysql中创建了一个gerrit用户,一个数据库和gerrit用户需要的权限集合。
用新的系统用户登陆:
1 | $ sudo su gerrit2 |
复制上面下载的文件gerrit-2.13.5.war
到gerrit2的home下,然后执行下面的命令:
1 | $ java -jar ./gerrit-2.11.war init -d review_site |
1 | Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore |
现在Gerrit已经开始运行了。
需要注意的是,第一个登陆到gerrit的用户将会成为管理员。
Gerrit能通过多种认证方式登陆。上面选择的OpenID。
现在让我们打开浏览器并打开Gerrit网站。
注册并登陆后需要设置SSH keys,这样我们就能够在命令行下工作。
下面我们在Ubuntu系统的另一个用户下执行以下命令:
1 | $ ssh-keygen <ENTER> |
在网站的右上角点击你的用户名然后点击Settings,在左侧的菜单中选择“SSH Public Keys”,复制上面的内容到里面,然后点Add。
下面让我们测试一下通过SSH访问Gerrit:
1 | ssh -p 29418 admin@localhost <ENTER> <Change "admin" to your username in gerrit> |
出现以上信息说明登陆成功,下面创建两个group:“android-admin” and “android”
前者用来管理,包含review,merge,delete等权限,后者只有view和change-set的权限。
在网页中点击People -> Create New Group,输入名称“android-admin”。执行同样的操作创建“android”。
现在我们为AOSP代码树创建一个父项目。所有为这个项目的设置都会继承到子项目。如果跳过这步,AOSP项目会继承“All-Projects”项目,而这个项目太通用了。
在网站中点击Project -> Create New Project,填入以下内容:
1 | Project Name: Android |
勾选 “Only Serve As Parent For Other Projects”,然后点击“Create Project”按钮。
项目已经创建完,下面来为这个项目设置权限控制:
点击Projects -> List,然后选择“Android”项目,点击“Access”然后点击“Edit”,修改成如下图。图中还包含了其他的群组,可自行设置。
现在我们可以把所有的Android项目推送到Gerrit了。
第一条命令会在Gerrit上创建所有的Android项目;第二条命令会将刚刚创建的项目的父项目修改为“Android”;第三条命令会将代码推送到Gerrit,时间会比较长。
进入下载Android镜像的目录执行以下命令:
1 | $ repo forall -c 'echo $REPO_PATH; ssh -p 29418 admin@localhost gerrit create-project --name android/$REPO_PATH --owner android;' |
大功告成!
创建Gerrit服务自启:
1 | $ sudo echo "GERRIT_SITE=/opt/gerrit-review" >> /etc/default/gerritcodereview |
下面贴一个gerrit配置文件(postgre数据库,ldap认证,提交信息增加jira链接)
1 | [gerrit] |
$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
$ sudo adduser `id -un` libvirtd
$ virsh -c qemu:///system list
1 | $ sudo ls -la /var/run/libvirt/libvirt-sock |
$ sudo vi /etc/network/interfaces
1 | auto br0 |
ifconfig
再查看网卡的设置,这个时候 eth0 已经没有具体的IP地址,IP地址出在了 br0 的虚拟网上面。/etc/libvirt/qemu/
1 | virsh list --all > 查看虚拟机状态 |
注:virsh 命令丰富,可以执行各种维护任务。
上传系统 iso 文件到 /file/tools/win/win2003/WIN_2003_SP2.iso
开始安装
1 | $ virt-install --name=win2003sp2 \ |
参数说明:
1 | --name 指定虚拟机名称 |
将虚拟机的启动方式改为从磁盘启动$ virsh edit win2003sp3
将 <boot dev='cdrom'/>
改为 <boot dev='hd'/>
然后重新启动虚拟机:$virsh destroy win2003sp3
$virsh start win2003sp3
之后就可以重新使用 vnc 连接,继续安装过程。
4. 安装完毕后按需要设置IP地址、远程连接等即可
复制已经安装好的虚拟机为另一个全新的虚拟机。如要将上面的 win2003sp2 复制为 win2003sp2-2:
$virsh shutdown win2003sp2
$virt-clone -o win2003sp2 -n win2003sp2-2 -f /file/kvm/win2003sp2/win2003sp2-2.img
$virsh edit win2003sp2-2
<graphics type='vnc' port='5912' autoport='no' listen='0.0.0.0'>
$virsh start win2003sp2-2
对虚拟机做快照,防止损坏了可以正常恢复。kvm 快照分两种:
第1种:lvm 快照,如果分区是 lvm,可以利用 lvm 进行 kvm 的快照备份
第2种:由于 raw 格式不支持镜像,所以需要将格式转换为 qcow2 才可以创建快照。
第2种具体操作如下:
kvm 虚拟机默认使用 raw 格式的镜像格式,性能最好,速度最快,它的缺点就是不支持一些新的功能,如镜像、zlib 磁盘压缩、AES加密等。
要使用镜像功能,磁盘格式必须为 qcow2。
下面开始 kvm 虚拟机快照备份的过程:
$qemu-img info win2003sp2.img
$virsh shutdown win2003sp2
$qemu-img convert -f raw -O qcow2 win2003sp2.img win2003sp2.img.qcow2
-f 源镜像的格式
-O 目标镜像的格式
4. 修改虚拟机配置文件,指向新的磁盘格式文件$virsh edit win2003sp2
1 | <devices> |
注:转换后镜像文件占用的空间大大减少了,而且日后为动态自动增加,而不是固定占用开始设置时占用的大小。
5. 创建快照$virsh snapshot-create-as win2003sp2 clean
6. 查看虚拟机镜像快照的版本$virsh snapshot-list win2003sp2
7. 看当前最新的快照版本$virsh snapshot-current win2003sp2
8. 恢复虚拟机快照
恢复虚拟机快照前必须先关闭虚拟机!$virsh snapshot-revert win2003sp2 clean
9. 删除虚拟机快照$virsh snapshot-delete win2003sp2 clean
adb forward tcp:6666 localabstract:/adb-hub; adb connect 127.0.0.1:6666