「解析」Jetson配置 git服务
这两天感冒了在家休养,想着把之前买的 Jetson 开发板用起来,买Jetson的初衷就是用来学习Linux系统,顺道可以部署算法,以及一些其他需求,相比树莓派而言,Jetson开发相对更贵,但是其配备了英伟达的显卡以及CUDA,这一点是树莓派所无法比拟的,正好在家休息就补个坑。之前一直有个想法:如何在开发板上配置 git服务,将自己的项目代码 备份到自己的服务器,即保证数据的版本管理,也保证了数据的安全性,顺道还可以学习下 git / linux 的相关命令。
之前有给自己装备一款NAS,因为功能简单只能当做纯文件存储器使用,因此无法将git部署到NAS,但是无妨 差生文具多,NAS不行 Jetson来凑。
上一次讲了 Windows如何优雅使用Terminal,但是Windows的Terminal终究不如Linux系统的舒服,因此Windows作为生活学习的主力,Jetson开发板配置的Ubuntu20.04作为 学习Linux的主力。
1、jetson 部署 git服务
1.1 安装 git
一般情况下,jetson安装完系统,会自动安装 git,可以通过 git --version
查看安装版本,也可以通过以下命令安装更新 git
sudo apt-get update
sudo apt-get install git # 初次安装 git
1.2 创建 git 用户
非必要性,如果你也跟我一样,是自己使用,其实都无所谓
sudo adduser git
根据自己实际情况填写用户信息,密码需记牢,git账号的信息,可以使用默认设置
创建完 git用户之后,可能存在以下错误:
git is not in the sudoers file. This incident will be reported.
这是因为没有给 git 用户加入到 sudo 配置中,因此在切换到 git用户时,无法使用 sudo 命令
首先修改下 sudoers 的写入权限
chmod u+w /etc/sudoers
然后编辑 sudoers
vim /etc/sudoers
找到 root ALL=(ALL) ALL,在其下方添加
root ALL=(ALL) ALL
git ALL=(ALL) ALL # 将 git 改为你自己的用户名
添加完成后,再将 sudoers的权限给修改回去
chmod u-w /etc/sudoers
这样 git 用户就也可以调用 duso 命令了
1.3 创建 git 仓库
目前需要先创建一个空的仓库,然后才能够进行上传,后续我再测试下直接上传不存在的仓库
选择一个 保存 git仓库的路径,在此以 /git/ 为例
sudo su - git
mkdir /git/demo.git
cd /git/demo.git
git init --bare # 初始化仓库
1.4 修改仓库路径权限
其实创建 git 用户就是避免其他用户不小心修改 其中的仓库,因此创建一个新的用户更加安全,另外,也可以给仓库路径设置 用户权限,是其他用户无法访问,这样就保证了数据的安全性
可以通过以下命令修改 仓库的访问权限
sudo chown -R git:git /git/
其中 -R 是为了保证 /git 路径的权限支持向下兼容,不至于每次都修改权限;
git:git 表示的是 git用户以及 git组,可以通过 id git
查看 git用户所属的 组,其中 uid 是用户名,gid是组名,grous 是用户 git 同时也附加与其他组
uid=1001(git) gid=1001(git) groups=1001(git),29(audio),44(video),103(render),113(i2c),130(gdm),999(gpio),996(weston-launch)
通过 ll
命令就可以查看当前路径下的权限信息,可以看到 git用户已经有了 ./ 以及其中的 DeepSort_Pytorch.git/ 仓库的权限了,并且其他非root用户没有权限
git@ubuntu:/git$ ll
total 12
drwxr-xr-x 3 git git 4096 Jan 16 02:39 ./
drwxr-xr-x 20 root root 4096 Jan 16 02:18 ../
drwxrwxr-x 7 git git 4096 Jan 16 02:43 DeepSort_Pytorch.git/
至此,jetson 已经配置好了 git 服务,只差代码上传
1.5 配置 SSH
博主因为是使用的 windows系统进行上传,通常使用 ssh 连接 jetson,因此还需要再配置下 SSH
sudo apt-get install openssh-server
然后,为 git用户配置 SSH
sudo su - git
mkdir ~/.ssh
touch ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
此处需要在 windows系统上生成下 ssh 公钥,方法如下
ssh-keygen -t rsa -C "youremail@example.com"
密钥类型可以用 -t 选项指定,如果没有指定则默认生成用于SSH-2的RSA密钥,这个命令使用的是rsa。
完成之后一般会保存在 C:\Users\Administrator\.ssh\id_rsa
,可以通过 txt文本打开
将其公钥保存至 jetson:~/.ssh/authorized_keys
文件中,这样就不需要每次输入用户名/邮箱名 和 密码了
1.6 启动 git 服务
退出 git 用户,并重启 SSH 服务
exit
sudo service ssh restart
至此,Git 服务器应该已经在 Jetson 上成功部署。
2、Windows 连接 jetson
因为使用的局域网,没有购买公网ip,因此也就无法外网访问了,虽然损失了方便性,但是保证了安全,而且出发点就是在家自用,基本需求满足即可,后续有外网访问的需求再说。
windows连接 ubutnu 一般直接采用 ssh连接,连接方式为 ssh <username>@<jetson_ip>
3、从 Windows 上传仓库到 Jetson
首先需要确保 jetson 上有对应的 git 仓库,没有的话,先创建一个空仓库 见 1.3。然后对windows本次代码 git 初始化,并提交推送 至 jetson的git服务中
git init
git add .
git commit -m "Initial commit"
git remote add origin git@<jetson_ip>:/git/demo.git
3.1 最后推送
使用以下命令将代码推送到 Jetson git服务器
git push -u origin master
这将把你的本地代码推送到 Jetson Git 服务器的 master 分支。如果这是第一次推送,可能需要输入 Git 用户的用户名和密码。
如果你使用 SSH 密钥进行身份验证,确保你的 SSH 密钥已经添加到 Jetson Git 服务器的 ~/.ssh/authorized_keys 文件中。
3.2 仓库拉取
如果在 Jetson 上有其他人推送了更改,你可以使用以下命令拉取这些更改:
git pull
# 或
git pull origin master
这会将 Jetson Git 服务器上的最新更改拉到你的本地仓库。
相关文章:

