在Replit中配置Nix环境
前言:
在Replit中白嫖 时,一定会遇到有不能一键部署的环境,那我们如何选择自己想要的环境呢?这里需要用到Replit环境中自带的 replit.nix
文件。Nix 是什么,我们要怎么使用,下面的文章会解答凝的疑问(
准备:
其实没什么好准备的,在Replit准备一个Bash环境(理论上任意环境都行),打开仓库后,点文件最右边三个点,点显示隐藏文件,然后仓库根文件夹中会多出 .replit
replit.nix
两个文件。我们要使用 replit.nix
配置环境。
开始:
首先 Nix 是一个包管理器,就像一个软件库,我们可以用 replit.nix
直接使用 Nix 中的软件包。这里用 onedrive-vercel-index 做演示。
onedrive-vercel-index 是一个部署在 vercel 中的文件浏览程序,需要使用到 Next.js(属于vercel),我们可以在 Replit 直接创建 next.js 语言项目。
onedrive-vercel-index 还需要用到 Redis 缓存以及 pnpm包管理器。
我们浏览原始的 replit.nix
文件,查看文件结构,发现他自带node.js16,tsserver,yarn,jest。现在我们需要给他添加 redis 以及 pnpm。
打开 Nix 搜索 redis ,找到自己想要的redis包,点名字展开后,复制包名。
返回到 Replit 的 replit.nix
文件。换行后输入包名 pkgs.redis
等待 Loading Nix environment...
加载完;
转到 Shell 中启动 Redis server,可以发现已经安装好了。
同理的 pnpm 搜索,复制包名,粘贴:pkgs.nodePackages.pnpm
如果是npm包,请不要漏掉 nodePackages 而且请最好写在 pkgs.nodejs-16_x
下方,并缩进。写好程序的运行脚本,运行后,可以看到onedrive-vercel-index已成功启动并运行了。
1 | { pkgs }: { |
进阶:
以下有两个我自己写好的环境仓库,有兴趣可以参照看一下:
在 Replit 自动构建 Alist alistbuildonreplit
用到的环境有:go1.18,gcc,vite,nodejs16等
在 Replit 白嫖3G MC 服务器 mcserveronreplit
用到的环境有:jdk17,php80,python等
注意:
有部分网路类型的包,例如 ngrok,zerotier-one 需要用别的方式安装,这里暂时不讲。以及rclone,可以使用,但是不能挂载到本地。后面有空会写,如何使用AriaNg,白嫖replit的服务器网络下载。速度也是肥肠可观的。
文章备份:https://b1og.learnonly.xyz/article/01VC3T5Y2CQ65HLXTYVVAY4YIPSXNPOL6O