开发手册

安装LCF环境

架构要求

架构要求为loongarch64架构

套件安装方法

  1. 下载页面 下载安装套件;请注意:安装LCF套件会覆盖本机中的docker-ce、docker-ce-cli、containerd.io软件包;本套件当前只适用于Loongarch架构下的Debian系操作系统,如Loongnix-20桌面版本。

  2. 解压缩(放在/opt目录下为例)

    $ sudo tar -xf lcfsuit-rc1.tar.gz -C /opt
    
  3. 进入目录安装
    $ cd /opt/lcfsuit-rc1
    $ sudo bash install.sh
    
  4. 验证docker是否安装成功,输入以下命令显示docker版本
    $ docker -v
    
  5. 分别验证制作器,管理器,运行器是否安装成功,对应信息显示一致则说明安装成功。

    • 制作器输入命令:
      $ ./lmgbuild -v
      $ /usr/local/bin/lmgbuild -v
      
    • 制作器输出如下:
      loongson@loongson-pc:/opt/lcfsuit-rc1$ ./lmgbuild -v
      version:1.1.27
      loongson@loongson-pc:/opt/lcfsuit-rc1$ /usr/local/bin/lmgbuild -v
      version:1.1.27
      
    • 管理器输入命令:
      $ ./lpkg -v
      $ /usr/local/bin/lpkg -v
      
    • 管理器输出如下:
      loongson@loongson-pc:/opt/lcfsuit-rc1$ ./lpkg -v
      launch version : 1.1.3
      loongson@loongson-pc:/opt/lcfsuit-rc1$ /usr/local/bin/lpkg -v
      launch version : 1.1.3
      
    • 运行器输入命令:
      $ ./lmgrun -v
      $ /usr/local/bin/lmgrun -v
      
    • 运行器输出如下:
      loongson@loongson-pc:/opt/lcfsuit-rc1$ ./lmgrun -v
      lmgrun version : 1.1.4.3
      loongson@loongson-pc:/opt/lcfsuit-rc1$ /usr/local/bin/lmgrun -v
      lmgrun version : 1.1.4.3
      

套件卸载方法

进入lcfsuit解压缩的目录卸载

$ cd /opt/lcfsuilt-rc1
$ sudo bash uninstall.sh

软件仓库

软件仓库用于存储软件包运行时和应用软件包,使用者可从仓库获得LMG格式的应用和运行时

容器工具

简介

容器工具基于docker开发,在docker的基础上增加了应用层、运行时层、升级层等概念。 通过容器工具可以对镜像进行分层、组合、升级操作。 通过容器工具可将运行时层、应用层、升级层分别导出,运行时层导出文件用于制作运行时lmg包,应用层导出文件用于制作应用lmg包,升级层导出文件用于制作升级lmg包。

运行时层

运行时层包含应用运行所需的基础环境,运行时层与应用层组合生成应用容器,运行时层与升级层组合生成升级后的运行时

应用层

应用层包含应用数据,应用层与运行时层组合生成应用容器

升级层

升级层包含运行时层升级数据,升级层与运行时层组合生成新的运行时层


制作器

简介

制作器是制作lmg包的工具,支持运行时包,运行时升级包,应用软件包的构建。

命令行参数说明

  1. 查看lmgbuild命令的帮助信息
    lmgbuild -h
    
  2. 帮助信息如下:
    usage: lmgbuild [-v] [-h] [-s] [-w WORKDIR | -c CONFIG] [-d]
                 {runtime,rt,workspace,ws} ...
    positional arguments:
    {runtime,rt,workspace,ws}
                         sub command help
     runtime (rt)        runtime command....
     workspace (ws)      workspace command....
    optional arguments:
    -v, --version         show program's version number and exit
    -h, --help            show this help message and exit
    -s, --sync            sync repository
    -w WORKDIR, --workdir WORKDIR
                         set workdir for lmgbuild
    -c CONFIG, --config CONFIG
                         batch build config file
    -d, --debug           enable debug output
    

制作软件包

软件包制作支持情况

制作包类型 支持情况说明
应用软件包 现阶段只支持对已有deb包转换为lmg包的功能
运行时包 现阶段只支持对使用容器工具制作的运行时打包
运行时升级包 现阶段只支持对使用容器工具制作的运行时升级层打包

