ubuntu 环境搭建

作者: xuefeng_apple | 来源:发表于2021-03-01 18:27 被阅读0次

1- 安装ubuntu 16
2- 安装输入法
参考前半部分

3- 下载android 10 source code
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
在上面文章中下载的repo ,替换成下面的地址

  #REPO_URL = 'https://gerrit.googlesource.com/git-repo'
  REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

repo tool 工具 下载地址:

链接:https://pan.baidu.com/s/1py_tH-3iyTg2NghwZJZt5A 
提取码:vasi 

ubuntu 更新git 版本,如果不对,可能出现git ls-remote 的错误

sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git

下载地址:

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r45

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

repo sync

4-配置ubuntu16-samba

sudo apt-get install samba
vim /etc/samba/smb.conf
[share]
    path = /home/liyihai/share
    available = yes
    browseable = yes
    public = yes
    writable = yes

建立share 目录
mkdir ~/share
chmod 777 ~/share

创建密码
sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a liyihai

启动samba
sudo /etc/init.d/samba restart

5-ubuntu ssh 登录

查看是否有ssh server
dpkg -l|grep ssh

安装ssh server
sudo apt-get install openssh-server

两种方式启动ssh 
sudo /etc/init.d/ssh start
sudo service ssh start

使用xshell 进行登录
port 22 不需要修改
ip 地址,ssh , 然后就是帐号与密码,设定save 

6-opengrok 设定
环境准备ubuntu 16, java-8
android-10 source code
准备需要的的软件:

apache-tomcat-9.0.44.tar.gz
opengrok-1.1-rc30.tar.gz
sudo apt-get install exuberant-ctags

tomcat与opengrok 下载地址:
https://pan.baidu.com/s/1v3Er8NTrL1TZTu-G3pjh4A
提取码: mche
https://pan.baidu.com/s/10oP4guSg5_cMPhaXKPy5lA
提取码: 9ma4
tomcat 与opengrok 解压路径,路径重命名如下

sudo tar -xvzf xxx.tar.gz -C /opt/xxx/
/opt/tomcat
/opt/opengrok

1)start config
cp /opt/opengrok/lib/source.war /opt/tomcat/webapps/

  1. config
add in ~/.bashrc
export CATALINA_HOME=/opt/tomcat/bin
source ~/.bashrc

3)deploy
sudo OPENGROK_TOMCAT_BASE=/opt/tomcat /opt/opengrok/bin/OpenGrok deploy

上面指令执行之后,没有下面的文件:/opt/tomcat/webapps/source/WEB-INF/web.xml
尝试进行第6步骤:sudo sh catalina.sh start

check 是否没有权限
cd /opt/tomcat/webapps
如果上面的指令提示没有权限,需要
cd /opt/tomcat/
chmod 777 * -Rf

cd /opt/opengrok /
chmod 777 * -Rf

config create index path:

vim /opt/tomcat/webapps/source/WEB-INF/web.xml

....
    <context-param>
        <description>Full path to the configuration file where OpenGrok can read its configuration</description>
        <param-name>CONFIGURATION</param-name>
        // below here config path of index, this import 
        <param-value>/opt/opengrok/data/configuration.xml</param-value>
    </context-param>
.....
  1. chmod 777 catalina.sh
    sudo chmod 777 /opt/tomcat/bin/catalina.sh

  2. create dir

//for project source code 
mkdir /opt/opengrok/souce

//for deploy index files
mkdir /opt/opengrok/data

//建立软链接
sudo ln -s /source_code_project/android10  /opt/opengrok/souce/android-10

cd /opt/opengrok/lib

//开始进行做index ,时间漫长
sudo java -jar opengrok.jar -P -S -v -s /opt/opengrok/souce/  -d  /opt/opengrok/data -W /opt/opengrok/data/configuration.xml
  1. 启动tomcat 体验opengrok
cd /opt/tomcat/bin
sudo sh catalina.sh start--->启动
sudo sh catalina.sh stop
ifconfig  //查看pc IP 地址

启动之后访问:http://IP 地址:8080/source/

REF:
https://github.com/oracle/opengrok/
https://www.pianshen.com/article/34904619/
https://blog.csdn.net/qianxuedegushi/article/details/109708048
https://blog.csdn.net/lusyoe/article/details/53314006

7-ubuntu android 模拟器
build android

安装JDK8
sudo apt-get update
sudo apt-get install openjdk-8-jdk


进行安装对应的库
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib 
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential  
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib 
sudo apt-get install libc6-dev-i386 
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev 
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache

build:
source build/envsetup.sh
lunch(选择刚才你设置的目标版本,比如这里了我选择的是)

