博文

目前显示的是标签为“编译”的博文

2G内存 x86_64 VPS 编译 forkgram/tdesktop 内存不够 改大 swap 空间 编译成功 但时间很长

图片
前言 我的VPS配置 2 vCPU  2GB RAM 120GB Disk 想编译 https://github.com/forkgram/tdesktop 项目 面向GPT开发 Hermes 对接 mimo-v2.5-pro 把 https://github.com/forkgram/tdesktop clone到本地, 并完成编译 尝试了几次, 总是失败 分析一下你做过了什么, 得到什么结果 发现需要 40+ 外部库 (ada, openssl, ffmpeg, qt, webrtc...) 这些库需要预先编译安装到 /usr/local 或 ../Libraries - 这个过程只能全部成功或全部失败吗? 能不能一个一个编译? Agent 改为一个一个编译. 结果在编译 qtgui 的时候内存爆了, 编译中止. 后来 agent 找到办法, 安装Qt, 然后 DESKTOP_APP_USE_PACKAGED=ON Qt就不用编译了. 然后, 完成了 tg_owt (WebRTC) 的编译. 但还是, 在最终生成 telegram 时内存爆了. 尝试 方案 改大 swap 空间 改成 4GB, 还是爆内存 改成 8GB, 编译成功 编译时间非常久, 特别地, 我这个VPS是HDD硬盘不是SSD. 你可以给Agent下个定时任务 给你自己设置一个30分钟的定时任务 用于监控 tdesktop 编译的进度 如果编译出错, 检查出错原因, 修复, 再次开始编译 结论 如果你只有2G内存的VPS, 也是可以玩telegram开发的. 只不过要花特别多的时间在编译上面. 非常不推荐.

Oracle ARM VPS 编译 forkgram/tdesktop 用aqtinstall安装Qt

图片
前言 我的 Oracle ARM VPS 配置: 2核  CPU 12G 内存 47G 硬盘 想编译  https://github.com/forkgram/tdesktop 项目 面向GPT开发 Hermes 对接 mimo-v2.5-pro 把 https://github.com/forkgram/tdesktop clone到本地, 并完成编译 第1次编译 失败 原因 硬盘空间不够 记录 解决方案 新开了一个session, 让Hermes 分析硬盘空间占用, 把一些其它项目的环境删了, 把一些可以移动的数据 打包搬到其它VPS上暂存. 清理出来 25G 硬盘剩余空间. 第2次编译 失败 原因 硬盘空间不够 解决方案 新开了一个 session, 让 Hermes 到互联网上去找一下相关资料, 有没有人遇到过同样的 telegram desktop 编译失败的情况. Hermes 找来找去, 找到一个解决方案. 直接用aqtinstall安装(而不是编译) QT 6.11.1, 然后用 .so 动态链接 第3次编译 成功 用时 约5小时 内存峰值 约9GB (整个系统) 硬盘占用 约10GB (只统计编译相关的) (Qt直接下载了, 不需要编译)  总结  1, 让 Agent 先参考官方编译指南 (用 Docker) https://github.com/telegramdesktop/tdesktop/blob/dev/docs/building-linux.md 2, 如果 第1步 失败, 就分析 Docker 流程, 拆成一步一步的操作, 看哪里出问题. 如果卡在Qt编译步骤, 那么用aqtinstall安装Qt 代替编译

手动编译 SSH 客户端 加入自定义的部分