制作软件包流程

  1. 创建项目 执行命令创建项目
    lmgbuild -w .
    
  2. 同步源上运行时配置
    lmgbuild -s
    
  3. 导入运行时
    lmgbuild runtime -i
    
  4. 构建软件包 执行lmgbuild命令,根据提示进行输入和选择:
    • 制作应用软件包:
      制作应用软件包,输入的软件包内容为deb包,需要根据所输入内容选择对应的运行时
    • 制作运行时软件包:
      制作运行时软件包需要使用容器工具导出的运行时层进行制作
    • 制作升级软件包:
      制作运行时软件包需要使用容器工具导出的运行时升级层进行制作

批量制作软件包

批量制作需要编写配置文件,配置文件以yaml格式编写 配置文件说明:

lmg_type : 制作软件包类型
lmg_output_dir : 输出软件包目录
lmg_workdir : 制作临时目录
arch : 架构
lmg_release : release版本号
lmg_base : 依赖的运行时
pkglist : 输入软件包列表
pkgpath : 输入软件包
deppath : 输入软件包的依赖,内部包含preinstall.sh脚本,制作时会执行该脚本,可通过该脚本实现软件预处理功能

配置文件内容示例如下:

lmg_type: "APPLICATIONS"
lmg_output_dir: "/mnt"
lmg_workdir: "/mnt"
arch: "loong64"
lmg_release: "22"
lmg_base: "uos20_1_7"
pkglist:
    -
        pkgpath: /mnt/com.pantum.pantum_7.4.144-1+uos_loongarch64.deb
    -
        pkgpath: /mnt/datadir/lmg/packages/uos/com.360.browser-stable_10.4.1025.4-1_loongarch64.deb
    -
        pkgpath: /mnt/datadir/lmg/packages/uos/com.baidu.baidunetdisk_4.3.0_loongarch64.deb
        deppath: /home/loongson/dep.tar

批量制作命令:

lmgbuild -c config.yaml

调试

设置调试环境变量后,执行构建命令会打印调试信息

export LMGDEBUG=True
lmgbuild

管理器

简介

管理器主要用来处理软件包的有关操作,安装LCF套件后可以使用lpkg命令进行LMG软件的安装、卸载等操作。

命令行参数

查看lpkg命令的帮助信息

lpkg  --help

lpkg命令的帮助信息如下:

usage: lpkg [-h] [--instdir path] [-t Unzip Dir] [-v] [-d]
            (-i xxx.lmg [xxx.lmg ...] | -r appname:version [appname:version ...] | -l | -L appname:version)

optional arguments:
  -h, --help            show this help message and exit
  --instdir path        specify the installation directory
  -t Unzip Dir, --tempdir Unzip Dir
                        Specify the installation decompression directory
  -v, --version         show the version
  -d, --debug           turn on debugging
  -i xxx.lmg [xxx.lmg ...], --install xxx.lmg [xxx.lmg ...]
                        the location of the package to be installed
  -r appname:version [appname:version ...], --remove appname:version [appname:version ...]
                        the name of the package to be uninstalled
  -l, --list            show app list
  -L appname:version, --listfiles appname:version
                        List files installed to your system from package-name.

Lmg Packager

列出已安装的应用

查看已安装的基础运行时和应用,运行lpkg -l命令:

lpkg  -l

lpkg -l输出如下:

名称                          版本                      体系结构   
loongnix                  1_10                      loong64   
bino                      1.6.6-3_1                 loong64   
chromium-bsu              0.9.16.1-2_1              loong64   
cn.codemao.kitten3        3.7.14_1                  loong64   
cn.codemao.wood           0.1.3_1                   loong64

查看软件的安装文件列表

查看指定软件已安装的文件列表,运行lpkg -L appname:version:

lpkg -L appname:version

lpkg -L chromium-bsu:0.9.16.1-2_1输出如下:

chromium-bsu_0.9.16.1-2_1:loongnix_1_10
/opt/lmg/chromium-bsu_0.9.16.1-2_1.desktop
/usr/share/icons/lmg/chromium-bsu_0.9.16.1-2_1.png
/opt/chromium-bsu_0.9.16.1-2_1.loong64.app

安装应用

sudo lpkg -i命令来安装LMG应用:

sudo lpkg -i /home/loongson/xxx.lmg
/home/loongson/xxx.lmg: 软件包存储路径

