Information processing device, information processing method, and information processing program

The information processing device addresses build errors in container generation by automatically updating system library versions, allowing successful container creation despite inconsistent management methods.

WO2026022956A1PCT designated stage Publication Date: 2026-01-29NT T INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/026384
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-07-23
Publication Date
2026-01-29

AI Technical Summary

Technical Problem

Conventional container generation technologies face issues with build errors due to inconsistent system library management methods, leading to failures when system libraries with fixed or open versions are not properly managed.

Method used

An information processing device with an execution unit that builds containers and an acquisition unit to update system library versions automatically, acquiring the latest versions from internal or external sources to resolve build errors.

Benefits of technology

Enables container generation regardless of system library management method, ensuring successful builds by updating library versions until errors are resolved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024026384_29012026_PF_FP_ABST
    Figure JP2024026384_29012026_PF_FP_ABST
Patent Text Reader

Abstract

An information processing device (10) has a build execution unit (131d) and a list update unit (131e). The build execution unit (131d) executes a build for container generation. If an error occurs in a first system library during execution of the build, the list update unit (131e) acquires the latest version of the first system library or the latest version of a second system library citing the first system library.
Need to check novelty before this filing date? Find Prior Art

Description

Information processing device, information processing method, and information processing program

[0001] The present invention relates to an information processing device, an information processing method, and an information processing program.

[0002] A container is a standardized package for developing, shipping, and deploying software. It is a software package that contains everything needed to run an application, including programs, executable files, system tools, system libraries, and configuration.

[0003] Known mechanisms for creating containers include Docker (registered trademark) (see, for example, Non-Patent Document 1) and LXC (Linux (registered trademark) Containers) (see, for example, Non-Patent Document 2). According to the technologies described in Non-Patent Documents 1 and 2, it is possible to create a container by fixing the version of a system library required to run an application and building it. Also, there are build environments in which system libraries that are fixed in version and managed as a list, and system libraries that are not fixed in version and do not manage a list, coexist.

[0004] docker, [online], [Retrieved July 16, 2024], Internet (https: / / www.docker.com / ) LXC, [online], [Retrieved July 16, 2024], Internet (https: / / linuxcontainers.org / )

[0005] However, the conventional technology has a problem in that it may not be possible to generate a container depending on the management method of the system library.

[0006] In a build environment where some system libraries to be incorporated into a container have fixed versions and are list-managed, and others have open versions and are not list-managed, build errors may occur. Also, there are cases where a container cannot be generated due to errors in building system libraries.

[0007] For example, if an older version of a system library managed in a list is deleted due to an upgrade of the system library version, an error occurs when building the system library.

[0008] Furthermore, for example, if the version of a first system library that is not list-managed is upgraded, the version of the first system library required by the second system library that is list-managed disappears, resulting in a build error.

[0009] The following is an example of a command that installs a system library that does not use a list. In this example, the version "1.24.0" is installed even though the version "1.11.1" was requested. PyGObject==3.36.0 |-- pycairo [required: >=1.11.1, installed: 1.24.0]

[0010] The present invention has been made in view of the above, and has as its object to generate a container regardless of the system library management method.

[0011] In order to solve the above-mentioned problems and achieve the objectives, the information processing device of the present invention is characterized by having an execution unit that executes a build for generating a container, and an acquisition unit that, if an error in a first system library occurs during the execution of the build, acquires the latest version of the first system library or the latest version of a second system library that references the first system library.

[0012] According to the present invention, it is possible to generate a container regardless of the system library management method.

[0013] Fig. 1 is a diagram showing an example of the configuration of an information processing apparatus according to a first embodiment. Fig. 2 is a flowchart showing the flow of processing of the information processing apparatus according to the first embodiment. Fig. 3 is a flowchart showing the flow of processing of the information processing apparatus according to the first embodiment. Fig. 4 is a diagram showing an example of a computer that executes an information processing program.

[0014] Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. Note that the present invention is not limited to this embodiment. In addition, in the description of the drawings, the same parts are designated by the same reference numerals.

[0015] [First embodiment] [Configuration of information processing device] Fig. 1 is a diagram showing an example of the configuration of an information processing device according to the first embodiment. As shown in Fig. 1, the information processing device 10 has a data input unit 11, a display unit 12, an execution unit 13, and a recording unit 14. The execution unit 13 is realized by a control unit 131 executing a program.

[0016] The information processing device 10 may be a general-purpose computer such as a server or a PC. The information processing device 10 is connected to an input device 20 and an output device 30. The input device 20 is a keyboard, a mouse, etc. The output device 30 is a display, etc.

