{"id":20662615,"url":"https://github.com/system233/linglong-tools","last_synced_at":"2026-04-24T13:01:27.325Z","repository":{"id":248519908,"uuid":"828253310","full_name":"System233/linglong-tools","owner":"System233","description":"玲珑自动化deb转制工具","archived":false,"fork":false,"pushed_at":"2024-07-15T12:09:39.000Z","size":25325,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-10T05:56:50.022Z","etag":null,"topics":["deepin","linglong"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/System233.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-13T15:16:23.000Z","updated_at":"2024-12-24T18:09:30.000Z","dependencies_parsed_at":"2024-07-15T14:13:59.619Z","dependency_job_id":null,"html_url":"https://github.com/System233/linglong-tools","commit_stats":null,"previous_names":["system233/linglong-tools"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/System233/linglong-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/System233%2Flinglong-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/System233%2Flinglong-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/System233%2Flinglong-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/System233%2Flinglong-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/System233","download_url":"https://codeload.github.com/System233/linglong-tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/System233%2Flinglong-tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32224413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deepin","linglong"],"created_at":"2024-11-16T19:14:46.552Z","updated_at":"2026-04-24T13:01:27.240Z","avatar_url":"https://github.com/System233.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 玲珑deb转制自动化工具\n\n此工具总结了deb转制法打包玲珑应用中的出现的常见问题，并实现自动化打包。\n\n## 要求\u0026限制\n\n* 依赖库：apt-file\n* 仅用于deb转制打包法，因此输入包名为apt仓库中的包名\n* 不适用于源码编译打包法的玲珑项目\n* 实验性的deb文件输入支持 ~~暂不支持直接使用本地deb文件输入，没有做这个处理。~~\n\n## 常规使用方法\n\n0. 脚本放置到`~/.local/bin`,设置可执行权限,执行`setup-pkg-env.sh`将目录配置到`.bashrc`\n1. 先用`pkg-build.sh 包名`构建项目\n2. 进入项目目录，先用`llr`测试启动，如不正常再使用llre在容器内部测试应用\n3. 测试好参数后，按需在项目目录下创建`env.sh`、`build.sh`、`start.sh`和`post.sh`，添加自定义指令，使用`llb`重新构建，过程中在各个构建阶段自动调用这些文件（若有）。\n4. `llr`再次测试，正常后`lle`打包安装测试。\n\n## 功能\n\n常用命令列表\n\n注：[xxx] 参数为可选\n## 环境变量配置\n* NO_RT_ENV：此项目未使用玲珑Runtime依赖，linglong.yaml内未指定runtime时或生成项目前手动设置。\n* TARGET_ARCH：此项目的架构，自动检测，默认amd64\n\n### 项目构建类\n* [pkg-build.sh](pkg-build.sh) [包名/deb文件]\n    * 在当前目录下自动生成玲珑项目并构建，有包名时在包名目录下构建，没有传递包名时以当前目录作为项目文件夹构建（文件夹名为包名）\n    * 自动转换deb应用到linyaps玲珑包\n    * 自动解析版本号\n    * 自动解析描述\n    * 集中deb包存储\n    * 自动补丁和修复环境：QT、GTK、PYTHON、MONO\n* [pkg-build-all.sh](pkg-build-all.sh)  包名1 包名2...\n    * 用法：pkg-build-all.sh 包名1 包名2...\n    * 在当前目录下构建参数列出的全部包\n* [pkg-build-temp.sh](pkg-build-temp.sh)\n    * 由`pkg-build.sh`生成的`linglong.yaml`在构建时调用，无需手动调用。\n    * 玲珑工程构建过程调用的通用构建脚本，内含所有文件、配置和补丁的处理方法。\n    * 参数通过环境变量配置\n\n* [pkg-install.sh](pkg-install.sh) [包名]\n    * 安装指定的包名，或以当前目录的项目\n* [pkg-clear.sh](pkg-clear.sh)\n    * 删除当前目录下所有项目的AppDir(应用deb解压后的文件，不含依赖)、linglong文件夹和packages依赖文件夹，清理空间。\n* [pkg-export.sh](pkg-export.sh)\n    * 导出当前项目的layer文件到脚本中写死的`EXPORT_DIR`目录，并自动清理\n* [pkg-export-desktop.sh](pkg-export-desktop.sh)\n    * 启动后，拖动测试好的玲珑应用快捷方式到终端并回车，自动导出layer并卸载此应用。\n\n### 依赖相关\n* [pkg-fuck-deps.sh](pkg-fuck-deps.sh) [库名]\n    * 补全依赖后仍然出现缺依赖库时使用，自动搜索错误信息中的库以及ldd筛选的库，并自动添加依赖。\n    * 可以指定要补全其依赖的程序\n* [list-deps.sh](list-deps.sh) 包名/deb文件...\n    * 列出指定包名的全部依赖列表\n* [diff-deps.sh](diff-deps.sh) 包名/deb文件...\n    * 列出指定包名的排除[玲珑内置依赖(env.deps)](env.deps)后的依赖列表\n* [pull-deps.sh](pull-deps.sh)\n    * 拉取当前项目的依赖\n* [pkg-search.sh](pkg-search.sh)\n    * 通过库文件名搜索所在包名\n### 故障排查\n* [strace.sh](strace.sh) 可执行文件 参数...\n    * 玲珑容器内调用的strace命令\n\n### 安装工具\n* [setup-pkg-env.sh](setup-pkg-env.sh)\n    * 添加~/.local/bin到PATH\n    * 添加玲珑相关命令别名\n```\nalias \"llb=ll-builder build\"\nalias \"llr=ll-builder run\"\nalias \"llbe=ll-builder build --exec bash\"\nalias \"llre=ll-builder run --exec bash\"\n\nalias \"lle=ll-builder export\"\n\nalias \"llcr=ll-cli run\"\nalias \"llci=ll-cli install\"\nalias \"llcu=ll-cli uninstall\"\nalias \"llcl=ll-cli list\"\nalias \"llcp=ll-cli ps\"\n```\n\n### deb\n* [deb-repack.sh](deb-repack.sh)\n    * 未经测试\n    * 转换zstd包到普通xz\n    * PS: zst的包比xz还大一大截，真是更新了个寂寞\n\n\n\n## 构建脚本环境变量\n\n环境变量在`linglong.yaml`、和项目路径下的`env.sh`(自行按需创建)中配置。\n\n* F_STARTUP: 自动检测的应用启动文件\n* F_VER: 自动检测的应用版本号\n* PKG_NAME: 目标原始应用包名\n* LINGLONG_PKG_NAME: 目标玲珑包名\n* CWD: 应用启动目录,默认为`F_EXEC`所在目录,生成为start.sh中的cd指令\n* F_DIR: 应用启动文件所在目录\n* F_EXEC: 已修正路径的启动文件所在位置\n* F_EXEC_RAW: 原始desktop中Exec指定的启动文件位置\n* F_ARGS：手动额外添加的启动参数\n* NO_GAMES: 不添加games到PATH环境变量\n* NO_TERM: 不添加TERM=xterm-256color环境变量\n* NO_LDPATH: 不自动搜索并设置LD_LIBRARY_PATH环境变量\n* NO_MONO: 禁用MONO补丁\n* NO_GLIB: 禁用GLIB补丁\n* NO_JAVA: 禁用JAVA补丁\n* NO_PREL: 禁用PERL补丁\n* SETUP_QPA: 启用QPA补丁\n* SHELL_BIN：解释器路径，如`python3`，覆盖#! shebang的行为。\n* NO_PATCH_EXEC: 禁用shebang补丁\n* NO_FIX_SYM: 禁用相对符号链接转绝对符号链接补丁\n* NO_LINK: 禁用启动时符号链接补丁\n\n## 可插入的构建流程\n\n项目文件夹下按需手动创建文件，构建脚本检测到会自动调用\n\n* env.sh: 构建脚本执行前设置环境变量\n* build.sh: 构建脚本生成start.sh入口文件、打补丁之前修改项目文件\n* start.sh: 构建脚本生成start.sh时，将标准输出作为自定义的指令插入生成的启动脚本（如 echo export A=B插入指令export A=B）。\n* post.sh：构建脚本结束时调用，用于各种补丁打完之后再修改项目文件。\n\n\n## 默认文件路径\n\n* 全局deb包存储：~/.packages\n* 脚本路径：~/.local/bin\n* 导出命令的layer存放路径：/media/sf_VMShared\n\n## 自带的文件补丁\n* libjack.so.0.1.0\n* libjackserver.so.0.1.0\n* libwebkit2gtk-4.0.so.37\n\n## 依赖配置文件\n\n* env.rt.deps: 玲珑容器带runtime依赖列表\n* env.nrt.deps: 玲珑容器无runtime依赖列表\n* repl.deps: 包名替换表，有时依赖的虚拟包名无法通过apt download下载，或者需要屏蔽某些依赖时使用\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystem233%2Flinglong-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsystem233%2Flinglong-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystem233%2Flinglong-tools/lists"}