示例: 安装已经制作完成后的qbittorrent应用,运行安装命令:

sudo lpkg -i qbittorrent_4.1.5-1_1.loong64.lmg

安装过程输出如下:

lmgmanager - INFO - Start installing the software.
lmgmanager - INFO - Start processing qbittorrent container images
qbittorrent_4.1.5-1_1.uos20_1_10: Loading applayer [==================================================>]  91.58MB/91.58MB
lmgmanager - INFO - Record the qbittorrent information
lmgmanager - INFO - The qbittorrent installation is complete!

卸载应用

sudo lpkg -r命令来卸载LMG应用

sudo lpkg -r appname:version

示例: 卸载已安装的qbittorrent应用,运行卸载命令:

sudo lpkg -r qbittorrent:4.1.5-1_1

卸载过程输出如下:

lmgmanager - INFO - Start removing the qbittorrent container images
lmgmanager - INFO - Delete the qbittorrent installation records
lmgmanager - INFO - The qbittorrent uninstalled successfully !

运行器

简介

运行器负责启动已安装的应用,分为两种启动方式:图形启动应用和命令启动应用。

运行方式

图形化运行

  1. 安装应用后,桌面显示lmg文件夹

  2. 进入桌面的lmg文件夹,显示已安装软件的应用图标

  3. 双击应用软件图标,应用启动

命令行运行

  1. 进入桌面lmg目录
    cd  $HOME/Desktop/lmg  # 或者$HOME/桌面/lmg
    
  2. 查看应用desktop文件执行字段
    cat xxx.desktop
    
    示例: 查看qbittorrent应用的desktop文件,输入以下命令
    cat qbittorrent_4.1.5-1_1.desktop
    
    输出如下:
    [Desktop Entry]
    Categories = Network;FileTransfer;P2P;Qt;
    Exec = bash -c '/usr/local/bin/lmgrun -p qbittorrent_4.1.5-1_1 -c bash -l -c "qbittorrent %U"'
    GenericName = BitTorrent client
    Comment = Download and share files over BitTorrent
    Icon = /usr/share/icons/lmg/qbittorrent_4.1.5-1_1.png
    
  3. 在命令行执行Exec字段内容 示例: 取出qbittorrent软件的Exec字段内容
    Exec = bash -c '/usr/local/bin/lmgrun -p qbittorrent_4.1.5-1_1 -c bash -l -c "qbittorrent %U"'
    
    在终端输入如下命令
    bash -c '/usr/local/bin/lmgrun -p qbittorrent_4.1.5-1_1 -c bash -l -c "qbittorrent %U"'
    

LCF使用示例

制作运行时镜像

制作运行时镜像,以loongnix20的rootfs制作运行时为例

  1. 查看loongnix 的rootfs
    loongson@loongson-pc:~/rootfs$ ls
    bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    
  2. 压缩rootfs
    loongson@loongson-pc:~/rootfs$ sudo tar -zcvf ../loognix20.tar.gz .
    
  3. 导入镜像
    loongson@loongson-pc:~$ sudo docker import loongnix20.tar.gz 
    sha256:ba2f363b7797698acd0111119f9270a408bca61b069ffad6b0506daaaac3f8cc
    
  4. 查看导入的镜像
    loongson@loongson-pc:~$ docker images |grep ba2f
    <none>                                                      <none>       ba2f363b7797   19 seconds ago   170MB
    
  5. 制作运行时镜像

运行时镜像用于制作器制作应用和制作运行时lmg包使用

运行时命名规范:

类型 命名规范 示例
运行时容器 系统代号_发布版本_lmg的release版本:brl loongnix20_1_1:brl
升级镜像文件 系统代号_发布版本_lmg的release版本:brl loongnix20_1_1_brl.tar

对运行时命名:

loongson@loongson-pc:~$ docker tag ba2f363b7797 loongnix20_1_1:brl

导出运行时镜像:

loongson@loongson-pc:~$ docker save loongnix20_1_1:brl -o loongnix20_1_1_brl.tar