[0017] The data input unit 11 is an interface that accepts data input from the input device 20. The display unit 12 is an interface that outputs data (e.g., image data) to the output device 30. The information processing device 10 may also have a communication interface that exchanges data by communication via a network.

[0018] The control unit 131 controls the entire information processing device 10. The control unit 131 is, for example, an electronic circuit such as a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or a GPU (Graphics Processing Unit), or an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).

[0019] The control unit 131 also has an internal memory for storing programs that define various processing procedures and control data, and executes each process using the internal memory. The control unit 131 also functions as various processing units when various programs are run. For example, the control unit 131 functions as an external data linking unit 131a, an LLM linking unit 131b, a determination unit 131c, a build execution unit 131d, and a list update unit 131e.

[0020] The recording unit 14 is a storage device such as a hard disk drive (HDD), a solid state drive (SSD), an optical disk, etc. The recording unit 14 may also be a data-rewritable semiconductor memory such as a random access memory (RAM), a flash memory, or a non-volatile static random access memory (NVSRAM). The recording unit 14 stores an operating system (OS) and various programs executed by the information processing device 10.

[0021] The recording unit 14 stores list management information 141. The list management information 141 is data for list management of the system library. That is, the recording unit 14 manages the information of the system library as a list.

[0022] An example of the list management information 141 is shown below. Here, an example of data for one system library is shown. The list management information 141 may include data for multiple system libraries. certifi==2019.11.28 chardet==3.0.4 dbus-python==1.2.16 distro-info==0.23+ubuntu1.1 idna==2.8 lockfile==0.12.2 pip==23.2.1 pipdeptree==2.16.1 PyGObject==3.36.0 python-apt==2.0.1+ubuntu0.20.4.1 requests-unixsocket==0.2.0 setuptools==68.0.0 unattended-upgrades==0.1 wheel==0.41.0

[0023] The following describes the process flow along with details of each unit of the information processing device 10. Fig. 2 is a flowchart showing the process flow of the information processing device according to the first embodiment.

[0024] 2, the build execution unit 131d executes a build for generating a container (Step S101). The determination unit 131c determines whether a system library error has occurred during the build execution (Step S102). For example, the determination unit 131c determines whether an error has occurred by referring to the build execution log.

[0025] If the determining unit 131c determines that no error has occurred (Step S102; No), the build executing unit 131d checks the operation of the container (executes a test) (Step S103).

[0026] Next, the determination unit 131c determines whether or not an error has occurred in the operation check (step S104). If it is determined that there is no error in the operation check (step S104; No), the information processing device 10 ends the process. If it is determined that there is an error in the operation check (step S104; Yes), the information processing device 10 proceeds to step S105.

[0027] In step S102, if the judgment unit 131c determines that an error has occurred in a system library during build execution (step S102; Yes), the judgment unit 131c determines whether the system library in error is included in the list management information 141 (step S105).

[0028] If it is determined that the system library in error is included in the list management information 141 (step S105; Yes), the list update unit 131e acquires the latest version of the system library in error and updates the list management information 141 based on the acquired information (step S106). At this time, the list update unit 131e functions as an acquisition unit.

[0029] A specific example of the operation will be described below based on the example of the list management information 141 described above. For example, if an error occurs in the system library "dbus-python" during build execution, the list update unit 131e obtains the latest version of the system library "dbus-python" via the Internet or the like. Furthermore, if the latest version is "1.2.30," the list update unit 131e updates "dbus-python==1.2.16" in the list management information 141 to "dbus-python==1.2.30."

[0030] If it is determined that the system library in error is not in the list management information 141 (step S105; No), the list update unit 131e obtains the latest version of the system library that references the system library in error, and updates the list management information 141 based on the obtained information (step S107).

[0031] A specific example of the operation will be described below based on the example of the list management information 141 described above. For example, if the system library "dbus-python" references a system library that caused an error during build execution, the list update unit 131e obtains the latest version of the system library "dbus-python" via the Internet or the like. Furthermore, if the latest version is "1.2.30," the list update unit 131e updates "dbus-python==1.2.16" in the list management information 141 to "dbus-python==1.2.30."

[0032] After executing step S106 or S107, the information processing device 10 returns to step S101 and repeats the process. In this way, the information processing device 10 repeatedly updates, builds, and checks the operation of the list management information 141 until no errors occur.

[0033] An embodiment using an external information source (e.g., OSINT (Open-Source Intelligence)) and LLMs (Large Language Models) will be described with reference to Fig. 3. In this embodiment, the latest versions of system libraries in the local environment are obtained by the process described in Fig. 2, while information is obtained from the external information source and furthermore, the information can be registered in the external information source.

