1.gitlab pipelinesä»ç»
2.如何查看app的源码源代码?
3.HEVC开源编解码器HM编译及使用方法
4.å¦ä½ç¨github/gitlabå代ç review
5.å¦ä½å¨ Ubuntu/Fedora/Debian ä¸å®è£
GitLab
6.私有化代码仓库Gitlab的落地与应用(一)
gitlab pipelinesä»ç»
é®é¢ï¼é¡¹ç®ä»æºç å°ç½ç«ç»åäºåªäºæ¥éª¤ï¼
gitlabçpipelineså°±æ¯è§£å³è¯¥è¿ç¨çä¸ä¸ªå·¥å ·,è¿ä¸ªè¿ç¨å¯ä»¥ç®åDevopsçä¸é¨åï¼å¼å人åï¼DEVï¼ä¸ IT è¿è¥ï¼OPSï¼ã
ä»»å¡çå®é æ§è¡å¨ï¼å å«shellãdockerãmachineçå ç§è¿è¡æ¹å¼ãæ们项ç®ä¸»è¦æç¨dockerçæ¹å¼ï¼å æ¤ææjobçè¿è¡ç¯å¢é½æ¯dockerï¼åå³äºåºå±éåã
pipelinesç±å¤ä¸ªjobç»æï¼å½å ¨é¨jobæ§è¡å®åï¼pipelineså³ä¸ºå®æã
ç¼è¯nodeæ ·ä¾:
ç¼åæ¯ä½¿ç¨minio(对象åå¨)å®ç°ç
æ ·ä¾ï¼
/help/ci/examples/index.md
è¯æ³è¯´æï¼
/help/ci/yaml/index
如何查看app的源代码?
要查看Android APP的源代码,你可以通过以下几种方法:
1. 从开源平台获取:如果APP是编译开源的,你可以在如GitHub、源码GitLab等代码托管平台上搜索该APP的编译源代码。
2. 使用反编译工具:对于非开源的源码APP,你可以尝试使用反编译工具如Apktool和JD-GUI来反编译APK文件。编译卡通平台源码这些工具可以将APK文件转换为可读的源码源代码形式,但请注意,编译反编译得到的源码代码可能不完全等同于原始源代码,且可能包含编译和优化后的编译代码。
3. 利用调试工具:如果你拥有APP的源码APK文件,并且希望在运行时查看源代码,编译你可以使用Android Studio的源码调试功能。通过调试,编译你可以在APP运行时查看和修改代码,源码但这需要一定的编程知识和经验。
4. 联系开发者:如果你对某个APP的源代码感兴趣,但无法通过以上方法获取,你可以尝试联系开发者或开发团队,询问他们是否愿意分享源代码。有些开发者可能会愿意分享他们的代码,特别是对于那些教育或研究目的的请求。
在查看Android APP源代码时,请确保你遵守相关的法律和道德规范。未经许可的获取和使用他人的源代码可能侵犯知识产权,因此请确保你的行为合法合规。同时,socketapi源码了解源代码并不意味着你可以随意修改和分发APP,除非你获得了开发者的明确授权。
总之,查看Android APP源代码的方法因APP的开源情况而异。对于开源APP,你可以直接从代码托管平台获取源代码;对于非开源APP,你可以尝试使用反编译工具或调试工具来查看源代码;当然,你也可以联系开发者寻求帮助。无论采用哪种方法,都请确保你的行为合法合规,并尊重他人的知识产权。
HEVC开源编解码器HM编译及使用方法
HM (HEVC Test Model)是一个开源软件,用于帮助我们理解HEVC编码标准。它包括编码器TAppEncoder和解码器TAppDecoder,能实现HEVC标准中的所有功能,但性能不如商用编码器。该项目由JVET维护。本文记录了笔者在Ubuntu下根据HM项目的README,编译并运行一个小demo的过程。
JVET并未将HM托管到GitHub,而是将其托管在gitlab仓库vcgit.hhi.fraunhofer.de...中。我们可以在该页面找到仓库的git URL,然后在Ubuntu中使用git clone命令克隆源代码:
进入代码目录后,创建名为build的文件夹,并进入该文件夹:
在build目录下运行以下指令:
注意,执行上述指令前需要预先安装cmake工具。结构源码
执行cmake后,在当前目录下应该会看到一个Makefile,然后我们可以使用make进行编译:
编译过程可能较长:
编译过程中,如果没有错误,几分钟内即可完成。如果读者在编译过程中遇到依赖问题,可以自行搜索并安装,HM的编译过程相对顺利,没有太多难点。
当make的进度达到%时,说明编译完成。最后几行输出表明编译出的可执行文件位于相应位置,可以在“HM/bin/umake/gcc-9.4/x_/release”目录下找到“MCTSExtractor”“parcat”“SEIRemovalApp”“TAppDecoder”“TAppDecoderAnalyser”“TAppEncoder”等可执行文件。
接下来,我们使用TAppEncoder进行测试,将一个未压缩的yuv序列编码成HEVC视频序列。我们使用的是Derf's Test Media Collection数据集中的akiyo视频序列。下载akiyo_cif.y4m文件后,将其与TAppEncoder可执行文件放在同一文件夹中。
在HM项目的doc目录下,有一个名为software-manual.pdf的说明文档,详细介绍了HM软件的使用方法。通过阅读该文档,我们可以了解TAppEncoder通过-c参数指定配置文件,并在项目的cfg目录下找到示例配置文件。我们将其中一个配置文件拷贝到工作目录下,源码变量并执行代码。如果出现错误,可能是因为配置文件中没有指定帧率和编码总帧数。这是一个HM项目的小坑,需要仔细调试。
修改配置文件后,再次执行指令,即可正常编码。编码完成后,可以在当前目录下找到输出文件akiyo_hevc.bin,使用PotPlayer播放,显示输入格式为HEVC。但可能存在一些播放异常,需要进一步检查。
我们可以使用开源软件GitlHEVCAnalyzer对akiyo_hevc.bin进行分析,该软件可以显示视频中的CU、PU等单元以及分块信息。
--更新:使用HM的TAppEncoder对akiyo_cif.y4m进行编码时,编码后的视频画面会发生色彩异常和抖动异常。目前,已找到原因并成功解决。在解决此问题之前,我们需要了解y4m文件格式。Y4M是一种保存原始YUV序列的文件封装格式,包含视频属性信息。而HM的源码汇编TAppEncoder编码器需要接收仅由视频帧组成的像素矩阵数据。因此,直接将akiyo_cif.y4m文件输入到HM编码器中可能导致帧不对齐,造成抖动。解决方法是提取视频每一帧像素矩阵,丢弃视频属性信息,并将它们写入新文件。使用ffmpeg进行视频内容提取后,将得到的akiyo_yuv.yuv文件输入到TAppEncoder中,以相同方式进行编码,即可正常播放视频。
å¦ä½ç¨github/gitlabå代ç review
Git - çæ¬æ§å¶å·¥å ·
Gitæ¯ä¸ä¸ªå¼æºçåå¸å¼çæ¬æ§å¶ç³»ç»ï¼ç¨ä»¥ææãé«éçå¤çä»å¾å°å°é常大ç项ç®çæ¬ç®¡çã[4]
Git æ¯ Linus Torvalds 为äºå¸®å©ç®¡ç Linux å æ ¸å¼åèå¼åçä¸ä¸ªå¼æ¾æºç ççæ¬æ§å¶è½¯ä»¶ã
Torvalds å¼å§çæå¼å Git æ¯ä¸ºäºä½ä¸ºä¸ç§è¿æ¸¡æ¹æ¡æ¥æ¿ä»£ BitKeeperï¼åè ä¹åä¸ç´æ¯ Linux å æ ¸å¼å人åå¨å ¨ç使ç¨ç主è¦æºä»£ç å·¥å ·ãå¼æ¾æºç 社åºä¸çæäºäººè§å¾ BitKeeper ç许å¯è¯å¹¶ä¸éåå¼æ¾æºç 社åºçå·¥ä½ï¼å æ¤ Torvalds å³å®çæç 究许å¯è¯æ´ä¸ºçµæ´»ççæ¬æ§å¶ç³»ç»ã尽管æå Git çå¼åæ¯ä¸ºäºè¾ å© Linux å æ ¸å¼åçè¿ç¨ï¼ä½æ¯æ们已ç»åç°å¨å¾å¤å ¶ä»èªç±è½¯ä»¶é¡¹ç®ä¸ä¹ä½¿ç¨äº Gitãä¾å¦ æè¿å°±è¿ç§»å° Git ä¸æ¥äºï¼å¾å¤ Freedesktop ç项ç®ä¹è¿ç§»å°äº Git ä¸ã
Github - ä¸ä¸ªç½ç«ï¼æä¾ç»ç¨æ·ç©ºé´å建gitä»å¨ï¼ä¿åç¨æ·çä¸äºæ°æ®ææ¡£æè 代ç ç
ä½ä¸ºå¼æºä»£ç åºä»¥åçæ¬æ§å¶ç³»ç»ï¼Githubç®åæ¥æå¤ä¸å¼åè ç¨æ·ãéçè¶æ¥è¶å¤çåºç¨ç¨åºè½¬ç§»å°äºäºä¸ï¼Githubå·²ç»æ为äºç®¡ç软件å¼å以ååç°å·²æ代ç çé¦éæ¹æ³ã
å¦åæè¿°ï¼ä½ä¸ºä¸ä¸ªåå¸å¼ççæ¬æ§å¶ç³»ç»ï¼å¨Gitä¸å¹¶ä¸åå¨ä¸»åºè¿æ ·çæ¦å¿µï¼æ¯ä¸ä»½å¤å¶åºçåºé½å¯ä»¥ç¬ç«ä½¿ç¨ï¼ä»»ä½ä¸¤ä¸ªåºä¹é´çä¸ä¸è´ä¹å¤é½å¯ä»¥è¿è¡å并ã
GitHubå¯ä»¥æ管åç§gitåºï¼å¹¶æä¾ä¸ä¸ªwebçé¢ï¼ä½ä¸å ¶å®å SourceForgeæGoogle Codeè¿æ ·çæå¡ä¸åï¼GitHubçç¬ç¹åç¹å¨äºä»å¦å¤ä¸ä¸ªé¡¹ç®è¿è¡åæ¯çç®ææ§ã为ä¸ä¸ªé¡¹ç®è´¡ç®ä»£ç é常ç®åï¼é¦å ç¹å»é¡¹ç®ç«ç¹çâforkâçæé®ï¼ç¶åå°ä»£ç æ£åºå¹¶å°ä¿®æ¹å å ¥å°åæååºç代ç åºä¸ï¼æåéè¿å 建çâpull requestâæºå¶å项ç®è´è´£äººç³è¯·ä»£ç å并ãå·²ç»æ人å°GitHub称为代ç ç©å®¶çMySpaceã
GitLab - åºäºGitç项ç®ç®¡ç软件
GitLab æ¯ä¸ä¸ªç¨äºä»åºç®¡çç³»ç»çå¼æºé¡¹ç®ã使ç¨Gitä½ä¸ºä»£ç 管çå·¥å ·ï¼å¹¶å¨æ¤åºç¡ä¸æ建起æ¥çwebæå¡ã
å¦ä½å¨ Ubuntu/Fedora/Debian ä¸å®è£ GitLab
ä¸ãæºç å®è£ ï¼
对äºæ¬èº«å ·æå¼æºè¡ç»çLinuxç³»ç»æ¥è¯´ï¼å ä¹ææçå¼æºè½¯ä»¶é½æ¯æå¨Linuxå¹³å°è¿è¡ï¼èè¿äºè½¯ä»¶ä¸è¬é½ä»¥æºç æå å½¢å¼ååï¼æºç å®è£ éç¨äºææLinuxåæ¯ï¼åªéè¦ç³»ç»å®è£ äºgccãmakeã以åautomakeåautoconfï¼æºç å®è£ çä¸è¬æ¹æ³å¦ä¸ï¼
1. cd æºç ç®å½
2. ./configure [opts]
3. make
4. make install
äºãrpmå å®è£
pmå çå®è£ é常ç®åï¼åªéè¦è¾å ¥rpm ï¼i xxx.rpm å³å¯å®æï¼å¸è½½åªéè¦rpm -e å å å³å¯å®æï¼å级éè¿rpm -U å å å½ä»¤å®æï¼éè¦æºå¨èç½ï¼ï¼rpm -q æä¾ç¸å ³æ¥è¯¢
ä¸ã debå å®è£
debæ¯debianåå ¶è¡ççæ¬å¦Ubuntuçå®è£ å ï¼å¨è¿ä¸¤ä¸ªç³»ç»çæ¡é¢ç¯å¢ä¸ï¼å¯åå»å ç´æ¥å®è£ ï¼å¨å½ä»¤è¡ä¸å¯ä»¥éè¿dpkg -i xxx.debå®æï¼éè¿dpkg -r å å å®æã
4. yumå®è£ 软件å
Yumæ¯ä¸ä¸ªå¨FedoraåRedHat以åSUSEãCentOSä¸ç软件å 管çå¨ï¼yumä¹å¯¹ä¾èµå ³ç³»è¿è¡ç®¡çï¼å¿ é¡»å¨èç½æ¡ä»¶ä¸è¿è¡ï¼ä¹å¯ä»¥ç»yum设置代çï¼ï¼ä½¿ç¨yumå®è£ 软件ä¹æ¯æ¬äººæ常ç¨çæ¹æ³ï¼å¨shellå½ä»¤è¡ä¸è¾å ¥yum install 软件å å å³å¯å®æå®è£ ï¼å¦æä¾èµå 没å®è£ ï¼ä¼èªå¨å®è£ ï¼å¸è½½éè¿yum remove å å å³å¯å®æï¼ä¸apt-get 类似ã
私有化代码仓库Gitlab的落地与应用(一)
前段时间,我接到任务:尝试搭建一个私有化的代码仓库给前端团队使用。之前我用Docker搭建过一个Gitlab,但使用过程中遇到了很多问题,维护起来也比较复杂,所以我决定按照传统方法重新搭建。到目前为止,服务已经平稳运行了数月。本文主要记录《私有化代码仓库Gitlab的落地与应用》系列(一):Gitlab传统搭建方式及后台维护,内容主要分为以下几个部分:
一、Gitlab简介
GitLab是一个由GitLabInc.开发的开源应用程序,使用Ruby on Rail开发,主要用于实现一个自托管的Git项目仓库。用户可以通过web界面访问公开或私人项目。它使用Git作为代码管理工具,并在此基础上搭建web服务。GitLab的功能与GitHub类似,包括浏览源代码、管理缺陷和注释,以及管理团队对仓库的访问。GitLab专门为Unix操作系统开发,不能在Windows操作系统上运行,因此需要在Linux虚拟机或Docker上安装。GitLab分为社区版(Community Edition)和企业版(Enterprise Edition)。
二、Gitlab搭建步骤
1. 安装依赖
2. 下载镜像文件并上传至服务器
国内镜像地址:mirrors.tuna.tsinghua.edu.cn...
3. 安装Gitlab
4. 配置Gitlab
编辑配置文件:
主要涉及两处改动:
5. 启动Gitlab
6. 访问Gitlab
..1.:
三、常见问题及解决
1. 前端页面访问出现
出现可能有以下原因:
通过后台运行日志,排查如果是因为端口被占用引起的,可以按照上述修改配置文件方法,将配置文件中的端口号修改即可,修改后需要按照第4步重新加载配置文件、重启服务。更多配置信息,可以在 /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml 中进行查看。
四、Gitlab配置信息及常用操作命令
1. 常见配置
默认安装的gitlab,主要有四个目录:
◆ /opt/gitlab/ # 主目录
◆ /etc/gitlab/ # 放置配置文件
◆ /var/opt/gitlab/ # 各个组件
◆ /var/log/gitlab/ # 放置日志文件
2. 常用命令
◆ gitlab-ctl start # 启动所有 gitlab 组件;
◆ gitlab-ctl stop # 停止所有 gitlab 组件;
◆ gitlab-ctl restart # 重启所有 gitlab 组件;
◆ gitlab-ctl status # 查看服务状态;
◆ vim /etc/gitlab/gitlab.rb # 修改gitlab配置文件;
◆ gitlab-ctl reconfigure # 重新编译gitlab配置;
◆ gitlab-ctl tail # 查看日志;
◆ gitlab-ctl help # 查看相关的帮助
五、代码仓库数据迁移
1. 旧服务器数据手动备份
先停掉gitlab,然后执行备份命令
生成的备份文件会存在/var/opt/backups/目录下,生成的文件名如____.0.6_gitlab_backup.tar,其中.0.6是当前gitlab的版本号,恢复时使用的gitlab必须是同样的版本号,否则没法进行恢复。该文件里面包含了所有user、group、git repository数据。
2. 新服务器上恢复数据
将备份文件复制到新服务器的/var/opt/backups/目录下,停掉gitlab的puma、sidekiq两个服务,然后执行恢复操作
特别注意:
六、代码仓库自动备份方式一:使用gitlab配置文件设置自动备份
1. 编辑 /etc/gitlab/gitlab.rb文件,找到以下内容并按照如下配置:
2. 更新配置
方式二:使用Linux系统crondtab服务自动备份
1. 配置定时任务:crontab -e
查看定时任务:crontab -l
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create 表示每天凌晨两点执行备份命令
设置cron服务开机自启:systemctl enable crond.service
修改后重启cron服务:systemctl restart crond
tips:
2. 自动上传gitlab的备份文件到另一台服务器
1)设置两台服务器免密登录
2)编写自动上传备份文件shell脚本:gitlab-upload.sh,内容如下:
编写完成后要对文件赋予执行权限:chmod +x gitlab-upload.sh
3)设置crondtab定时任务
执行crondtab -e命令,设置为每天凌晨三点执行远程传输备份文件任务,内容如下,
保存后要重载crond服务:systemctl reload crond.service
七、小结
总的来说,Gitlab的搭建过程比一般软件的搭建要繁琐,另外像数据自动备份、数据迁移所用到的Linux技能也较多,可以按需配置和操作。最后,总结一下本次用到的Linux技能:
Gitlab 触发 Jenkins 自动构建,并返回构建结果
要实现 Gitlab 触发 Jenkins 自动构建并返回构建结果,首先需要在 Gitlab 和 Jenkins 上进行认证配置。在 Gitlab 用管理员账号生成 Access Token,并妥善保存,因为此信息只会显示一次。随后,在 Jenkins 系统管理中,添加 Gitlab 认证,粘贴 Token 到相应位置,并确保连接成功。
接着,创建 Jenkins 的 pipeline 流水线,选择 pipeline 风格,配置好 Jenkinsfile,以实现构建自动化。配置完成后,提交代码到 Gitlab,选择 "Build when a change is pushed to Gitlab",并设置 Secret token。如果需要限制特定分支触发构建,记得调整 Allowed branches。
在 Gitlab 中添加 webhook,测试配置,如果返回值为 ,则说明成功。然而,需要注意 Gitlab .6 版本后的安全设置,它默认阻止向本地网络发送 webhook 请求,导致添加 webhook 时可能出错。为解决这个问题,需要管理员权限打开本地网络的 webhook 请求权限。
最终,你可以在 Gitlab 的提交历史或流水线页面查看实际的构建结果,这样就实现了 Gitlab 源码变更自动触发 Jenkins 构建,并实时反馈构建状态。
GitLab ARM源码编译搭建
本文由神州数码云基地团队整理撰写,若转载请注明出处。 GitLab 是一个基于 Ruby on Rails 的开源应用,实现自托管的 Git 项目仓库,通过 Web 界面进行访问和管理。GitLab 提供了多种安装和部署方式,包括操作系统软件源安装、Docker 方式部署以及源代码方式安装。官方构建的软件包和镜像主要针对 X 架构,不支持 ARMv8,且 Docker 镜像多基于 Ubuntu Linux,CentOS 系统不兼容。 为满足在 CentOS7、Arm 架构服务器上部署 GitLab 的需求,采用源码编译 GitLab 的方式。 安装版本为 gitlab-ce:--stable。环境准备
安装环境要求:Ruby 2.7.4
Redis 6.2.4
Git:2..1
Go:.
Postgres:
Node: .x
Nginx:1..1
安装步骤
安装 Ruby
Gitlab-ce:--stable 版本要求 Ruby 2.7.4。安装 Git
要求 Git 2..1,官方建议使用 Gitaly 提供的版本。安装 Go
要求 Go .。安装 Node 和 yarn
要求 Node >= v..1,推荐使用 .x,因为更快。要求 yarn = v1..x,暂不支持 Yarn 2。安装数据库
GitLab .0 及更高版本需要 PostgreSQL 或以上版本。安装 Redis
版本:6.2.4。编译 GitLab
编译核心代码
完成三个部分的编译工作,最终得到主要目录结构。配置核心代码
主要修改数据库配置属性。编译 GitLabShell
安装所需依赖后,进行编译。编译 GitLab-Workhorse
编译完成后,完成编译工作。安装 GitLab 页面
安装 Gitaly
至此 GitLab 服务已启动,接下来安装 Nginx,部署前端页面。安装 Nginx
要求 Nginx 1..1,注意修改 server_name 为你的 IP 或域名。启动 Nginx
完成部署。登录 GitLab
第一次登录时,需要设置 root 账户密码。