ubuntu安装cuda

# 更新系统组件,并重启
sudo apt update
sudo apt dist-update
sudo apt upgrade
sudo reboot
# 安装必须的gcc软件
sudo apt-get install manpages-dev
sudo apt-get update
sudo apt install build-essential
# 到nvidia的官网【https://developer.nvidia.com/cuda-downloads】
# 下载系统ubuntu 22.04对应的cuda包,也就是下面的命令
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-repo-ubuntu2204-11-7-local_11.7.0-515.43.04-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-11-7-local_11.7.0-515.43.04-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
# gds相关组件,可以酌情安装,可以参考【https://docs.nvidia.com/gpudirect-storage/release-notes/index.html】
# sudo apt-get install nvidia-gds
# 接下来可以通过Nvidia专有指令,查看系统中的GPU卡。能够成功查看到GPU卡,说明安装成功
nvidia-smi
# 配置相关环境变量
cd /etc/profile.d/
sudo vim /etc/profile.d/cuda.sh
# 将下面的记录,加入到【cuda.sh】文件中
export PATH=/usr/local/cuda-11.7/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
# 保存cuda.sh文件后,cuda.sh的默认权限即可,重启电脑即可生效全局环境变量
sudo reboot

Spring Boot 与awt一起使用注意事项

Spring Boot与Java awt一起使用的时候,注意不要将包含awt初始化的类【例如Robot】加上@service之类的注解。会导致一些自定义的属性无效。例如

// 本应该可以生效的,但是awt在Spring boot初始化时候初始化过Robot,会导致设置为true无效。
this.menuBar.setUseSystemMenuBar(true);

Spring Boot启动javafx,需要注意设置headless

SpringApplicationBuilder builder = new SpringApplicationBuilder(Demo1Application.class);
        builder.headless(false);
        ConfigurableApplicationContext context = builder.run(args);

CNC ddraw的一些特殊配制

有很多老的游戏使用的ddraw的API,在vista、win7,win10中无法被调用起来。这个时候就可以下载cnc ddraw放到游戏程序执行目录中,直接运行起来

Releases · FunkyFr3sh/cnc-ddraw (github.com)

1.3.7.0版本Note: If you use cnc-ddraw with a game that got its own windowed mode built in then make sure you disable the games own windowed mode first. If you want to play in windowed mode then start the game once in fullscreen and then press Alt+Enter to enable the cnc-ddraw windowed mode (Or modify ddraw.ini without using Alt+Enter).

4.8.0.0版本博德之门2:Added support for Baldur’s Gate 2 – Note: ‘Use 3D Acceleration’ must be -disabled- and ‘Full Screen’ must be -enabled- in BGConfig.exe

本地虚拟机安装kubesphere

参考网址:在 Linux 上以 All-in-One 模式安装 KubeSphere

1、下载kk软件

# 安装必须的软件
sudo apt-get install socat conntrack ebtables ipset
# 因为是国内,可以直接下载kk软件
wget https://kubernetes.pek3b.qingstor.com/kubekey/releases/download/v2.2.0/kubekey-v2.2.0-linux-amd64.tar.gz
# 解压
tar -xzf kubekey-v2.2.0-linux-amd64.tar.gz
chmod +x kk

2、参考官方网址进行操作

3、安装完成后,按照终端上提示进行操作

# To start using your cluster, you need to run the following as a regular user:
 mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

# Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf

ubuntu创建用户,添加sudo权限

# 这种方式添加用户,比较友好,能直接创建home目录
sudo adduser username
# 这种方式可以解决大多数情况下的sudo权限赋予(直接修改/etc/sudoers文件比较麻烦)
sudo usermod -aG sudo username

给某个用户添加docker操作权限

# 给xxx用户添加docker的组权限
sudo usermod -aG docker xxx

安装Docker engine

curl -fsSL https://get.docker.com -o get-docker.sh
# 从阿里云源站点进行安装,速度更快
sudo sh get-docker.sh Aliyun
# 之后可以通过下面的命令进行docker引擎的处理
sytemctl start/stop/restart/enable/disable docker

docker安装neo4j

例如在本地,新建一个目录【/data/neo4j-data/】
查看neo4j的docker要对外曝露的port是否被使用:

netstat -alpn | grep 7474
netstat -alpn | grep 7687

若端口已被使用,需要更换端口。确认端口未被使用,继续下面操作。
在【/data/neo4j-data/5.1.0-community】中,新建文件【docker-compose.yaml】,填写下面内容【其中部分配置,参考https://hub.docker.com/_/neo4j】,会在【/data/neo4j-data/5.1.0-community】中【自动创建一个目录data,mount到docker中】:

version: "3.6"
services:
  neo4j:
    image: neo4j:5.1.0-community
    container_name: neo4j-5.1.0-community
    restart: always
    network_mode: bridge
    ports:
    - "7474:7474"
    - "7687:7687"
    environment:
    - TZ=Asia/Shanghai
    volumes:
      - "./data:/data:rw"

执行下面操作,启动docker镜像

cd /data/neo4j-data/5.1.0-community
# 根据配置,启动docker镜像
docker-compose -f ./docker-compose.yaml up -d
# 不更改配置,仅重启docker镜像
docker-compose -f ./docker-compose.yaml restart
docker-compose -f ./docker-compose.yaml start
docker-compose -f ./docker-compose.yaml stop
# 谨慎操作,该命令会查看所有日志,不会动态显示最新日志
docker-compose -f ./docker-compose.yaml logs
# 谨慎操作,该命令会查看所有日志,并且动态显示最新日志
docker-compose -f ./docker-compose.yaml logs -f
# 该命令会查看日志最后5行,并且动态显示最新的日志
docker-compose -f ./docker-compose.yaml logs -f --tail=5
# 该命令会进入docker内部,进行相关查看
docker-compose -f ./docker-compose.yaml exec neo4j /bin/bash

启动之后,可以通过【http://127.0.0.1:7474】来进行配置访问

利用pk8,x509.pem转成jks签名文件

把pk8 跟 x509放到一个文件夹,并使用cd命令进入文件夹

openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
# 其中android 为密码, Androiddebugkey为别名
openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:android -name androiddebugkey
keytool -importkeystore -deststorepass android -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass android

生成的jks,如果在android studio中gradle编译报错algorithm hmacpbesha256 not available,说明本地的jdk没有包含该算法包。

该算法包在jdk11.0.12中加入,所以将gradle使用的jdk升级到11.0.12之后的版本即可。

mac已安装xcode但是某些应用提示未安装的解决办法

提示xcode没有安装

#显示“未能找到金属编译器安装的Xcode。请安装Xcode并运行Xcode.app来接受协议,或确保激活的开发者目录设为当前的Xcode安装(使用xcode-select)

接下来只需要确认安装步骤就可以了
确保 Xcode 的安装路径是 【/Applications/Xcode.app】

执行 xcode-select -p 看一下输出,如果不是 /Applications/Xcode.app/Contents/Developer,那么再执行

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

转移gitlab仓库到gerrit仓库

由于gerrit仓库可以配置权限,所以会比gitlab仓库多一些分支。

#1. git clone Gerrit空仓库
git clone "http://xxx@gerrit.xxxx.com:80/a/reponame"

#2. git remote set-url gitlab_url (旧仓库)
git remote set-url origin "https://xxx@git-server.xxx.ai/reponame.git"

#3. 拉取所有分支到本地
git fetch
git checkout master
git pull --allow-unrelated-histories


setopt interactivecomments
git branch -r > ../branch.txt
let count=0
while read br;
do
 let count=$count+1
 # echo "$count--$br"
 if [ $count -eq 1 ];then
  continue;
 fi
 br=`echo $br|sed -r "s/.*origin\/(.*)$/\1/g"`
 echo "==current branch : $br"
 git checkout "$br"
done < ../branch.txt

#4. git pull –all –allow-unrelated-histories#指定允许拉取不相关的代码过来Merge, 有多个分支时,要把多个分支都拉下来,注意用户名: git config username#注释: git pull = git fetch + git merge
git pull --all --allow-unrelated-historie

#5. git remote set-url Gerrit_url#(指定新 Gerrit 代码库的地址)
git remote set-url origin "http://xxx@gerrit.xxxx.com:80/a/reponame"

#6. git push -u origin –all#git push -u origin –tags#把代码推送给 Gerrit 仓库
git push --all ; git push --tags