[0034] 3, the build execution unit 131d executes a build for generating a container (step S201). The determination unit 131c determines whether a system library error has occurred during the build execution (step S202). For example, the determination unit 131c determines whether an error has occurred by referring to the build execution log.

[0035] If the determining unit 131c determines that no error has occurred (step S202; No), the build executing unit 131d checks the operation of the container (executes a test) (step S203).

[0036] Next, the determination unit 131c determines whether or not an error has occurred in the operation check (step S204). If it is determined that no error has occurred in the operation check (step S204; No), the external data linkage unit 131a registers the system library information as a version set for which operation has been confirmed in an external information source (OSINT) (step S205). Then, the information processing device 10 ends the processing. If it is determined that an error has occurred in the operation check (step S204; Yes), the information processing device 10 proceeds to step S206.

[0037] In step S202, if the determining unit 131c determines that an error in the system library has occurred during the build execution (step S202; Yes), the information processing apparatus 10 proceeds to step S206.

[0038] The external data linking unit 131a acquires version dependency information and operation check result information for the system library in error from an external information source (OSINT) (step S206). The LLM linking unit 131b analyzes the acquired information (the information acquired in step S206) using LLM, and extracts combinations of dependent system libraries that are problem-free and versions that are not vulnerable (step S207).

[0039] For example, the LLM collaboration unit 131b inputs the following prompt to the LLM and receives a response: "For version 1.2.16 of the system library "dbus-python," please tell me which combinations will not cause problems with dependent system libraries. Also, please tell me which versions of "dbus-python" are not vulnerable. The information obtained from OSINT is as follows: Version dependency information: ... Operation check result information: ..."

[0040] The determining unit 131c also determines whether the system library in which the error occurred is included in the list management information 141 (step S208).

[0041] If it is determined that the system library in error is included in the list management information 141 (step S208; Yes), the list update unit 131e updates the list management information 141 for the system library in error based on information from an external information source (step S209).

[0042] A specific example of the operation will be described based on the example of the list management information 141 described above. For example, if an error occurs in the system library "dbus-python" during build execution, the list update unit 131e acquires information about the system library "dbus-python" from OSINT. Furthermore, if the version in the acquired information is "1.2.30," the list update unit 131e updates "dbus-python==1.2.16" in the list management information 141 to "dbus-python==1.2.30." It is assumed that the external data linkage unit 131a has already confirmed, using LLM, that version "1.2.30" of the system library "dbus-python" is a version without vulnerabilities.

[0043] If it is determined that the system library in error is not included in the list management information 141 (step S208; No), the list update unit 131e updates the list management information 141 for the system libraries that cite the system library in error based on information from an external information source (step S210).

[0044] A specific example of the operation will be described based on the example of the list management information 141 described above. For example, if the system library "dbus-python" references a system library that caused an error during build execution, the list update unit 131e acquires information about the system library "dbus-python" from OSINT. Furthermore, if the version in the acquired information is "1.2.30," the list update unit 131e updates "dbus-python==1.2.16" in the list management information 141 to "dbus-python==1.2.30." It is assumed that the external data linkage unit 131a has already confirmed, using LLM, that version "1.2.30" of the system library "dbus-python" is a version without vulnerabilities.

[0045] After executing step S209 or S210, the information processing apparatus 10 returns to step S201 and repeats the process. In this way, the information processing apparatus 10 repeatedly updates, builds, and checks the operation of the list management information 141 until no errors occur.

[0046] [Effects of the First Embodiment] As described above, the build execution unit 131d executes a build for generating a container. If an error occurs in the first system library during the build, the list update unit 131e obtains the latest version of the first system library or the latest version of a second system library that references the first system library.

[0047] As a result, the information processing device 10 can update the version information of the system library in its own environment based on the error information at the time of build, perform a rebuild, and repeat this process until the build error is resolved.As a result, according to this embodiment, containers can be generated regardless of the system library management method.

[0048] The recording unit 14 manages information about the system libraries. If information about the first system library is managed by the recording unit, the list update unit 131e acquires the latest version of the first system library, and if information about the first system library is not managed by the recording unit 14, the list update unit 131e acquires the latest version of the second system library. This allows the information processing device 10 to resolve the error even if it does not directly manage information about the system library in which the error occurred.

[0049] The external data linking unit 131a acquires version-dependent information and operation check result information for the first system library from an external information source. Furthermore, if no errors occur in the first system library and no errors occur during the operation of the first system library, the external data linking unit 131a registers information about the first system library in the external information source. This allows the information processing device 10 to acquire information from and input information into the external information source, thereby enriching the information available.