[这里选择比较重要,有点模拟器根本不能跑,ubuntu 16,android10 ,lunch:aosp_x86_64-eng ]
make -j8
emulator
下面指令是启动横屏的参数设定
[emulator -skindir ./android10/development/tools/emulator/skins/ -skin WXGA800]

其他启动供参考的参数:
emulator -sysdir out/target/product/generic/ -system out/target/product/generic/system.img -ramdisk out/target/product/generic/ramdisk.img -data out/target/product/generic/userdata.img -kernel ./prebuilts/qemu-kernel/arm/3.10/kernel-qemu -sdcard sdcard.img -skindir sdk/emulator/skins -skin WVGA800 -scale 0.7 -memory 512 -partition-size 1024

8-ubuntu 空间不足问题

发生错误
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed;...
 
查看空间大小
#free -m 

第一步:创建一个大小为256M的文件:
#dd if=/dev/zero of=/swapfile bs=1024 count=3000000
第二步:把这个文件变成swap文件:
#mkswap /swapfile
第三步:启用这个swap文件:
#swapon /swapfile
第四步:编辑/etc/fstab文件,使在每次开机时自动加载swap文件:
/swapfile    swap    swap    default   0 0

9-python 问题

FAILED: out/target/product/generic_x86/system-qemu.img
/bin/bash -c "(export SGDISK=out/host/linux-x86/bin/sgdisk SIMG2IMG=out/host/linux-x86/bin/simg2img;      device/generic/goldfish/tools/mk_combined_img.py -i out/target/product/generic_x86/system-qemu-config.txt -o out/target/product/generic_x86/system-qemu.img)"
  File "device/generic/goldfish/tools/mk_combined_img.py", line 48
    print "'%s' cannot be converted to int" % (line[2])
          ^
SyntaxError: invalid syntax
14:03:41 ninja failed with: exit status 1

解决方案:
此问题因为我默认设置python指向了python3,导致运行python代码时出错,解决方案是将/usr/bin/python中的连接重新指向python2.7 或3.6,然后再次编译即可

安装python 3.6
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6
$ sudo rm /usr/bin/python

$sudo ln -s /usr/bin/python3.6 /usr/bin/python

./prebuilts/android-emulator/linux-x86_64/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm64/kernel-qemu

10-kvm cvdnnetwokr 问题

Execute the following to correctly configure:
  # Add your user to the kvm group:
  sudo usermod -aG kvm $USER
  # Add your user to the cvdnetwork group:
  sudo usermod -aG cvdnetwork $USER
You may need to logout for the changes to take effec

解决方式

$sudo addgroup kvm
$sudo usermod -a -G kvm $USER
$sudo addgroup cvdnetwork
$sudo usermod -a -G cvdnetwork $USER

11- ubuntu 16 studio 导入源码

这里需要执行以下四条命令:
1. "source build/envsetup.sh" (source可以用 . 代替,即". build/envsetup.sh")
2. "lunch",并选择要编译的项目
3. "make idegen -j4" (这里的 -j4 表示用4线程来编译,可以不加)
4. "sudo development/tools/idegen/idegen.sh" (我的电脑需要管理员权限才能执行成功,所以我一般会在前面加上"sudo")
create: 生成下面文件,如果权限不够,chmod 777
android.iml (记录项目所包含的module、依赖关系、SDK版本等等,类似一个XML文件)
android.ipr (工程的具体配置,代码以及依赖的lib等信息,类似于Visual Studio的sln文件)
android.iws (主要包含一些个人的配置信息,也有可能在执行上述操作后没有生成,这个没关系,在打开过一次项目之后就会自动生成了)

在android studio 中,找到下面的选择,进行打开工程就可以了
Open an existing Android Studio project

12- build Android.mk 过程中出现

ld.lld: error: undefined symbol: __android_log_print
>>> referenced by httpclient.c:86 (vendor/frameworks/manager/libhttp/httpclient.c:86)
>>>               out/target/product/generic_arm64/obj/SHARED_LIBRARIES/libhttp_intermediates/httpclient.o:(httpclient_connect)

一定要根据提示check, LOCAL_SHARED_LIBRARIES += liblog

13- VS2010 加载工程中出现的问题
背景, 工厂生产过程使用,使用到了PC 工具,之前的开发是根据VS2010 环境搭建的。
ISO 安装工具,(vs2010 是ISO 文件)
链接:https://pan.baidu.com/s/1jmFscoi43KTv3CZcYIDqEQ
提取码:2w7z

VS2010 下载安装:
链接:https://pan.baidu.com/s/1NF-9XFRP7Nika3apg_MKlw
提取码:hmo8

compact 3.5 安装:
(64位系统选择 x64 )
链接:https://pan.baidu.com/s/1gFQO34-YB9E4pYOZa9JfmQ
提取码:etjl