制作运行时LMG包

  1. 创建项目
    mkdir work
    cd work
    lmgbuild -w .
    
  2. 制作运行时LMG包
    loongson@loongson-pc:~/work$  lmgbuild
    [Message] Sync repository......
    Downloading /home/loongson/.config/lmgbuild/conf/repository-base.yaml.cache: 100%|#############################| 58.0/58.0 [00:00<00:00, 404kiB/s]
    [Message] Complete sync repository !!!
    ? Which type lmg do you want to make?  BASERUNTIME
    ? Which directory do you want to save the lmg package?  /tmp
    ? Which directory do you want to build the lmg package?  /tmp
    ? Please check your arch ?  loong64
    ? Which tar package do you want to convert?  loongnix20_1_1_brl.tar
    ? Please input the description for this BASERUNTIME lmg package
    loongnix20: |████████████████████████████████████████| 13/13 [100%] in 6.6s (1.98/s)
    

制作应用LMG包

  1. 导入运行时,用于制作应用LMG包
    loongson@loongson-pc:~/work$ lmgbuild rt -i /home/loongson/loongnix20_1_1_brl.tar
    [WARN] baseruntime already installed
    
  2. 下载loongnix20的应用thunderbird进行制作
    loongson@loongson-pc:~/work$ apt download thunderbird
    
  3. 制作应用LMG包 执行lmgbuild命令,根据提示输入或选择
    loongson@loongson-pc:~/work$ lmgbuild
    [Message] Sync repository......
    Downloading /home/loongson/.config/lmgbuild/conf/repository-base.yaml.cache: 100%|#############################| 58.0/58.0 [00:00<00:00, 413kiB/s]
    [Message] Complete sync repository !!!
    ? Which type lmg do you want to make?  APPLICATIONS
    ? Which directory do you want to save the lmg package?  /tmp
    ? Which directory do you want to build the lmg package?  /tmp
    ? Which BASRRUNTIME you dependent?  loongnix20_1_1
    ? Which release do you want?  1
    ? Which package do you want to convert?  thunderbird_1%3a68.7.0-1~deb10u1.lnd.2_loongarch64.deb
    ? Input your depend tar package or input Enter?
    thunderbird: |█████████████████████▌                  | ▃▅▇ 7/13 [54%] in 36s (0.2/s, eta: 4s) build image
    
  4. 查看制作成功的软件包
    loongson@loongson-pc:~/work$ ls /tmp/thunderbird_1%3a68.7.0-1~deb10u1.lnd.2_1.loong64.lmg 
    /tmp/thunderbird_1%3a68.7.0-1~deb10u1.lnd.2_1.loong64.lmg
    

安装LMG软件包

  1. 安装运行时LMG包
    loongson@loongson-pc:~/work$ sudo lpkg -i  /home/loongson/loongnix20_1_1_brl.loong64.lmg 
    lmgmanager - INFO - Start installing the software.
    lmgmanager - INFO - Start processing loongnix20 container images
    Loaded image: loongnix20_1_1:brl
    lmgmanager - INFO - Record the loongnix20 information
    lmgmanager - INFO - The loongnix20 installation is complete!
    
  2. 安装应用LMG包
    loongson@loongson-pc:~/work$ sudo lpkg -i /tmp/thunderbird_1%3a68.7.0-1~deb10u1.lnd.2_1.loong64.lmg 
    lmgmanager - INFO - Start installing the software.
    lmgmanager - INFO - Start processing thunderbird container images
    thunderbird_1-3a68.7.0-1-deb10u1.lnd.2_1.loongnix20_1_1: Loading applayer [==================================================>] lmgmanager - INFO - Record the thunderbird information
    lmgmanager - INFO - The thunderbird installation is complete!
    
  3. 查看安装后的软件

lmg包安装成功后,启动图标会放到桌面的lmg目录

桌面图标

运行应用

  1. 进入lmg目录,双击thunderbird图标启动程序
    启动应用

  2. 启动效果
    thunderbird启动

卸载LMG应用

  1. 查看应用
    loongson@loongson-pc:~/work$ lpkg -l |grep thunder
    thunderbird               1%3a68.7.0-1~deb10u1.lnd.2_1 loong64
    
  2. 卸载应用
    loongson@loongson-pc:~/work$ sudo lpkg -r thunderbird:1%3a68.7.0-1~deb10u1.lnd.2_1
    [sudo] loongson 的密码:
    lmgmanager - INFO - Start removing the thunderbird container images
    lmgmanager - INFO - Delete the thunderbird installation records
    lmgmanager - INFO - The thunderbird uninstalled successfully !
    