[0050] The LLM collaboration unit 131b analyzes information acquired from an external information source using LLM to acquire information related to the first library, thereby enabling the information processing device 10 to obtain information that could not be obtained from external information sources alone.

[0051] [Program] In one embodiment, the information processing device 10 can be implemented by installing an information processing program that executes the above-described processes as package software or online software on a desired computer. For example, by executing the above-described information processing program on the information processing device, the information processing device can function as the information processing device 10. The information processing device referred to here includes desktop and notebook personal computers. Other examples of information processing devices include smartphones, tablet terminals, and the like.

[0052] 4 is a diagram showing an example of a computer that executes an information processing program. The computer 1000 includes, for example, a memory 1010 and a CPU 1020. The computer 1000 also includes a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These components are connected by a bus 1080.

[0053] The memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM (Random Access Memory) 1012. The ROM 1011 stores, for example, a boot program such as a BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to a hard disk drive 1090. The disk drive interface 1040 is connected to a disk drive 1100. A removable storage medium such as a magnetic disk or optical disk is inserted into the disk drive 1100. The serial port interface 1050 is connected to, for example, a mouse 1110 and a keyboard 1120. The video adapter 1060 is connected to, for example, a display 1130.

[0054] The hard disk drive 1090 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. That is, the programs that define each process of the information processing device 10 are implemented as program modules 1093 in which computer-executable code is written. The program modules 1093 are stored, for example, in the hard disk drive 1090. For example, the program modules 1093 for executing processes similar to those of the functional configuration of the information processing device 10 are stored in the hard disk drive 1090. Note that the hard disk drive 1090 may be replaced with an SSD.

[0055] Furthermore, setting data used in the processing of the above-described embodiment is stored as program data 1094, for example, in the memory 1010 or the hard disk drive 1090. The CPU 1020 then reads the program module 1093 or the program data 1094 stored in the memory 1010 or the hard disk drive 1090 into the RAM 1012 as necessary, and executes the processing of the above-described embodiment.

[0056] The program module 1093 and program data 1094 may not necessarily be stored in the hard disk drive 1090, but may also be stored in, for example, a removable storage medium and read by the CPU 1020 via the disk drive 1100 or the like. Alternatively, the program module 1093 and program data 1094 may be stored in another computer connected via a network (such as a local area network (LAN) or a wide area network (WAN)). The program module 1093 and program data 1094 may then be read by the CPU 1020 from the other computer via the network interface 1070.

[0057] Although the present invention has been described above as an embodiment, the present invention is not limited to the description and drawings that form part of the disclosure of the present invention. In other words, other embodiments, examples, and operational techniques that can be made by those skilled in the art based on the present invention are all included in the scope of the present invention.

[0058] 10 Information processing device 11 Data input unit 12 Display unit 13 Execution unit 14 Recording unit 20 Input device 30 Output device 131a External data linking unit 131b LLM linking unit 131c Determination unit 131d Execution unit 131e List update unit 141 List management information

Claims

1. An information processing device comprising: an execution unit that executes a build for generating a container; and an acquisition unit that, if an error occurs in a first system library during the execution of the build, acquires the latest version of the first system library or the latest version of a second system library that references the first system library.

2. An information processing device as described in claim 1, further comprising a recording unit for managing information on system libraries, wherein the acquisition unit acquires the latest version of the first system library if the information on the first system library is managed by the recording unit, and acquires the latest version of the second system library if the information on the first system library is not managed by the recording unit.

3. The information processing device according to claim 1, further comprising an external data linking unit for acquiring version-dependent information and operation check result information for said first system library from an external information source.

4. The information processing device described in claim 3, characterized in that the external data linkage unit registers information about the first system library in the external information source if no error occurs in the first system library and no error occurs in the operation of the first system library.

5. The information processing device according to claim 3, further comprising an LLM linking unit that analyzes the information acquired from the external information source using an LLM and acquires information related to the first system library.

6. An information processing method executed by an information processing device, comprising: an execution step of executing a build for generating a container; and an acquisition step of acquiring the latest version of the first system library or the latest version of a second system library that references the first system library if an error in the first system library occurs during the execution of the build.

7. An information processing program that causes a computer to execute the following steps: an execution step of executing a build for generating a container; and an acquisition step of acquiring the latest version of the first system library or the latest version of a second system library that references the first system library if an error in the first system library occurs during the execution of the build.

Citation Information

Patent Citations

  • Management program, management device and management method

    JP2019091153A

  • Software update apparatus, method, program, and vehicle

    JP2022015169A

  • Modification of a dockerfile to repair vulnerabilities existing in the dockerfile

    US20230083195A1