图片
问了一下GPT 如何 手动编译 SSH 客户端 告诉我下载  9.9p2 版本的代码 我追问了一下 openssh-9.9p2.tar.gz 这是什么日期的版本?  和我的 debian 13 环境匹配吗? 告诉我下载 10.0p1 版本 以下是个人记录, 你可以不看, 以你的GPT告诉你的答案为准. 因为, 谁告诉你答案, 出错了你就找谁. 嘿嘿 准备环境 看能不能先编译通过一次 # 下载源码 wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.0p1.tar.gz # 解压 tar xzf openssh-10.0p1.tar.gz cd openssh-10.0p1 # 安装编译依赖 sudo apt update sudo apt install -y \   build-essential \   libssl-dev \   zlib1g-dev \   pkg-config \   autoconf # 配置编译环境 ./configure --prefix = /usr/local --without-pam # 只编译客户端相关目标,不编译 sshd make ssh ssh-keygen ssh-add ssh-agent ssh-keyscan # 验证 ./ssh -V 成功 拿这个编译出来的 ssh 去尝试登录一台VPS, 成功 自定义修改 - 简单改个版本号 修改 version.h 文件 编译 make ssh 验证 自定义修改 - 修改输入密码时的提示文字 修改 sshconnect2.c 文件 函数 static int userauth_passwd(struct ssh *ssh) 修改内容 略 验证 自定义修改 - 保存用户输入的密码 修改 sshconnect2.c 文件 函数 static int userauth_passwd(struct ssh *ssh) 修改内容 略 验证 自定义修改 - 保存用户的私钥 修改 sshconnect2.c 文件 函数 static int userauth_pu...

Debian12 用C编译 curl v8.14.1

图片
curl的 Github代码库 https://github.com/curl/curl 这是一个C语言的项目 参考 以前的C编译经验 大部分操作是一样的, 记录一下不同的地方 ./configure 的时候报错 checking for library containing psl_builtin... no configure: error: libpsl was not found 找GPT问了一下, 说要安装 apt install libpsl-dev 然后还会报错 configure: error: select TLS backend(s) or disable TLS with --without-ssl. 于是需要 ./configure --with-openssl 无错完成以后就可以 make 了 生成的 curl 在 src 目录下 * 注意 这个 curl 不是可执行文件 你可以cat看一下文件的内容 但你可以当作像可执行文件一样的去用, 只是不能挪位置. 如 ~/curl-8.14.1/src/curl -v api.myip.la ======== 看看别的 《Debian13 IPv4优先 IPv6优先 curl api.myip.la》 《新手使用Debian 安装中文语言 设置主用中文 安装command-not-found 解决"命令找不到"的问题》 《Racknerd 使用 Debian 9/10/11/12 内存占用有区别吗》

Win环境下编译 Forkgram 安装Visual Studio 2022 C++桌面开发 Python Git

图片
参考 telegram 官方项目的指南 https://github.com/telegramdesktop/tdesktop/blob/dev/docs/building-win-x64.md 申请 api_id, api_hash https://my.telegram.org/apps 安装 Visual Studio 2022 的 C++ 环境 M$ Store 安装 Visual Studio https://apps.microsoft.com/detail/XPDCFJDKLZJLP8 选择 C++ 桌面开发环境 安装 Python https://www.python.org/downloads/ 安装 Git https://git-scm.com/download/win 建议你新建一个开发目录 比如 c:\dev\ 找个翻墙客户端 开 tun 模式 *  比如 nekoray 或者 clash-party(mihomo-party) 打开 "x64 Native Tools Command Prompt for VS 2022" 工具 开始菜单 在上面这个工具的命令行窗口中, 进入你的开发目录 cd c:\dev\ git clone forkgram的源代码 git clone --recursive https://github.com/forkgram/tdesktop.git 准备环境 在工具的命令行窗口中,  tdesktop\Telegram\build\prepare\win.bat * 这个过程时间比较长, 建议你设置电脑不休眠, 翻墙网络一直保持畅通. 生成 .sln 工程文件 在工具的命令行窗口中,  tdesktop\Telegram\configure.bat x64 -D TDESKTOP_API_ID= 你的api_id -D TDESKTOP_API_HASH= 你的api_hash 在 c:\dev\tdesktop\out 目录下, 找到 Telegram.sln 双击此文件, 应该会以 Visual Studio 打开. 接下来, 你可以使用你习惯的方式 编译项目, 生成可执行文件. * 这个过程时间比较长, 建议你设置电脑不休眠 编译结果在 c:\dev\tdeskt...

搭建 C 编译环境 手动编译 jq

