1月
12
对于 github 这类服务,一个 ssh-key 只允许添加一次。也就是你在 a 账号添加了 ssh-key,再想用这个 ssh-key 添加到 b 账号是不行的。这个时候,就需要在该 ssh-key 的电脑上生成新的 ssh-key 来满足多账号的需求。
那么问题也来了,这就需要每次都要指定 git 项目对应的 ssh-key。方法自然是有的。方法有好几个,只用最方便的吧。
生成 ssh-key
https://blog.vini123.com/1070
指定 ssh-key
假如按照上边的操作,生成了 ssh-key,也将其公钥添加到配置中了。那么只需要指定当前所使用的 ssh-key 就可以了。
# 添加
ssh-add ~/.ssh/ssh-key-私钥
# 查看
ssh-add -l
# 删除
ssh-add -d ~/.ssh/ssh-key-私钥
这样就可以使用 git 来操作代码了。 clone push pull 都是可以的。
不过,这个电脑重启后,就失效了。还是会使用默认的 ssh-key
ssh-add 错误
执行 ssh-add xxx
的时候也许不是顺利的。可能会有下边的报错。
Could not open a connection to your authentication agent.
。
解决:
先看看 ssh 代理是否在运行。 ssh-agent -s
。如果没运行,启动它。如果运行了,看 SSH_AUTH_SOCK 环境变量是否存在。echo $SSH_AUTH_SOCK
如果出现上边那个错误,走到这里了,应该是不存在的,也就是输出为空格。那么重新启动 ssh 代理。再回过去检查。
eval "$(ssh-agent -s)"
12月
13
12月
13
通过 git 的方式,很难下载到 huggingface。于是就网上找方法,还真找到了方法。
https://zhuanlan.zhihu.com/p/663712983
上边链接总结了多种方法。这里,只选他说的最好用的方法,使用 huggingface-cli。不做选择其他选择。这里是尝试快速下载过模型。
准备
- 科学上网
- 该有的 python 环境
操作
以下载 https://huggingface.co/mlc-ai/mlc-chat-Llama-2-7b-chat-hf-q4f16_1/tree/main 模型为例。
打开终端
# 安装 huggingface-cli
pip install -U huggingface_hub
# 使用
# --resume-download 要下载的模型名
# --local-dir 下载保存的位置
huggingface-cli download --resume-download mlc-ai/mlc-chat-Llama-2-7b-chat-hf-q4f16_1 --local-dir mlc
好了,仅仅这样就好了。下载速度还是很快的,也有进度条。
win 的终端终究没 mac 的 iterm2 好用。不过 win 的进步速度比 mac 快多了。感觉 mac 几乎在吃老本。在多显示器的快捷键操作上,win 的体验却要比 mac 好。仅有一点 win 比 mac 差,就是多显示器中,某个显示器内的窗口切换。 win 会将所有的显示器都切换了,mac 会针对选择的显示器进行切换。
使用 hf_transfer
hf_transfer 依附并兼容 huggingface-cli,是 hugging face 官方专门为提高下载速度基于 Rust 开发的一个模块
安装: pip install -U hf-transfer
开启(linux/mac): export HF_HUB_ENABLE_HF_TRANSFER = 1
开启(win): $env:HF_HUB_ENABLE_HF_TRANSFER = 1
使用: huggingface-cli download --resume-download mlc-ai/mlc-chat-Llama-2-7b-chat-hf-q4f16_1 --local-dir mlc
12月
12
12月
04
记录一些问题
- 通过 docker-comppse.yml 配置多个服务(有 php,nginx,mysql 等),并运行。如果在 php 的 bash 中访问使用 nginx 或 mysql 这些服务呢。
当前,在项目中,无法通过 127.0.0.1 来连接 mysql 容器中的 mysql。可以通过修改 手动 修改 ip 的方式来搞定。
# 查看当前容器的 ip
ip addr
# php 和其他容器公用宿主机的 ip 修改项目中连接 mysql 的 ip 得到
172.19.0.1
docker php 安装 mysql_pdo 扩展
docker exec -it xxx bash
# 安装 pdo pdo_mysql 扩展
docker-php-ext-install pdo pdo_mysql
# 安装 mysqli 扩展
docker-php-ext-install mysqli
# 退出 重启 (xxx 容器 id)
exit
docker restart xxx
bash: ip: command not found
# 进入容器中
apt-get update
apt-get install -y iproute2
# 这个时候就有了
ip addr show
文章
https://www.jianshu.com/p/2217cfed29d7
https://blog.csdn.net/longfeng995/article/details/130704949
https://ricen.eu.org/index.php?control=doc&view=detail&id=326&i=1
12月
01
常见命令一
# docker 信息
docker info
docker version
# 查看镜像
docker images
# 运行一个镜像
# --name 别名
# -p 端口映射( 宿主机端口:容器服务端口 )
# -d 以守护进程的方式运行(不加就会卡住占用窗口)
docker run --name my-nginx -d -p 80:80 nginx
# 查看活着的容器
docker ps
# 查看活所有容器
docker ps -a
# 停止容器
docker stop xxx
# 启动一个关闭的容器
docker start xxx
# 查看容器状态
docker stats
# 进入容器(以bash的形式进行交互模式)
docker exec -it xxx bash
# 退出容器(容器依然在运行)
exit
# 重启容器 (xxx 为容器 id 的前三个字符即可)
docker restart xxx
# 删除容器 (删除前需先停止)
docker rm xxx
# 删除镜像
docker rmi nginx
继续阅读
11月
27
将代码给到客户端的时候,有时候不想让源码被对方看到。就得使用加密的方式。这里尝试 Laravel Source Encrypter
https://github.com/SiavashBamshadnia/Laravel-Source-Encrypter
安装配置扩展
- 先去下载
phpbolt
扩展。对方提供了到 php8.2 的扩展,支持 win、linux、mac 的。
https://phpbolt.com/download-phpbolt/
打开上边的地址,输入您的 email 以及用户名,点击提交。他们会把文件下载链接发到邮箱里。下载出来就好。
- 安装 - 查看扩展的存放位置。 这里先尝试在 homestead 环境下安装。
# 查看 php 版本,了解当前的 php 版本信息
php -v
# 查看扩展的位置
php -i | grep extension_dir
# 这里是这样的
extension_dir => /usr/lib/php/20220829 => /usr/lib/php/20220829
sqlite3.extension_dir => no value => no value
- 安装 - 将 phpbolt.so 文件复制到该目录下。
# 在本地,将扩展文件放到映射的 code 目录下。方便移动。
cd /usr/lib/php/20220829
sudo mv ~/code/bolt.so ./
- 修改 php.ini 文件,重新启动。
php -i |grep php.ini
# 输出
# Loaded Configuration File => /etc/php/8.2/cli/php.ini
# vim 打开 php.ini 文件
sudo vim /etc/php/8.2/cli/php.ini
# 移动到末尾
GG
# i 进入编辑模式,加入下边的配置
extension=bolt.so
# 保存退出
:wq
# 重启 php-fpm
sudo /etc/init.d/php8.2-fpm restart
# 查看扩展
php -m | grep bolt
通过 php -m | grep bolt
的确是可以看见 bolt 扩展的存在。但是呢,如果通过 http 服务,访问获取 bolt,是没有看到 bolt 的信息的。这个时候,使用 bolt 的函数就会报错。如下。
Call to undefined function bolt_decrypt() in
其实, bolt 的扩展还没完。我们继续配置。
cd /etc/php/8.2/fpm/conf.d
sudo vim 20-bolt.ini
# 添加一下内容,保存退出
extension=bolt.so
# 重启
sudo /etc/init.d/php8.2-fpm restart
再看看 phpinfo
信息,这个时候就有了
安装和使用 Laravel-Source-Encrypter
扩展装好了,那么就要用在项目中。这里我新建一个新的 laravel 项目来搞。当前 laravel 版本是 laravel 10, php 版本是 8.2 。
composer create-project laravel/laravel bolt.com --prefer-dist
cd bolt.com
项目创建好了之后,就按照 https://github.com/SiavashBamshadnia/Laravel-Source-Encrypter 来就可以了。
最后,将打包好的文件(默认 encrypted 下的)替换掉之前的文件。
这样就可以了。
感觉还是蛮方便好用的。
加密后的代码,如下边这样的。
11月
25
将 web 项目打包成桌面应用程序是一种常见的方式。用到的工具有 electron 和 tauri 等。这里使用 tauri。
准备工作
- 安装配置 tarui 环境。 https://tauri.app/zh-cn/v1/guides/getting-started/prerequisites
- 准备一个 web 项目。
tauri 是可以从零开始创建项目,然后去完善项目的。但是,有的时候,项目已经完成了,这个时候,就需要在项目中加入 tauri。然后再构建打包了。
继续阅读