「解析」Jetson配置 git服务
这两天感冒了在家休养,想着把之前买的 Jetson 开发板用起来,买Jetson的初衷就是用来学习Linux系统,顺道可以部署算法,以及一些其他需求,相比树莓派而言,Jetson开发相对更贵,但是其配备了英伟达的…...

uniapp使用安装sass
1.首先你要安装node-sass npm install node-sass --save-dev2.安装sass-loader npm install sass-loader --save-dev3.修改style标签,声明使用sass <style lang"scss" scoped>...

ClickHouse学习笔记(六):ClickHouse物化视图使用
文章目录 1、ClickHouse 物化视图2、物化视图 vs 普通视图3、物化视图的优缺点4、物化视图的用法4.1、基本语法4.2、准备表结构4.3、准备数据4.3、查询结果 1、ClickHouse 物化视图 ClickHouse 的物化视图是一种查询结果的持久化,它的存在是为了带来查询效率的提升…...
华为OD机试真题-最小矩阵宽度-2023年OD统一考试(C卷)
题目描述: 给定一个矩阵,包含N*M个整数,和一个包含K个整数的数组。 现在要求在这个矩阵中找一个宽度最小的子矩阵,要求子矩阵包含数组中所有的整数。 输入描述: 第一行输入两个正整数N,M,表示矩阵大小。 接下来N行M列表示矩阵内容。 下一行包含一个正整数K。 下一行包含…...
java stream distinct根据list某个字段去重
项目场景: java stream distinct根据list某个字段去重,普通List简单去重: import java.util.Arrays; import java.util.List; import java.util.stream.Collectors;public class TestMain {public static void main(String[] args) {List&l…...

超精简虚拟机镜像
前经常有人问我要极度精简的win 7 虚拟机镜像,开个贴直接发吧,这次包括 win10 和 win7 镜像,另有一个 win 8 win7 镜像压缩包只有 300Mb, win 10 镜像 有 800Mb, win 8 有 700Mb 系统极度精简,可以运行 qq 微信&#…...

【JVM】常用命令
一、前言 Java虚拟机(JVM)是Java程序运行的基础设施,它负责将Java字节码转换为本地机器代码并执行。在开发过程中,我们经常需要使用一些命令来监控和管理JVM的性能和状态。本文将详细介绍6个常用的JVM命令:jps、jstat…...

第 7 章 排序算法
文章目录 7.1 排序算法的介绍7.3 算法的时间复杂度7.3.1 度量一个程序(算法)执行时间的两种方法7.3.2 时间频度7.3.3 时间复杂度7.3.4 常见的时间复杂度7.3.5 平均时间复杂度和最坏时间复杂度 7.4 算法的空间复杂度简介7.4.1 基本介绍 7.5 冒泡排序7.5.1 基本介绍7.5.2 演示冒泡…...

机器人持续学习基准LIBERO系列7——计算并可视化点云
0.前置 机器人持续学习基准LIBERO系列1——基本介绍与安装测试机器人持续学习基准LIBERO系列2——路径与基准基本信息机器人持续学习基准LIBERO系列3——相机画面可视化及单步移动更新机器人持续学习基准LIBERO系列4——robosuite最基本demo机器人持续学习基准LIBERO系列5——…...

基于 Level set 方法的医学图像分割
摘 要 医学图像分割是计算机辅助诊断系统设计中的关键技术。对于医学图像分割问题,它一般可分为两部分:(l)图像中特定目标区域(器官或组织)的识别;(2)目标区域完整性的描述与提取。相比于其他图像,医学图像的复杂性和多样性,使得传统的基于底层图像信息的分割方法很难取得好的…...

【C++入门】C++ STL中string常用函数用法总结
目录 前言 1. string使用 2. string的常见构造 3. string类对象的访问及遍历 迭代器遍历: 访问: 4. string类对象的容量操作 4.1 size和length 4.2 clear、empty和capacity 4.3 reserve和resize reserve resize 5. string类对象的修改操作 push_back o…...
Rust变量、常量声明与基本数据类型
Rust是一门系统级别的编程语言,注重安全性、性能和并发。在这篇博客中,我们将介绍Rust中的变量、常量声明以及基本数据类型,并通过示例说明每一种类型的用法。 变量声明 在Rust中,使用 let 关键字声明变量。变量默认是不可变的&…...

【MATLAB】 SSA奇异谱分析信号分解算法
有意向获取代码,请转文末观看代码获取方式~ 1 基本定义 SSA奇异谱分析(Singular Spectrum Analysis)是一种处理非线性时间序列数据的方法,可以对时间序列进行分析和预测。 它基于构造在时间序列上的特定矩阵的奇异值分解&#…...
Nginx+Tomcat负载均衡、动静分离以及Nginx负载均衡和四层代理
目录 NginxTomcat负载均衡、动静分离 Nginx 负载均衡模式: Nginx 四层代理配置: NginxTomcat负载均衡、动静分离 Nginx 服务器:192.168.80.10:80 Tomcat服务器1:192.168.80.100:80 Tomcat服务器2:192.168.80.101:80…...

Vue3中provide,inject使用
一,provide,inject使用: 应用场景:向孙组件传数据 应用Vue3碎片: ref,reactive,isRef,provide, inject 1.provide,inject使用 a.爷组件引入 import {ref,provide} from vue const drinkListre…...
Django命令模块
这篇文章我们主要来介绍一下关于 Django 的命令模块,我们经常会使用到,比如以下几个常用的命令,都属于 Django 的命令模块: python manage.py makemigrations python manage.py migrate python manage.py startapp python manage…...

【linux驱动开发】在linux内核中注册一个杂项设备与字符设备以及内核传参的详细教程
文章目录 注册杂项设备驱动模块传参注册字符设备 开发环境: windows ubuntu18.04 迅为rk3568开发板 注册杂项设备 相较于字符设备,杂项设备有以下两个优点: 节省主设备号:杂项设备的主设备号固定为 10,在系统中注册多个 misc 设备驱动时&…...
Golang条件编译 | 获取系统的磁盘空间内存占用demo | gopsutil/disk库(跨平台方案)
文章目录 一、Golang条件编译1. 构建标签( Build tags)2. 文件后缀(File suffixes) 二、GO golang 获取磁盘空间 条件编译思路 三、【推荐】使用github.com/shirou/gopsutil/disk这个库,如何获取机器下不同磁盘分区的内容 一、Golang条件编译…...
22/76-池化
池化(最大池化层:选每个kernel中最大的数) 填充、步幅、多个通道: 池化层与卷积层类似,都具有填充和步幅。 没有可学习的参数。 在每个输入通道应用池化层以获得相应的输出通道。 输出通道数输入通道数。 平均池化层…...

江科大STM32 下
目录 ADC数模转换器DMA直接存储器存取USART串口9-2 串口发送接受9-3 串口收发HEX数据包 I2C(mpu6050陀螺仪和加速度计)SPI协议10.1 SPI简介W25Q64简介10.3 SPI软件读写W25Q6410.4 SPI硬件读写W25Q64 BKP、RTC11.0 Unix时间戳11.1 读写备份寄存器BKP11.2 RTC实时时钟 十二、PWR1…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...

Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...

云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...

SpringSecurity+vue通用权限系统
SpringSecurityvue通用权限系统 采用主流的技术栈实现,Mysql数据库,SpringBoot2Mybatis Plus后端,redis缓存,安全框架 SpringSecurity ,Vue3.2Element Plus实现后台管理。基于JWT技术实现前后端分离。项目开发同时采 …...
全面解析网络端口:概念、分类与安全应用
在计算机网络的世界里,数据的传输与交互如同一场繁忙的物流运输,而网络端口就是其中不可或缺的 “货运码头”。无论是日常浏览网页、收发邮件,还是运行各类网络服务,都离不开网络端口的参与。本文将深入介绍网络端口的相关知识&am…...

(33)课54:3 张表的 join-on 连接举例,多表查询总结。数据库编程补述及游标综合例题。静态 sqL与动态sqL(可带参数)
(112)3 张表的 join-on 连接举例 : (113) 多表查询总结 : (114)数据库编程补述 : 综合例题 : 以上没有动手练习,不知道这样的语法是否…...