This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CODECOMPOSER:仅安装低占用空间 CLI、适用于 Docker。 [功能请求]

Guru**** 1993015 points
Other Parts Discussed in Thread: CCSTUDIO
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/983704/codecomposer-low-footprint-cli-only-install-suited-for-docker-feature-request

器件型号:CODECOMPOSER
Thread 中讨论的其他器件:CCStudio

功能请求

我们在使用 Azure 管道和 Docker 的 CI 设置中使用 CCS。

我完全了解 CCS 的命令行界面、这就是我们使用的界面。

我要求进行非 GUI 安装、占用空间最小。

原因

安装 CCS 时、即使设置最小、仍占用1.8 GB 的磁盘空间。

编译器本身大约需要0.2 GB、这意味着我们只安装了1.5 GB 来解析 CLI 命令和项目文件、并创建 makefile。 缝隙、比如大量浪费的空间。

为什么这很重要?

在我们的典型 CI 设置中、构建是在云中完成的、这意味着在使用 Docker 映像的代理上。 这意味着每次启动构建时、代理的第一步是下载 Docker 映像。

即使使用非优化的 Ubuntu 基本映像、CCS 安装也是此映像的3/4。

结果是、对于整个构建、包括从 git repo 获取源并将结果上传到 arterfactory、Docker 映像的下载需要2/3的时间。

研究

我已经研究了是否可以减小 CCS 的安装大小。 虽然如此、但如果 CCS 安装程序提供更好的支持、这种支持可能会更容易、甚至更小的占用空间。

通过试用和错误、我尝试删除模块、并验证构建仍然有效。

CCS 和编译器由这些命令安装

/CCS10.1.0.00010_Linux-x64/ccs_setup_10.1.0.00010.run --mode unattended --prefix /ti/ccs1000 --enable-components PF_C28
./ti_cgt_c2000_18.12.1.LTS_linux_installer_x86.bin --mode unattended --prefix /ti/ccs1000/ccs/tools/compiler 

显而易见的第一步。 我们使用的是 C2000编译器的固定版本、因此 可以删除安装程序坚持与 CCS 一起安装的较新版本。

在下面找到生成的脚本以减小安装大小。 另附为 cccleaner.sh.txt (.txt 扩展名为 TI 论坛、不允许.sh)

#!/bin/sh

#此脚本是在 CCS V 上执行错误清理操作的结果。10.1#
它将实例大小从1.8GB 降低到0.5GB (编译器本身需要0.2GB)
#因此、在这次清理后、我们仍然使用0.3 GB 的空间将.project 文件转换为 makefile 文件以运行编译器。


##就我所知、折叠树插件是必需
的#这是基本的 eclipse。
#- org.eclipse.platform.ide
#忽略包含 com.ti.ccstudio。*
#- com.ti.ccstudio.idemain.feature.group \
#缺少 Compiler def 的构建投诉
#- com.ti.ccstudio.c2000.feature.group
#
然后有一些插件不会卸载、 与 debugServer
#一样
,与 org.eclipse.platform.ide 之间存在一些循环依赖关系#我将这些粘性插件保留在卸载列表中,也许在将来
# TI 会清除这种依赖关系:-)(您已满怀希望)

/ti/ccs1000/ccs/eclipse/eclipse -application org.eclipse.equinox.p2.director \
-uninstallIU com.ti.arm.18.1.help.feature.group \
-uninstallIU com.ti.c2000.18.1.help.feature.group \
-uninstallIU com.ti.c2000.18.1.help.feature.group \
-uninstallIU org.eclipse.help.feature.group \
-uninstallIU com.ti.ccstudio.c5500.feature.group \-uninstallIU
com.ti.ccstudio.c6000.feature.group
com.ti.ccstudio.c7000.feature.group


com.ti.ccstudio.doc.linux.feature.group


com.ti.ccstudio.tms470.feature.group \-uninstallIU com.ti.ccstudio.cloudagent.linux.feature.group \-uninstallIU com.ti.ccstudio.msp430.feature.group
com.ti.ccstudio.usersguide.feature.group com.ti.ccstudio.debugserver.linux.feature.group com.ti.ccstudio.nodejs.linux.feature.group
com.ti.cgt.c2000.20.linux.feature.group
com.ti.cgt.tms470.20.linux.feature.group \
-uninstallIU com.ti.chromium.browser.feature.group \
-uninstallIU com.ti.dvt.energytrace.feature.group \
-uninstallIU com.ti.dvt2.analysis.suite.feature.group \
-uninstallIU com.ti.dvt2.graph.visualization.feature.group \
-uninstallIU com.ti.dvt2.profileanalysismanager.feature.group \
-uninstallIU com.ti.dvt2.resource.explorer.feature.group
\-uninstallIU com.ti.dvt2.rov.feature.group \-uninstallIU
com.ti.dvt2.trace.ccs.feature.group