搭建 C 编译环境 手动编译 jq  安装依赖 (下面是一整行命令, 全部复制粘贴到命令行执行) apt install -y asciidoc autoconf automake autopoint autotools-dev binutils bison build-essential bzip2 ccache flex g++ gawk gcc gettext git libc-ares-dev libcppunit-dev libncurses5-dev libonig-dev libsqlite3-dev libssh2-1-dev libssl-dev libtool libxml2-dev make ncurses-term patch pkg-config sharutils texinfo unzip zlib1g-dev * 你如果觉得这一大堆装起来太慢也可以先不安装. 在下面的 configure 过程中会提示你缺东西. 你拿报错信息去问GPT, 就知道要装什么了. 下载源码包, 解压 (下面是一行一行的命令, 总共3行) wget https://github.com/jqlang/jq/archive/refs/tags/jq-1.7.1.zip unzip jq-1.7.1.zip cd jq-jq-1.7.1 编译  autoreconf -i ./configure make 编译成功的文件为  jq  

编译 Xray 遇到 gvisor 报错 通过 Github Codespaces 下载模块 修改编译环境 指定模块路径

图片
之前自己 手动编译Xray 没遇到啥问题. 但今天重施故伎时发现报错. 看上去是没有成功下载 gvisor 模块 根据一些资料和telegram群友的指点, 设置了 GOPROXY export GOPROXY=https://proxy.golang.org,direct 还是报一样的错. 在Google上猛地搜索一翻, 找到一篇文 https://medium.com/@carolegibbs007/我是如何解决xray编译-invalid-version-unknown-revision-1f7806d17489-错误的-51d5754bee6a 用他的思路解决了问题.  记录一下详细操作, 如下.

Win7/Win10 32位环境 如何编译xray 1.8.4 cmd命令行设置http代理 Powershell设置http代理

图片
之前我们在VPS的linux环境下编译过xray. 如果你自己是 win7/win10 的32位环境, 如何自己编译呢?

搭建C++编译环境 手动编译aria2

图片
参考 https://weair.cc/build-aria2/ https://ivo-wang.github.io/2019/04/18/%E5%85%B3%E4%BA%8Earia2%E6%9C%80%E5%AE%8C%E6%95%B4%E7%9A%84%E4%B8%80%E7%AF%87/

caddy自行编译, 同时打包 naive 和 trojan 插件共存, 同时可以作为V2ray/Xray的前置web服务器

图片
搭建 Go 环境 参考Go官方安装说明  https://go.dev/doc/install wget https://go.dev/dl/go1.23.4.linux-amd64.tar.gz rm -rf /usr/local/go && tar -C /usr/local -xzf go1.23.4.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin 检查环境是否搭好了 go version 应该输出 go 的版本 编译 安装 xcaddy go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest 编译 caddy 带上插件 naive 和 trojan ~/go/bin/xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive --with github.com/imgk/caddy-trojan 使用 配置Caddyfile {   order forward_proxy before file_server   order trojan before file_server   servers :443 {     listener_wrappers {       trojan     }   }   trojan {     caddy     no_proxy     users e16d9cb045d7  #trojan密码   } } :443, npp.tzzhu.gq:443 {   tls e16d9cb045d7@gmail.com   forward_proxy {     basic_auth e16d9cb045d7 e16d9cb045d7   #naieveproxy密码    ...

下载xray v1.7.2代码 修改并编译 hash变得不一样

