Update 2 files

- /_posts/2024-02-03-1panel.md
- /_posts/2024-01-20-renpy.md
pipelines/1734480055
mayx 2024-02-03 14:04:27 +00:00
parent 74cb7d028c
commit 2aad4be863
2 changed files with 24 additions and 1 deletions

View File

@ -15,7 +15,7 @@ tags: [Apple, macOS, 视觉小说]
## 使用Intel macOS版的RenPyViewer
其实在我发现iOS版的RenpyViewer不能运行一部分Ren'Py游戏之后我又去搜了一下在知乎上找到了iOS版的RenPyViewer作者发的文章介绍了[macOS如何游玩Ren'Py引擎游戏](https://zhuanlan.zhihu.com/p/477696534)其中包含了他为macOS做的RenPyViewer不过我下载看了一下是Intel版的……不过也许这个里面用的引擎更新一点一部分iOS版不能玩的这个版本就可以玩。
## 使用终端运行
但毕竟前面两个方法内置的引擎版本是固定的能玩的游戏也很少看来得想个通用的办法毕竟Ren'Py游戏在发行的时候是支持macOS的啊。所以又看了看Ren'Py开发的游戏发行之后一般在游戏文件夹里有一个.sh的文件看起来应该是给Linux系统运行使用的但是macOS也可以运行.sh的文件啊所以我就直接在终端运行了它结果macOS和Linux不一样的地方是所有从网上下载的可执行文件都必须签名不然就会报移到废纸篓之类的错关于这个问题我看网上说的好像是执行`xattr -r -d com.apple.quarantine <path>`就可以,不过后来我也忘了是出什么问题,最后是手动一个一个给每个可执行文件加的权限,最终倒是也运行起来了。
但毕竟前面两个方法内置的引擎版本是固定的能玩的游戏也很少看来得想个通用的办法毕竟Ren'Py游戏在发行的时候是支持macOS的啊。所以又看了看Ren'Py开发的游戏发行之后一般在游戏文件夹里有一个.sh的文件看起来应该是给Linux系统运行使用的但是macOS也可以运行.sh的文件啊所以我就直接在终端运行了它结果macOS和Linux不一样的地方是所有从网上下载的可执行文件都必须签名不然就会报移到废纸篓之类的错关于这个问题我看网上说的好像是执行`xattr -r -d com.apple.quarantine <path>`就可以,不过后来我也忘了是出什么问题,最后是手动一个一个给每个可执行文件加的权限,最终倒是也运行起来了。
## 手动修改.app文件
不过每次运行要是用终端那不是很麻烦嘛,另外既然游戏里面明明有.app的文件为什么会运行不了呢后来我看了看发现Contents/MacOS文件夹下的文件并没有可执行权限我猜可能是和这个有关系加了可执行权限之后倒是没有报应用程序无法打开的错了但是还是不能运行点开之后在Dock栏跳了几下就消失了……然后我就去看了下那个可执行文件发现就是一个Shell脚本后面的版本换成可执行文件了里面定义了几个ROOT变量一个是和脚本同级的目录一个是和.app同级的目录还有一个是Contents/Resources/autorun目录这么看来正常情况下因为游戏是跨平台的游戏肯定不会在.app里面在外面的话……看现在macOS权限管的这么严格让它读取.app外面的文件估计不太行肯定只能读取.app里面的文件至于Intel macOS版的RenPyViewer我看了一下好像原理差不多是把游戏目录用软链接映射过去的所以才能在不直接获取.app外面的文件下运行。之后我又参考了一下其他直接在macOS发行的Ren'Py游戏感觉也差不多。所以解决方法也很简单要么把游戏文件放到Contents/Resources/autorun目录下要么做个软链接放过去我觉得单个.app管理起来会方便一些所以就直接把游戏文件全部移动进去了。试了一下总算可以正常运行了。而且多试了几个基本上都没有问题。
但有些Ren'Py游戏连.app都没提供我不知道SDK默认生成分发版的时候会不会包含macOS上用的.app文件不过也有可能是发行的时候只针对Windows所以删掉了对于一些非官方汉化版很有可能是汉化的人给删掉了。对于这种情况可以先搞清楚这个游戏使用的Ren'Py版本然后去Ren'Py官网下载对应版本的SDK把SDK中的renpy.app复制出来然后按照上面的方法把游戏拷进去就可以正常运行了。

View File

@ -0,0 +1,23 @@
---
layout: post
title: 如何离线安装1Panel
tags: [离线, 1Panel]
---
Go写的程序感觉离线使用还挺方便的<!--more-->
# 起因
为了更好的管理服务器我之前用过几种面板比如宝塔小皮appnode还有[1Panel](https://github.com/1Panel-dev/1Panel)之类的,之所以用面板主要还是觉得这种用起来方便一些。有些脑子不合适的人看不起使用面板的人,他们可能用了比如软件包安装,或者源码编译、容器等等,结果一顿操作猛如虎,结果配置还是安装默认的,连调优都没做🤣。
总之最近正好需要在不能连接互联网的地方安装LEMP的环境虽然现在的面板很多但是似乎很少有面板支持离线安装。宝塔好像有付费的离线安装服务但是我首先不信任宝塔另外怎么可能给他们付钱呢😆1Panel虽然官方不支持离线安装但是社区中有离线安装的方法不过好像不能使用网站管理的功能……当然经过我的测试其实是有办法可以使用网站管理的功能所以分享一下方法。
# 离线安装1Panel的方法
一般想离线安装的话搜到的文章应该就是[这篇文章](https://bbs.fit2cloud.com/t/topic/386)了吧,看起来操作有一点点复杂,不过评论里有个人整了个可以离线安装的[项目](https://github.com/wojiushixiaobai/1Panel-installer)使用起来非常简单连docker也一起安装了。只是使用的时候稍微有一点点坑就是它的“--install-dir”参数默认是“/opt/1panel”但是安装的时候会在这个目录里再建一个1panel文件夹所以在使用的时候最好手动把参数设置为“--install-dir /opt”。
安装没什么问题不过应用商店是空的什么软件都安装不了我在社区论坛里找了一下好像可以把在互联网端1Panel实例中“/opt/1panel/resource/apps/remote”中的文件拷到离线设备中的“/opt/1panel/resource/apps/local”下然后点更新就可以了我试了一下确实可以把镜像导出来再导入到离线设备直接安装可能会报错但是重建一下容器就能正常启动了。虽然容器是启动了但是面板好像没识别到还是不能管理而且应用的文件被放在了“/opt/1panel/apps/local”目录下就算能识别到文件路径也是错的。看来得让面板认为导入的程序不是本地安装的而是在线安装的。
# 离线安装1Panel中应用的方法
我在网上怎么搜,都没有找到现成的解决方法,看来只能我自己研究了😂。我找了一下,面板安装目录下有一个“/opt/1panel/db/1Panel.db”文件应该是面板的数据库我用sqlite3客户端打开看了一下里面的apps表中可以看到应用被导入了但是key在前面都被加了local比如openresty变成了localopenresty我对比了一下互联网端的数据库除了这一处外还有resource字段的内容也从remote变成了local。既然是这里有不一样的地方那就把它改成一样的呗另外这里的字段名既然叫resource那么肯定和那个目录也有关系所以就得把“/opt/1panel/resource/apps/local”文件夹下的内容再全部移动到“/opt/1panel/resource/apps/remote”中把数据库上传然后重启离线环境中的1Panel也能正常识别了而且安装后网站标签页也能正常创建网站之类的操作了。
Nginxopenresty和MySQL这样安装都没啥问题但是PHP出现了点问题因为1Panel的PHP会在线下载扩展来构建镜像的不是直接使用镜像创建的容器所以安装会报错。不过既然能看到数据库我发现有个runtimes表记录了PHP的状态那么我把状态改成normal就可以了吧试了一下还真行改完上传然后重新导入容器PHP也正常了。另外需要注意的是从互联网端导出的镜像名字和版本必须和离线端一样不然可能识别不到至于扩展啥的在互联网端选择好就可以了离线端不需要修改。
所有操作完成之后试了试创建网站以及和PHP的连接之类的都可以正常使用了就可以在内网环境下完全发挥1Panel的能力了。
# 感想
无论是Docker还是1Panel能这么简单的在离线环境下安装我想可能是因为它是Go写的程序吧能无依赖静态编译的程序在没网的情况下还是方便啊……另外就是Docker果然也是离线使用的利器想安什么在互联网准备好直接拿到离线端就能用真是方便啊。