com.ti.dvt2.via.ccs.feature.group


com.ti.tirex4.feature.group \-uninstallIU com.ti.dvt2.trace.control.feature.group com.ti.tirex.feature.group \-uninstallIU com.ti.dvt2.uia.feature.group

org.eclipse.cdt.debug.ui.memory.feature.group com.ti.emulation.pack.linux.feature.group gnu.io.rxtx.feature.group
uninstallIU org.eclipse.egit.feature.group \
-uninstallIU org.eclipse.equinox.p2.user.ui.feature.group \
-uninstallIU org.eclipse.help.feature.group \
-uninstallIU org.eclipse.help.feature.group \
-uninstallIU org.eclipse.help.feature.group \
-uninstallIU org.eclipse.rtsc.xdctools.product.ui.feature.group \
-uninstallIU org.eclipse.rtsc.xdctools.product_3.61.2.27.feature.group
\-uninstallIU org.eclipse.tm.terminal.connector.cdtserial.feature.feature.group


com.ti.ccstudio.installer.linux64.feature.group



com.ti.ccstudio.base.feature.group \-uninstallIU com.ti.c2800.flash.feature.group com.ti.cgt.dmed.linux.feature.group
com.ti.ccstudio.launcher.linux.feature.group \-uninstallIU com.ti.c2000.support.linux.feature.group com.ti.dsflash.linux.feature.group
com.ti.ccstudio.p2tool.feature.group -uninstallIU \
-uninstallIU com.ti.ccstudio.sysconfig.feature.group \
-uninstallIU com.ti.ccstudio.targetdb.props.default.linux.feature.group \
-uninstallIU com.ti.ccstudio.utils.cli.linux.feature.group \
-uninstallIU com.ti.ccstudio.workflow.feature.group \
-uninstallIU com.ti.ccstudio.p2appf.feature.group \
-uninstallIU org.eclipse.cdt.feature.group \
-uninstallIU org.eclipse.cdt.launch.remote.feature.group
org.eclipse.epp.mpc.feature.group


org.eclipse.gef.feature.group


org.eclipse.rse.feature.group \-uninstallIU org.eclipse.equinox.p2.discovery.feature.feature.group \-uninstallIU org.eclipse.gmf.runtime.thirdparty.feature.group
org.eclipse.tm.terminal.feature.feature.group org.eclipse.equinox.p2.user.ui.feature.group \-uninstallIU org.eclipse.help.feature.group
org.eclipse.cdt.build.crossgcc.feature.group
com.ti.targetcontent.feature.group \
-uninstallIU org.eclipse.help.feature.group \
-uninstallIU org.eclipse.equinox.p2.user.ui.feature.group \
-uninstallIU com.ti.gc.backplane.feature.group \
-uninstallIU com.ti.gc.pm.feature.group \
-uninstallIU com.ti.debug.server.feature.group \
-uninstallIU com.ti.tools.common.feature.group \


/ti/ccs1000/ccs/eclipse/eclipse -application org.eclipse.equinox.p2.garbageclector.application -profile epp.package.cpp
#/ti/ccs1000/ccs/eclipse/eclipse -application.ecloose.equinox.p2.director -


then then then secrurl 文件删除#stalls 要摆脱


这种情况,需要花费大量的时间。/ti/ccs1000/ccs/eclipse/ccstudio
rm -rf /ti/ccs1000/xdctools
rm -rf /ti/ccs1000/ccs/uninstal
rm -rf /ti/ccs1000/ccs/tirex
rm -rf /ti/ccs1000/ccs/install_
rm -rf /ti/ccs1000/ccs/.install rm
-rf /ti/ccs1000/ccs/doc
rm -rf /ti/ccs1000/ccs/utils/sysconfig
rm -rf /ti/ccs1000/ccs/utils/bin/make-4.1.tar.bz2
rm -rf /ti/ccs1000/ccs/utils/tiobj2bin
rm -rf /ti/ccs1000/ccs/tools/node rm -rf
/ti/ccs1000/ccs/ccs_base/emulation rm -rf
/ti/ccs1000/ccs/ccs_base/cloudagent

