GitLab的安裝和使用

1.GitLab

環境說明

系統版本 CentOS 7.2 x86_64

軟件版本 gitlab-ce-10.8.4

GitLab 是一個用于倉庫管理系統的開源項目,使用Git作為代碼管理工具,并在此基礎上搭建起來的web服務。可通過Web界面進行訪問公開的或者私人項目。它擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易于瀏覽提交過的版本并提供一個文件歷史庫。團隊成員可以利用內置的簡單聊天程序(Wall)進行交流。它還提供一個代碼片段收集功能可以輕松實現代碼復用。

1.1 Gitlab安裝

Gitlab的rpm包集成了它需要的軟件,簡化了安裝步驟,所以直接安裝rpm包即可,rpm包的獲取從官方網站或者國內鏡像源(如:清華Index of /gitlab-ce/yum/el7/ | 清華大學開源軟件鏡像站 | Tsinghua Open Source Mirror)獲取,gitlab又分為社區版和企業版(收費),這里部署的是社區版本10.8.4

[root@gitlab ~]# mkdir -p /service/tools   #在父目錄新建路徑[root@gitlab ~]# cd /service/tools/[root@gitlab tools]# yum localinstall -y gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm            #安裝下載好的rpm包
或者
[root@gitlab ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm        #執行rpm -ivh 在線安裝

這里使用本地安裝

安裝成功,但是需要配置,安裝完成后出現上面的提示,按照提示修改配置文件中的url地址為本地服務器的地址

[root@gitlab tools]# vim /etc/gitlab/gitlab.rb
external_url 'http://云服務器IP'

[root@gitlab tools]# gitlab-ctl reconfigure        #重新加載配置
可能會稍微慢一些

?

----------------------不漢化的話,Gitlab的配置到此為止--------------------------------------------------------------------------

1.2 漢化

默認的全英文界面對于英文水平低的來講當然用著很不舒服,于是便需要來一波操作進行漢化,英文好的請自覺忽略 可以不進行該部分操作

[root@gitlab tools]# gitlab-ctl stop        #停止gitlab,進行后面的漢化[root@gitlab tools]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION10.8.4        #查看版本
或
[root@gitlab tools]# rpm -qa gitlab-cegitlab-ce-10.8.4-ce.0.el7.x86_64        #查看版本[root@gitlab tools]# ll /opt/gitlab/                #相關目錄

[root@gitlab tools]# ll /var/opt/gitlab                #相關目錄

GitLab中文社區的項目,v7-v8.8是由Larry Li發起的"GitLab中文社區版項目"(Larry Li / GitLab 中文社區版 · GitLab),從v8.9之后由@xhang開始繼續漢化項目(xhang / GitLab 中文社區版 · GitLab)

?

[root@gitlab tools]# pwd/service/tools[root@gitlab tools]# mkdir /backup[root@gitlab tools]# cp /opt/gitlab/embedded/service/gitlab-rails/* /backup    #防止漢化失敗,備份原文件[root@gitlab tools]# git clone https://gitlab.com/xhang/gitlab.git        #下載最新的漢化包

?漢化包的版本更新速度不得而知,所以盡量不要安裝最新版本的gitlab。如果是要下載老版本的漢化包,需要加上老版本的分支,如果想下載10.0.2,可以運行如下語句

[root@gitlab tools]# git clone https://gitlab.com/xhang/gitlab.git -b v10.0.2-zh[root@gitlab tools]# ls        #git下來的文件為gitlabgitlab gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm[root@gitlab tools]# \cp -rf gitlab/* /opt/gitlab/embedded/service/gitlab-rails/    #拷貝文件

檢驗漢化

[root@gitlab tools]# gitlab-ctl reconfigure            #加載配置(第一次執行此命令會啟動,若只啟動執行start)

啟動時查看控制臺輸出,需要等待一段時間,無輸出后啟動完成,執行free -m命令查看到當前的內存使用情況為

[root@gitlab tools]# free -mtotal used free shared buff/cache availableMem: 2993 2123 156 62 713 597Swap: 2047 0 2047[root@gitlab tools]# netstat -lntupActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 4319/node_exportertcp 0 0 127.0.0.1:9229 0.0.0.0:* LISTEN 4628/gitlab-workhortcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 4659/rubytcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 4191/unicorn mastertcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4223/nginx: mastertcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 4196/sidekiq 5.0.5tcp 0 0 127.0.0.1:9236 0.0.0.0:* LISTEN 4642/gitalytcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1439/sshdtcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 4223/nginx: mastertcp 0 0 0.0.0.0:6783 0.0.0.0:* LISTEN 4696/alertmanagertcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 4425/redis_exportertcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 4681/prometheustcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 4710/postgres_exportcp 0 0 127.0.0.1:9093 0.0.0.0:* LISTEN 4696/alertmanagertcp6 0 0 ::1:9168 :::* LISTEN 4659/rubytcp6 0 0 :::22 :::* LISTEN 1439/sshd

2 GitLab的使用

2.1 登錄的基本操作

GitLab終端常用命令

gitlab-ctl start #啟動所有 gitlab 組件;

gitlab-ctl stop #停止所有 gitlab 組件;

gitlab-ctl restart #重啟所有 gitlab 組件;

gitlab-ctl status #查看服務狀態;

gitlab-ctl reconfigure #啟動服務;

vim /etc/gitlab/gitlab.rb #修改默認的配置文件;

gitlab-rake gitlab:check SANITIZE=true --trace #檢查gitlab;

gitlab-ctl tail #查看日志;

修改密碼后進行登錄,登錄的用戶名為root

首先查看云服務的安全組當中,8080端口是否開放

然后查看防火墻是否已經關閉

firewall-cmd --state 檢查防火墻狀態

systemctl stop firewalld.service 停止防火墻

查看端口占用情況

修改web端口(如果端口占用)

如果80和8080端口被占用可以修改

[root@gitlab tools]# vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb

listen "127.0.0.1:8080", :tcp_nopush => true

修改nginx端口

[root@gitlab tools]# vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

server {

listen *:80;

修改Prometheus端口

[root@gitlab tools]# vim /etc/gitlab/gitlab.rb

external_url 'http://10.0.0.5:port' #根據需要修改端口

修改后需要重新加載配置并啟動

2.2 使用方法

重置密碼

登錄:默認用戶名是root,密碼使用剛剛重置過的。

創建空白項目

選擇項目路徑,輸入項目名稱,項目描述,選擇項目等級(私人的,內部的,公開的),

我們能看到Gitlab給我們的使用當前項目的教程。學過git和GitHub,想必我這些已經都會了。

我們發現上面有一行黃色的提示,要求我們配置ssh

首先生成公鑰:

[root@gitlab-client ~]# ssh-keygen

[root@gitlab-client ~]# cat .ssh/id_rsa.pub         #查看公鑰

?

將上面的公鑰文件復制到gitlab中

我們在遠程機器生成私鑰

生成新的SSH密鑰: ssh-keygen -t rsa -C "your_email@address"

此命令將提示您用于存儲密鑰對和密碼的位置和文件名。當提示輸入位置和文件名時,只需按Enter鍵即可使用默認值。如果使用其他名稱,則不會自動使用該密鑰。

在C盤下 .ssh 文件夾中會生成 id_rsa 和 id_rsa.pub 兩個文件,其中 id_rsa.pub 里面是以ssh-rsa開頭并以您的用戶名和主機結尾的完整密鑰。將密鑰復制粘貼到 profile settings中 SSH keys 選項卡下,add an ssh key ,保存。

步驟:

在window系統打開命令行輸入

ssh-keygen -t rsa -C "your_email@address"

Enter file in which to save the key (/root/.ssh/id_rsa):

在使用ssh-keygen命令生成 RSA 密鑰對時,提示你輸入保存密鑰的文件路徑和文件名。

默認的路徑是/root/.ssh/id_rsa,如果你想使用默認路徑,直接按回車鍵即可。

如果你想指定其他路徑和文件名,可以輸入你想要的完整路徑和文件名,例如/home/user/.ssh/my_rsa_key。需要注意的是,確保你指定的路徑存在且你有寫入權限,否則可能會導致生成密鑰失敗。

另外,如果你輸入的文件名已經存在,ssh-keygen會提示你是否覆蓋該文件,根據你的需求進行選擇即可

Enter passphrase

提示你輸入一個密碼短語(也叫口令、密碼)來保護你的私鑰。

打開id_rsa.pub,把所有內容復制

到Gitlab中將密鑰復制粘貼到 profile settings中 SSH keys 選項卡下,add an ssh key ,保存。跟添加公鑰的步驟完全一致

隨機我們配置本地用戶信息和本地庫創建本地git庫

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3
$ git init
Initialized empty Git repository in D:/testGit3/.git/rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git config --local user.name 'zhangsan'rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git config --local user.mail 'zhangsan@126.com'rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git remote add origin git@192.168.0.108:root/spring_src.git
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ echo 'test' > test.txt
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git status
On branch masterNo commits yetUntracked files:(use "git add <file>..." to include in what will be committed)test.txtnothing added to commit but untracked files present (use "git add" to track)rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git add .
warning: LF will be replaced by CRLF in test.txt.
The file will have its original line endings in your working directory.rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git commit -m 'add a test file'
[master (root-commit) 666da41] add a test file1 file changed, 1 insertion(+)create mode 100644 test.txt
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git push -u origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 216 bytes | 216.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To 192.168.0.108:root/spring_src.git* [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

?

?

此刻我們可以看到遠程倉庫里面文件以及推送。

隨機我們將Spring源代碼上傳Gitlab

此時我可以通過另一個git本地庫克隆

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4
$ git clone git@192.168.0.108:root/spring_src.git
Cloning into 'spring_src'...
remote: Counting objects: 9622, done.
remote: Compressing objects: 100% (6230/6230), done.
remote: Total 9622 (delta 2851), reused 9619 (delta 2851)
Receiving objects: 100% (9622/9622), 13.57 MiB | 14.34 MiB/s, done.
Resolving deltas: 100% (2851/2851), done.
Checking out files: 100% (7948/7948), done.rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4
$ ll
total 12
drwxr-xr-x 1 rlsl180506 197121 0 2月  19 11:26 spring_src/rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4
$ cd spring_src/rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git config --local user.name 'lisi'rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git config --local user.mail 'lisi@126.com'rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git config --local -l
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
remote.origin.url=git@192.168.0.108:root/spring_src.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
user.name=lisi
user.mail=lisi@126.comrlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ ll
total 70
-rw-r--r-- 1 rlsl180506 197121 11118 2月  19 11:26 build.gradle
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 buildSrc/
-rw-r--r-- 1 rlsl180506 197121  2395 2月  19 11:26 CODE_OF_CONDUCT.adoc
-rw-r--r-- 1 rlsl180506 197121  6308 2月  19 11:26 CONTRIBUTING.md
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 gradle/
-rw-r--r-- 1 rlsl180506 197121    23 2月  19 11:26 gradle.properties
-rwxr-xr-x 1 rlsl180506 197121  5533 2月  19 11:26 gradlew*
-rw-r--r-- 1 rlsl180506 197121  2349 2月  19 11:26 gradlew.bat
-rw-r--r-- 1 rlsl180506 197121  4529 2月  19 11:26 import-into-eclipse.bat
-rw-r--r-- 1 rlsl180506 197121  4078 2月  19 11:26 import-into-eclipse.sh
-rw-r--r-- 1 rlsl180506 197121  1868 2月  19 11:26 import-into-idea.md
-rw-r--r-- 1 rlsl180506 197121  2290 2月  19 11:26 README.md
-rw-r--r-- 1 rlsl180506 197121  1154 2月  19 11:26 settings.gradle
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-aop/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-aspects/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-beans/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-context/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-context-indexer/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-context-support/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-core/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-expression/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-framework-bom/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-instrument/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-jcl/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-jdbc/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-jms/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-messaging/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-orm/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-oxm/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-test/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-tx/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-web/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-webflux/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-webmvc/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-websocket/
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 src/
-rw-r--r-- 1 rlsl180506 197121     6 2月  19 11:26 test.txt
drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 tx-spring-teach/rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ vi test.txtrlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git add .rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git commit -m 'aa'
[master 1c8f28d] aa1 file changed, 1 insertion(+)rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 250 bytes | 250.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To 192.168.0.108:root/spring_src.gitbf028b3..1c8f28d  master -> masterrlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)

?

?

?

刷新Gitlab我們可以看到變化。

?

如何完全卸載虛擬機當中的Gitlab

請參考這位博主大大的作品

centos7完全卸載GitLab_centos7 gitlab 卸載-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63655.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63655.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63655.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Leetcode 串聯所有單詞的子串

算法思想&#xff08;中文解釋&#xff09; 這道題目要求我們在字符串 s 中找到所有子串&#xff0c;這些子串是字符串數組 words 中所有單詞的串聯&#xff0c;并且每個單詞只能使用一次&#xff0c;且順序可以任意。下面是代碼的算法思想&#xff1a; 1. 核心思路 分解問題…

解析在OceanBase創建分區的常見問題|OceanBase 用戶問題精粹

在《分區策略和管理分區計劃的實踐方案》這篇文章中&#xff0c;我們介紹了在ODC中制定分區策略及有效管理分區計劃的經驗。有不少用戶在該帖下提出了使用中的問題&#xff0c;其中一個關于創建分區的限制條件的問題&#xff0c;也是很多用戶遭遇的老問題。因此本文以其為切入&…

有哪些免費的 ERP 軟件可供選擇?哪些 ERP 軟件使用體驗較好?

想找個 “免費” 的 ERP 軟件&#xff1f; 咱得知道&#xff0c;ERP 那可是涉及財務、人力、供應鏈、采購、銷售等好多方面的重要企業軟件。功能這么全&#xff0c;能免費才怪呢&#xff01;真要是有免費的&#xff0c;早就火遍大江南北&#xff0c;說不定把市場都壟斷了&…

centos-stream9系統安裝docker

如果之前安裝過docker需要刪除之前的。 sudo dnf -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 安裝yum-utils工具&#xff1a; dnf -y install yum-utils dnf-plugin…

了解cuda的統一內存

1. CUDA 6中的統一內存 在CUDA 6中&#xff0c;從Kepler GPU架構&#xff08;計算能力3.0或更高&#xff09;開始&#xff0c;在64位Windows 7、8和Linux操作系統&#xff08;內核2.6.18&#xff09;上開始支持統一內存. 從CUDA 6開始&#xff0c;NVIDIA推出了CUDA平臺歷史上…

unity 最小后監聽鍵盤輸入

當Untiy最小化后&#xff0c;游戲窗口不會立刻失去焦點&#xff0c;此時依然可以使用Input來獲取按鍵&#xff0c;但是點擊其他窗口后&#xff0c;就會失去焦點&#xff0c;此時系統會把按鍵輸入分配到其他窗口里&#xff0c;此時要用windowsAPI獲取按鍵輸入&#xff0c;應對兩…

Pytorch | 從零構建MobileNet對CIFAR10進行分類

Pytorch | 從零構建MobileNet對CIFAR10進行分類 CIFAR10數據集MobileNet設計理念網絡結構技術優勢應用領域 MobileNet結構代碼詳解結構代碼代碼詳解DepthwiseSeparableConv 類初始化方法前向傳播 forward 方法 MobileNet 類初始化方法前向傳播 forward 方法 訓練過程和測試結果…

Electronjs+Vue如何開發PC桌面客戶端(Windows,Mac,Linux)

electronjs官網 https://www.electronjs.org/zh/ Electron開發PC桌面客戶端的技術選型非常適合已經有web前端開發人員的團隊。能夠很絲滑的過渡。 Electron是什么&#xff1f; Electron是一個使用 JavaScript、HTML 和 CSS 構建桌面應用程序的框架。 嵌入 Chromium 和 Node.…

【1.排序】

排序 筆記記錄 1.排序的基本概念1.1 排序的定義 2. 插入排序2.1 直接插入排序2.2 折半插入排序2.3 希爾排序 3. 交換排序3.1 冒泡排序3.2 快速排序 4. 選擇排序4.1 簡單選擇排序4.2 堆排序 5. 歸并排序、基數排序和計數排序5.1 歸并排序4.2 基數排序4.3 計數排序 6. 各種內部排…

Linux Swap: 深入解析 mkswap, mkfs.swap, 和 swapon

文章目錄 Linux Swap: 深入解析 mkswap, mkfs.swap, 和 swapon什么是 Swap&#xff1f;主要命令介紹1. mkswap2. mkfs.swap3. swapon 創建和管理 Swap 的步驟1. 創建 Swap 分區2. 初始化 Swap3. 激活 Swap4. 持久化配置5. 查看 Swap 狀態 刪除 Swap 分區或文件1. 停用 Swap2. 刪…

取子串(指針)

#include <stdio.h> #include <string.h>char* substr(char *s, int startloc, int len) {static char result[51]; // 定義一個足夠大的靜態數組來存儲結果static char result1[] {N,U,L,L,\0};int i, j;// 檢查startloc是否在字符串的范圍內if (startloc < 1…

「Mac暢玩鴻蒙與硬件45」UI互動應用篇22 - 評分統計工具

本篇將帶你實現一個評分統計工具&#xff0c;用戶可以對多個選項進行評分。應用會實時更新每個選項的評分結果&#xff0c;并統計平均分。這一功能適合用于問卷調查或評分統計的場景。 關鍵詞 UI互動應用評分統計狀態管理數據處理多目標評分 一、功能說明 評分統計工具允許用…

類與對象的理解

面向對象中兩個重要的概念&#xff1a;類與對象 類 簡單理解&#xff0c;它指的是類型或者分類或某個模塊 比如&#xff1a;人類、動物類……&#xff1b;入公司的入職單&#xff0c;沒寫上任何人的情況下 對象 簡單理解&#xff0c;它指的具體的個體 備注&#xff1a;對…

遞歸實現指數型枚舉(遞歸)

92. 遞歸實現指數型枚舉 - AcWing題庫 每個數有選和不選兩種情況 我們把每個數看成每層&#xff0c;可以畫出一個遞歸搜索樹 葉子節點就是我們的答案 很容易寫出每dfs函數 dfs傳入一個u表示層數 當層數大于我們n時&#xff0c;去判斷每個數字的選擇情況&#xff0c;輸出被選…

Linux相關概念和易錯知識點(25)(信號原理、操作系統的原理、volatile)

目錄 1.信號的產生 &#xff08;1&#xff09;kill &#xff08;2&#xff09;raise、abort 2.對block、pending、handler表的管理 &#xff08;1&#xff09;信號集&#xff08;sigset_t&#xff09; &#xff08;2&#xff09;block表的管理 ①操作相關的函數 ②sigpr…

opencv中的色彩空間及其轉換

在 OpenCV 中&#xff0c;色彩空間&#xff08;Color Space&#xff09;指的是表示顏色的一種方式&#xff0c;或是用數學模型對顏色的表達。不同的色彩空間采用不同的方式來描述顏色的三要素&#xff08;如亮度、飽和度、色調&#xff09;&#xff0c;因此可以在不同的應用場景…

OPPO 數據分析面試題及參考答案

如何設計共享單車數據庫的各個字段? 對于共享單車的數據庫設計,首先考慮用戶相關的字段。用戶表可以包含用戶 ID,這是一個唯一標識符,用于區分不同用戶;姓名,記錄用戶的真實姓名;聯系方式,比如手機號碼,方便在出現問題時聯系用戶;注冊時間,記錄用戶何時開始使用共享…

在Ubuntu下運行QEMU仿真FreeBSD riscv64系統

在Ubuntu下運行QEMU仿真FreeBSD riscv64系統 突發奇想&#xff0c;嘗試在Ubuntu下運行QEMU仿真FreeBSD riscv64系統&#xff0c; 參考這篇文檔&#xff1a;手把手教你在QEMU上運行RISC-V Linux_qemu 運行 .bin-CSDN博客 并參考FreeBSD的Wiki&#xff1a;riscv - FreeBSD Wik…

大模型微調---Prompt-tuning微調

目錄 一、前言二、Prompt-tuning實戰2.1、下載模型到本地2.2、加載模型與數據集2.3、處理數據2.4、Prompt-tuning微調2.5、訓練參數配置2.6、開始訓練 三、模型評估四、完整訓練代碼 一、前言 Prompt-tuning通過修改輸入文本的提示&#xff08;Prompt&#xff09;來引導模型生…

Visual Studio 、 MSBuild 、 Roslyn 、 .NET Runtime、SDK Tools之間的關系

1. Visual Studio Visual Studio 是一個集成開發環境&#xff08;IDE&#xff09;&#xff0c;為開發者提供代碼編寫、調試、測試和發布等功能。它內置了 MSBuild、Roslyn 和 SDK Tools&#xff0c;并提供圖形化界面來方便開發者進行項目管理和構建。與其他組件的關系&#xf…