在加载原有的工程遇到下面问题,需要安装包:compact3.5包


遇到问题: VS2010 安装结束,但是在加载原有工程的是时候遇到了问题。

遇到问题
问题1:
"LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏"
解决方法:
查看计算机是否为64bit操作系统,如是,继续如下操作。查找是否有两个cvtres.exe。
C:\Program Files(x86)\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe
C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe
右键属性—详细信息, 查看两者版本号,删除/重命名较旧的版本,或者重新设置Path变量。
 治本的办法是第二步,删除旧版本的cvtres.exe后,就不需要每次都设置配置了。
一定要看清版本号,根据版本号,删除旧版,不要根据时间戳

问题2:
命令行编译build出错:error MSB6006: “mt.exe”已退出,代码为 31
   该解决方法就是:(查看方式,是左侧的项目点击选中后右键可以看到)
    项目->属性->链接器->清单文件->生成清单 改为 "否"

14- Fidder 如何获取https 协议的包
server: PC , client Android 设备



注:fiddler设置完一定要重启fiddler才生效

  • android设备端:
    手机正在连接的wifi,修改网络设置, 设定代理,每个厂家的手机设定地方不同


在android 设备端使用浏览器输入:http://1192.168.1.xxx:8888
安装证书之后,可以在android 设备 的安全,信任证书中看到证书

注:若打不开该网址或待测app报网络连接超时,请把电脑上的防火墙关闭,亲测!

  • 测试结果:
    1)微信在支付上可以看到图片,数据内容是加密的,单独有server
    2)学而思没有加密,json ,image图片都可以解析
    3)贵司的app,调试版本可以获取说有的数据,方便json 方式调试

15- 如何上传gerrit 仓库,本地原有code 上传
.repo/manifests/default.xml

....
  <project path="tools/base" name="xxx/platform/tools/base" groups="notdefault,tools" />
....

上传建立仓库sh脚本:

LOCAL_PATH=`pwd`
while read LINE
    do
        #cd $LOCAL_PATH
        command_line=`echo $LINE | grep "<project"`
        if [ "$command_line" ]
        then
            #echo $LINE
            reposity_name_sec=${LINE#*name=\"}
            reposity_path_sec=${LINE#*path=\"}
 
            if [ "$reposity_name_sec" ] && [ "$reposity_path_sec" ]
            then
                reposity_name=${reposity_name_sec%%\"*}
                reposity_path=${reposity_path_sec%%\"*}
                src_path=$LOCAL_PATH/$reposity_path
                #echo $src_path
                if [ -d "$src_path" ]; then
                 echo $reposity_name
                    cd $src_path
                    rm -rf .git
                    rm -rf .gitignore
                    git init
                    git remote add origin ssh://name@ip:port/aosp-xxx/$reposity_name
                    git pull origin master
                    git add  ./*
                    git commit -am "init commit"
                    git push origin master 
                #   cd -
                fi
            fi
        fi
    done  < $1

ubuntu 开机自动运行
sudo vi /etc/systemd/system/rc-local.service

[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
 
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
 
[Install]
WantedBy=multi-user.target

sudo vi /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
echo "看到这行字,说明添加自启动脚本成功。" > /usr/local/test.log
exit 0
sudo chmod +x /etc/rc.local
使用服务
sudo systemctl enable rc-local
启动服务
sudo systemctl start rc-local.service
监测状态
sudo systemctl status rc-local.service
监测系统服务是否OK 
cat /usr/local/test.log

之后开机运行的程序在 /etc/rc.local 末尾增加 docker-startup.sh 脚本

# vim /etc/rc.local
# 追加到末尾即可
# /root/shell/docker-startup.sh

如何处理文件过大的问题

# 分卷压缩gz
# tar zcf - Linux_for_Tegra/ |split -d -b 2048m - Linux_for_Tegra.tar.gz.
# 生成文件: logs.tar.gz.00 logs.tar.gz.01

# 解压gz分卷
$cat Linux_for_Tegra.tar.gz0* > Linux_for_Tegra.tar.gz
$tar zxvf Linux_for_Tegra.tar.gz
$cd Linux_for_Tegra

update /etc/apt/sources.list
https://mirrors.ustc.edu.cn/repogen/

REF:
https://www.jianshu.com/p/367f0886e62b
https://blog.csdn.net/happypX/article/details/96056543
https://blog.csdn.net/csusunxgg/article/details/109246774
https://blog.csdn.net/turtlejj/article/details/83857897
https://www.jianshu.com/p/6858a25674b4

相关文章

网友评论

    本文标题:ubuntu 环境搭建

    本文链接:https://www.haomeiwen.com/subject/fqnafltx.html