nightmare-space / vscode_for_android

Implementation of the VS Code editor natively on Android.
BSD 3-Clause "New" or "Revised" License
762 stars 51 forks source link

在 Flutter 中对 `code-server` 进行解压 #6

Closed kmod-midori closed 11 months ago

kmod-midori commented 2 years ago

pub 使用了这样的逻辑进行解压,其中对软链接和硬链接都进行了相应的处理(符号链接在 Android 当中似乎是好的),或许可以参考其中的逻辑,使用 Dart 而非 tar 进行解压,以免去在电脑上重新打包的步骤?

我目前没有可用的 Flutter 环境,所以暂时无法PR,但个人认为可以复制过来试试

mengyanshou commented 2 years ago

不错的建议,这个可以解决另外的问题,我觉得目前code server更新并不是很快,我应该可以及时去处理一个新的包,空了我看下dart有没有支持tar解压的包

mengyanshou commented 2 years ago

archive包支持tar

kmod-midori commented 2 years ago

pub 是把 https://github.com/simolus3/tar/ 这个包复制到内部进行使用的

不过我确实非常好奇proot的liny2symlink功能为啥没生效,不过现在这样也能用,问题倒是不算大

mengyanshou commented 2 years ago

liny2symlink是干嘛的哇

kmod-midori commented 2 years ago

在底层用符号链接模拟硬链接,使得proot环境内硬链接可以正常使用,但是好像不是很好使...

mengyanshou commented 2 years ago

我其实对硬链接有些理解不到,不太清除与软连接的区别,不过其实在解压的时候,判断是硬链接,再用软连接替代应该不影响最后server的运行吧,我猜

kmod-midori commented 2 years ago

tar --hard-dereference -zcvhf 这个其实把所有的链接都转换成文件了(不管是硬还是软),因为从code-server的视角目录里面的东西基本上是只读的,所以怎么样都无所谓

mengyanshou commented 2 years ago

好嘞~

mengyanshou commented 11 months ago

这个已经完成了,我将关闭这个issue