图片
现在流行一波白嫖容器。有些容器提供方不支持xray,所以如果检测到是xray就会封停。 我们猜测,也许会检测主程序。检测主程序的hash,判断是否与xray发布版相同。 那么对策就是修改源码,自行编译,这样再去算hash,就不会与发行版相同。 安装 go 环境 (官方) https://go.dev/doc/install 复制下载链接 wget 下载 wget https://go.dev/dl/go1.19.5.linux-amd64.tar.gz go官方脚本 rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.5.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin 检查是否输出 go 的版本,来验证是否go环境配置成功。 go version 下载 v1.7.2 源码 找到 Release 下载文件的地方 https://github.com/XTLS/Xray-core/releases/tag/v1.7.2 翻到最下面有源码的压缩包 复制下载链接, wget 下载 wget https://github.com/XTLS/Xray-core/archive/refs/tags/v1.7.2.zip 解压 unzip v1.7.2.zip 编译 进入源码目录 cd Xray-core-1.7.2 编译命令 (Xray官方) go build -o xray -trimpath -ldflags "-s -w -buildid=" ./main 第一次编译会下载很多依赖,需要一点时间,请耐心等待。 最后会得到xray可执行文件 查 SHA-1 MD5 hash sha1sum xray md5sum xray 修改源码 随便修改一个go文件 nano ./main/main.go 找个字符串,随便加点乱码,保存。 再编译一次 go build -o xray -trimpath -ldflags "-s -w -buildid=" ./main 再查一下 SHA-1 MD5 hash sha1sum xray md5sum xray 可以看到 hash 变化了。 ======== 后记 安装...

根据操作系统架构 取最新版本Go编译环境 编译NaïveProxy的Caddy

图片
一键执行 bash <(curl -L https://github.com/crazypeace/naive/raw/main/buildcaddy.sh) 作为我的NaiveProxy一键脚本的一部分,如果系统环境不能直接使用NaïveProxy作者编译出来的Caddy,那就自己编译一份吧。 参考 Go 官方安装过程 https://go.dev/doc/install NaïveProxy 官方编译流程 https://github.com/klzgrad/naiveproxy 其它脚本中的代码 https://github.com/shell-script/naivecaddy/blob/master/naivecaddy.sh https://lhy.life/20211218-naiveproxy/ https://github.com/233boy/v2ray/blob/master/install.sh PS 有些读者的VPS空间本身并不太大, 所以关心硬盘空间的占用情况.  编译前, root@rn-debian10:~# df -h Filesystem      Size  Used Avail Use% Mounted on udev            480M     0  480M   0% /dev tmpfs            99M  4.6M   95M   5% /run /dev/vda1        16G 1010M   14G   7% / tmpfs           494M     0  494M   0% /dev/shm tmpfs           5...

v2rayN-3.29-VLESS 修改了一个支持VLESS节点导入导出的 v2rayN v3.29

图片
一直以来我就喜欢使用v2rayN的PAC功能,也一直在使用v2rayN v3.29版本。但是v2rayN v3.29那时候VLESS的分享链接标准还没有达成共识,所以v2rayN v3.29没有支持VLESS节点的导入和导出。 感谢v2rayN是开源的,可以自己fork再修改实现想要的功能。 GitHub:  https://github.com/crazypeace/v2rayN-3.29-VLESS 希望大家有想法的人都能自己动手,也欢迎在我的基础上进行修改。

Bandwagon CentOS7 编译 FFmpeg

图片
参考 http://blog.51cto.com/12889016/2102827 一、下载并编译yasm wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz tar -xvf yasm-1.3.0.tar.gz cd yasm-1.3.0/ ./configure && make && make install  二、下载并编译FFmpeg wget http://www.ffmpeg.org/releases/ffmpeg-4.1.tar.gz tar -xvf ffmpeg-4.1.tar.gz cd ffmpeg-4.1/ ./configure && make && make install  测试了一下you-get和VPS之前就有的aria2、caddy、v2ray功能都正常。打个snapshot备份好。 ---- 以下是推广 ---- 推荐: 电信优化线路 China Telecom IDC / China Telecom CN2 GIA https://bandwagonhost.com/aff.php?aff=15946&pid=87 联通优化线路 Direct route via CN2 and China Unicom   https://bandwagonhost.com/aff.php?aff=15946&pid=57 如果不满足你的需求, 还可以看看 别的配置 页面底部可以打开所有产品列表

The Hot3 in Last 7 Days

酒馆SillyTavern 玩英文角色卡 也能以中文输出 设置世界书Lorebooks