运行时升级层制作

  1. 查找运行时镜像
    loongson@loongson-pc:~$ docker images |grep loongnix
    loongnix20_1_1                                              brl          ba2f363b7797   4 hours ago      170MB
    
  2. 对运行时镜像进行修改
    loongson@loongson-pc:~$ docker images |grep loongnix
    loongnix20_1_1                                              brl          ba2f363b7797   4 hours ago      170MB
    loongson@loongson-pc:~$ docker run -it ba2f363b7797 /bin/bash
    root@31c7c6d2c811:/# cd
    root@31c7c6d2c811:~# echo upgrade > upgrade.txt
    root@31c7c6d2c811:~# exit
    
  3. 提交生成新的镜像
    loongson@loongson-pc:/tmp/loongnix20_1_1_up.1.loong64.app$ docker ps -a |head -n 2
    CONTAINER ID   IMAGE                                                     COMMAND                  CREATED          STATUS                      PORTS     NAMES
    c21face22cc5   ba2f363b7797                                              "/bin/bash"              21 minutes ago   Exited (0) 21 minutes ago             boring_feynman
    loongson@loongson-pc:/tmp/loongnix20_1_1_up.1.loong64.app$ docker commit c21face22cc5 loongnix20_1_1:1
    sha256:310cacf10564427a527971e70a3c5d9eef9c95c2040d429a7ad292e8f94bfd80
    
  4. 导出升级层为tar包

升级命名规范:

类型 命名规范 示例
升级层tag 系统代号_发布版本_lmg的release版本_up.升级版本:brl loongnix20_1_1_up.1:brl
升级层包 系统代号_发布版本_lmg的release版本_up.升级版本.tar loongnix20_1_1_up.1.tar

使用docker saveupgrade命令进行导出升级层

  • docker saveupgrade命令参数如下:
    -b参数为基础运行时IMAGE ID
    -a参数为当前镜像IMAGE ID
    -t输出镜像的tag
    -o输出文件名
    
    执行如下命令:
    loongson@loongson-pc:/tmp/loongnix20_1_1_up.1.loong64.app$ docker saveupgrade -b ba2f363b7797 -a 310cacf10564 -t loongnix20_1_1_up.1:brl -o loongnix20_1_1_up.1.tar
    

制作运行时升级LMG包

执行lmgbuild命令,根据提示进行输入,制作过程如下:

loongson@loongson-pc:~/work$ lmgbuild
[Message] Sync repository......
Downloading /home/loongson/work/conf/repository-base.yaml.cache: 100%|#####################################################################################| 58.0/58.0 [00:00<00:00, 266kiB/s]
[Message] Complete sync repository !!!
? Which type lmg do you want to make?  UPBASERUNTIME
? Which directory do you want to save the lmg package?  /tmp
? Which directory do you want to build the lmg package?  /tmp
? Please check your arch ?  loong64
? Which tar package do you want to convert?  loongnix20_1_1_up.1.tar
? Please input the description for this BASERUNTIME lmg package  
loongnix20: |████████████████████████████████████████| 13/13 [100%] in 6.5s (1.99/s)

安装运行时升级LMG包

  1. 安装运行时升级LMG包
    loongson@loongson-pc:~/work$ sudo lpkg -i /tmp/loongnix20_1_1_up.1.loong64.lmg 
    lmgmanager - INFO - Start installing the software.
    lmgmanager - INFO - Start processing loongnix20 container images
    Loaded image: loongnix20_1_1_up.1:brl
    lmgmanager - INFO - Record the loongnix20 information
    lmgmanager - INFO - The loongnix20 installation is complete!
    
  2. 查看应用是否与升级的运行时组合
    loongson@loongson-pc:~/work$ docker images |grep thunder
    thunderbird_1-3a68.7.0-1-deb10u1.lnd.2_1                    loongnix20_1_1_up.1   097df75b7166   14 seconds ago      754MB
    thunderbird_1-3a68.7.0-1-deb10u1.lnd.2_1                    loongnix20_1_1        0e4e769b6d3c   9 minutes ago       754MB
    
©龙芯开源社区 all right reserved,powered by Gitbook文档更新时间: 2025-05-30 14:38:34

results matching ""

    No results matching ""

    results matching ""

      No results matching ""