# 保持3个组、因此请移-复制-删除
MV /ti/ccs1000/ccs/ccs_base/DebugServer/bin /ti/ccs1000/ccs/ccs_base/DebugServer/bin2
mkdir /ti/ccs1000/ccs/ccs_base/DebugServer/bin
cp /ti/ccs1000/ccs/ccs_base/DebugServer/bin2/libti_xpcom.so /ti/ccs1000/ccs/ccs_base/DebugServer/bin
cp /ti/ccs1000/ccs/ccs_base/DebugServer/bin2/libXPCOMUtility.so /ti/ccs1000/ccs/ccs_base/DebugServer/bin
cp /ti/ccs1000/ccs/ccs_base/DebugServer/bin2/libDirectoryService.so /ti/ccs1000/ccs/ccs_base/DebugServer/bin
rm -rf /ti/ccs1000/ccs/ccs_base/DebugServer/bin2

rm -rf /ti/ccs1000/ccs/ccs_base/DebugServer/propertyDB
rm -rf /ti/ccs1000/ccs/ccs_base/DebugServer/drivers
rm -rf /ti/ccs1000/ccs/ccs_base/DebugServer/CacheInfo
rm -rf /ti/ccs1000/ccs/ccs_base/DebugServer/scripts
rm -rf /ti/ccs1000/ccs/ccs_base/DebugServer/schemas

rm -rf /ti/ccs1000/ccs/ccs_base/common/uscif

.tar.gz rm -rf /ti/ccs1000/ccs/ccs_base/common/targetdb/Modules/ihwa rm /ti/ccs1000/ccs/ccs_base/common/bin rm rm rm
/ti/ccs1000/ccs/ccs_base/common/bin/libxerces-c rm rm rm rm
rm /ti/ccs1000/ccs/ccs_base/common/bin/libsetup_parser.so
rm -rf /ti/ccs1000/ccs/ccs_base/common/install
rm -rf /ti/ccs1000/ccs/ccs_base/common/analysis
rm -rf /ti/ccs1000/ccs/ccs_base/common/IDE
rm -rf /ti/ccs1000/ccs/ccs_base/dvt

rm -rf /ti/ccs1000/ccs/ccs_base/c2000
rm -rf /ti/ccs1000/ccs/ccs_base/tiva
rm -rf /ti/ccs1000/ccs/ccs_base/scripting /ti/ccs1000/ccs/ccs_base/eclipse
rm -rf /ti/ccs1000/ccs/ccs_base/doc
rm -rf /ti/ccs1000/ccs/ccs_base/arm

#这个不占用任何显著空间它更像是.desktop 文件的讽刺 在此 CLI 中、世界
rm "ccs1000/Code Composer Studio 10.1.0.desktop"

e2e.ti.com/.../ccscleaner.sh.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Martin、

    我假设您希望使用 CCS 工程(而不是完全基于 makefile 的系统)、并且需要能够使用无头工程命令来编译 CCS 工程。 您是否还对调试感兴趣(通过 DSS)? 还是仅限于构建环境?

    谢谢

    Ki

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、我使用的是 CCS 工程、它们定义 makefile。 我对 makefile 文件的引用是关于开始编译时会发生什么情况:CCS、CCS 将在项目文件中读取配置、生成一些 makefile 文件、并调用 make、 在 GUI 版本中、它还将捕获并解析来自 make/compiler 命令的输出、从而为您提供警告列表 a.s.o。

    以使其更加清晰

    我有两种设置、

    1. 我的桌面:具有成熟的 GUI 版本、具有调试器、编辑器、索引器以及所有的铃声和口哨。
    2. 我的编译流水线、100%纯编译安装、无调试、仅编译。

    在我的构建流水线中、我调用两个命令。

    Eclipse -noSplash -data $(build.BinariesDirectory) -application com.ti.ccstudio.apps.projectImport -ccs.overwrite -ccs.location DSP/Delfino
    Eclipse -nosplash -data $(build.BinariesDirectory) -application com.ti.ccstudio.apps.projectBuild -ccs.autoImport -ccs.buildType Full -ccs.projects Delfino -ccs.configuration Release
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的澄清。

    我已就此提出了一项改进请求。 跟踪链接: https://sir.ext.ti.com/jira/browse/EXT_EP-10259

    谢谢

    Ki