<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # GitLab Conan Repository > 原文:[https://docs.gitlab.com/ee/user/packages/conan_repository/](https://docs.gitlab.com/ee/user/packages/conan_repository/) * [Enabling the Conan Repository](#enabling-the-conan-repository) * [Getting started](#getting-started) * [Installing Conan](#installing-conan) * [Installing CMake](#installing-cmake) * [Creating a project](#creating-a-project) * [Building a package](#building-a-package) * [Adding the GitLab Package Registry as a Conan remote](#adding-the-gitlab-package-registry-as-a-conan-remote) * [Authenticating to the GitLab Conan Repository](#authenticating-to-the-gitlab-conan-repository) * [Adding a Conan user to the GitLab remote](#adding-a-conan-user-to-the-gitlab-remote) * [Setting a default remote to your project (optional)](#setting-a-default-remote-to-your-project-optional) * [Uploading a package](#uploading-a-package) * [Package recipe naming convention](#package-recipe-naming-convention) * [Installing a package](#installing-a-package) * [Removing a package](#removing-a-package) * [Searching the GitLab Package Registry for Conan packages](#searching-the-gitlab-package-registry-for-conan-packages) * [Fetching Conan package information from the GitLab Package Registry](#fetching-conan-package-information-from-the-gitlab-package-registry) * [List of supported CLI commands](#list-of-supported-cli-commands) * [Using GitLab CI with Conan packages](#using-gitlab-ci-with-conan-packages) # GitLab Conan Repository[](#gitlab-conan-repository-premium "Permalink") [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/8248) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.6. 有了 GitLab 柯南存儲庫,每個項目都可以有自己的空間來存儲柯南軟件包. [![GitLab Conan Repository](https://img.kancloud.cn/1b/58/1b58e8e6e4674a34d705493f3494e2ef_2548x1116.png)](img/conan_package_view.png) ## Enabling the Conan Repository[](#enabling-the-conan-repository "Permalink") **注意:**僅當您的 GitLab 管理員[啟用了對 Conan Repository 的支持時,](../../../administration/packages/index.html)此選項才可用. 啟用柯南存儲庫后,默認情況下它將可用于所有新項目. 要為現有項目啟用它,或者要禁用它: 1. 導航到項目的**"設置">"常規">"可見性,項目功能,權限"** . 2. 找到"軟件包"功能并啟用或禁用它. 3. 單擊**保存更改**以使更改生效. 然后,您應該能夠在左側欄中看到" **程序包和注冊表"**部分. ## Getting started[](#getting-started "Permalink") 本節將介紹如何安裝 Conan 以及為 C / C ++項目構建軟件包. 如果您不熟悉柯南,這是一個快速入門. 如果您已經在使用 Conan 并且了解如何構建自己的軟件包,請繼續[下一節](#adding-the-gitlab-package-registry-as-a-conan-remote) . ### Installing Conan[](#installing-conan "Permalink") 按照[conan.io](https://conan.io/downloads.html)上的說明將 Conan 軟件包管理器下載到本地開發環境. 安裝完成后,通過運行以下命令驗證您可以在終端中使用 Conan ``` conan --version ``` 您應該在輸出中看到柯南版本: ``` Conan version 1.20.5 ``` ### Installing CMake[](#installing-cmake "Permalink") 使用 C ++和 Conan 進行開發時,編譯器有多種選擇. 本教程將逐步介紹如何使用 cmake 編譯器. 在您的終端中,運行命令 ``` cmake --version ``` 您應該會在輸出中看到 cmake 版本. 如果看到其他內容,則可能必須安裝 cmake. 在 Mac 上,您可以通過運行`brew install cmake`來使用[自制軟件](https://brew.sh/) `brew install cmake` . 否則,請按照[cmake.org 中](https://cmake.org/install/)針對您的操作系統的說明進行操作. ### Creating a project[](#creating-a-project "Permalink") 了解創建有效且可編譯的 C ++項目所需的內容不在本指南的范圍之內,但是,如果您是 C ++的新手,并且想嘗試 GitLab 軟件包注冊表,那么 Conan.io 會提供一個很棒的[Hello World 入門項目](https://github.com/conan-io/hello)可以克隆以開始使用. 如果您沒有自己的 C ++項目,請克隆該存儲庫,并將其用于本教程的其余部分. ### Building a package[](#building-a-package "Permalink") 在終端中,導航到項目的根文件夾. 通過運行`conan new`并為其提供程序包名稱和版本來生成新配方: ``` conan new Hello/0.1 -t ``` 接下來,您將通過運行提供 Conan 用戶和頻道的`conan create`來為該配方創建一個程序包: ``` conan create . my-org+my-group+my-project/beta ``` **注意:**當前的[命名限制](#package-recipe-naming-convention)要求您將`user`值[命名](#package-recipe-naming-convention)為項目在 GitLab 上的`+`分隔路徑. 上面的示例將創建一個屬于該項目的軟件包: `https://gitlab.com/my-org/my-group/my-project` : `https://gitlab.com/my-org/my-group/my-project` ,其通道為`beta` . 這兩個示例命令將使用配方`Hello/0.1@my-org+my-group+my-project/beta`生成最終軟件包. 有關創建和管理軟件包的更多高級詳細信息,請參閱[Conan docs](https://docs.conan.io/en/latest/creating_packages.html) . 現在,您可以將軟件包上傳到 GitLab 注冊表了. 首先,您需要將 GitLab 設置為遠程,然后需要為該遠程添加一個 Conan 用戶以驗證您的請求. ## Adding the GitLab Package Registry as a Conan remote[](#adding-the-gitlab-package-registry-as-a-conan-remote "Permalink") Add a new remote to your Conan configuration: ``` conan remote add gitlab https://gitlab.example.com/api/v4/packages/conan ``` 一旦設置了遙控器,您就可以在運行 Conan 命令時使用遙控器,方法是在命令末尾添加`--remote=gitlab` . 例如: ``` conan search Hello* --all --remote=gitlab ``` ## Authenticating to the GitLab Conan Repository[](#authenticating-to-the-gitlab-conan-repository "Permalink") 您將需要一個個人訪問令牌或部署令牌. 對于存儲庫身份驗證: * 您可以將范圍設置為`api`來生成[個人訪問令牌](../../../user/profile/personal_access_tokens.html) . * 您可以生成[令牌部署](./../../project/deploy_tokens/index.html)與范圍設置為`read_package_registry` , `write_package_registry` ,或兩者兼而有之. ### Adding a Conan user to the GitLab remote[](#adding-a-conan-user-to-the-gitlab-remote "Permalink") 一旦有了個人訪問令牌并[設置了 Conan remote](#adding-the-gitlab-package-registry-as-a-conan-remote) ,就可以將令牌與遠程關聯,因此您不必將它們顯式添加到您運行的每個 Conan 命令中: ``` conan user <gitlab_username or deploy_token_username> -r gitlab -p <personal_access_token or deploy_token> ``` **注意:**如果您使用`gitlab`以外的名稱來命名遠程,則應在此命令中使用您的遠程名稱,而不是`gitlab` . 從現在開始,當您使用`--remote=gitlab`運行命令時,您的用戶名和密碼將自動包含在請求中. **注意:**個人訪問令牌不會隨時存儲在本地. Conan 使用 JWT,因此當您運行此命令時,Conan 將使用您的令牌從 GitLab 請求一個過期的令牌. JWT 確實會定期失效,因此您需要在這種情況下重新輸入個人訪問令牌. 或者,您可以在任何給定命令中顯式包括您的憑據. 例如: ``` CONAN_LOGIN_USERNAME=<gitlab_username or deploy_token_username> CONAN_PASSWORD=<personal_access_token or deploy_token> conan upload Hello/0.1@my-group+my-project/beta --all --remote=gitlab ``` ### Setting a default remote to your project (optional)[](#setting-a-default-remote-to-your-project-optional "Permalink") 如果您希望柯南始終使用 GitLab 作為軟件包的注冊表,則可以告訴柯南始終為給定的軟件包配方引用 GitLab 遠程: ``` conan remote add_ref Hello/0.1@my-group+my-project/beta gitlab ``` **注意:**軟件包配方中確實包含該版本,因此為`Hello/0.1@user/channel`設置默認遠程將不適用于`Hello/0.2@user/channel` . 此功能最適合需要從 GitLab 注冊表使用或安裝軟件包而無需指定遠程服務器的情況. 本文檔中其余的示例命令假定您已將具有憑據的 Conan 用戶添加到`gitlab`遠程,并且不包括顯式憑據或遠程選項,但是請注意,可以在不添加任何命令的情況下運行任何命令.用戶或默認遙控器: ``` `CONAN_LOGIN_USERNAME=<gitlab_username or deploy_token_username> CONAN_PASSWORD=<personal_access_token or deploy_token> <conan command> --remote=gitlab ``` ## Uploading a package[](#uploading-a-package "Permalink") 首先,您需要在[本地創建 Conan 軟件包](https://docs.conan.io/en/latest/creating_packages/getting_started.html) . 為了使用 GitLab 軟件包注冊表,必須遵循特定的[命名約定](#package-recipe-naming-convention) . 通過選擇`api` [范圍,](../../../user/profile/personal_access_tokens.html#limiting-scopes-of-a-personal-access-token)確保在 GitLab 上創建了一個項目,并且所使用的個人訪問令牌具有對容器注冊表進行寫訪問的正確權限. 您可以使用`conan upload`命令將軟件包上傳到 GitLab 軟件包注冊表: ``` conan upload Hello/0.1@my-group+my-project/beta --all ``` ### Package recipe naming convention[](#package-recipe-naming-convention "Permalink") 標準柯南食譜約定看起來像`package_name/version@user/channel` . **配方用戶必須是`+`分隔的項目路徑** . 程序包名稱可以是任何名稱,但最好使用項目名稱,除非由于命名沖突而無法使用. 例如: | Project | Package | Supported | | --- | --- | --- | | `foo/bar` | `my-package/1.0.0@foo+bar/stable` | Yes | | `foo/bar-baz/buz` | `my-package/1.0.0@foo+bar-baz+buz/stable` | Yes | | `gitlab-org/gitlab-ce` | `my-package/1.0.0@gitlab-org+gitlab-ce/stable` | Yes | | `gitlab-org/gitlab-ce` | `my-package/1.0.0@foo/stable` | No | **注意:**將來的迭代將擴展對[項目和組級別](https://gitlab.com/gitlab-org/gitlab/-/issues/11679)遠程服務器的支持,這將允許更靈活的命名約定. ## Installing a package[](#installing-a-package "Permalink") 通常使用`conanfile.txt`文件將 Conan 軟件包作為依賴項安裝. 在要作為依賴項安裝 Conan 軟件包的項目中,打開`conanfile.txt`或在項目的根目錄中創建一個名為`conanfile.txt`的空文件. 將柯南食譜添加到文件的`[requires]`部分: ``` [requires] Hello/0.1@my-group+my-project/beta [generators] cmake ``` 接下來,從您的項目的根目錄創建一個構建目錄并導航到它: ``` mkdir build && cd build ``` 現在,您可以安裝`conanfile.txt`列出的依賴`conanfile.txt` : ``` conan install .. ``` **注意:**如果您要安裝在本教程中剛剛創建的軟件包,則不會發生太多事情,因為該軟件包已在本地計算機上存在. ## Removing a package[](#removing-a-package "Permalink") 有兩種方法可以從 GitLab 軟件包注冊表中刪除 Conan 軟件包. * **在命令行中使用 Conan 客戶端:** ``` conan remove Hello/0.2@user/channel --remote=gitlab ``` 您需要在此命令中明確包含遙控器,否則該程序包將僅從本地系統緩存中刪除. **注意:**此命令將從軟件包注冊表中刪除所有配方和二進制軟件包文件. * **GitLab 項目界面** :在項目頁面的軟件包視圖中,您可以通過單擊紅色垃圾圖標來刪除軟件包. ## Searching the GitLab Package Registry for Conan packages[](#searching-the-gitlab-package-registry-for-conan-packages "Permalink") `conan search`命令可以按完整或部分軟件包名稱或精確配方進行搜索. 要使用部分名稱進行搜索,請使用通配符`*` ,該通配符應放在搜索的末尾(例如, `my-packa*` ): ``` conan search Hello --all --remote=gitlab conan search He* --all --remote=gitlab conan search Hello/0.1@my-group+my-project/beta --all --remote=gitlab ``` 搜索范圍將包括您有權訪問的所有項目,包括私人項目以及所有公共項目. ## Fetching Conan package information from the GitLab Package Registry[](#fetching-conan-package-information-from-the-gitlab-package-registry "Permalink") `conan info`命令將返回有關給定軟件包的信息: ``` conan info Hello/0.1@my-group+my-project/beta ``` ## List of supported CLI commands[](#list-of-supported-cli-commands "Permalink") GitLab Conan 存儲庫支持以下 Conan CLI 命令: * `conan upload` :將您的配方和包文件上載到 GitLab 包注冊表. * `conan install` :從 GitLab 軟件包注冊表中安裝`conanfile.txt`軟件包,包括使用`conanfile.txt`文件. * `conan search`: Search the GitLab Package Registry for public packages, and private packages you have permission to view. * `conan info` :從 GitLab 軟件包注冊表中查看有關給定軟件包的信息. * `conan remove` :從 GitLab 軟件包注冊表中刪除該軟件包. ## Using GitLab CI with Conan packages[](#using-gitlab-ci-with-conan-packages "Permalink") [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/11678) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.7. 要在[GitLab CI / CD 中](./../../../ci/README.html)使用柯南命令,可以在命令中使用`CI_JOB_TOKEN`代替個人訪問令牌. 在`.gitlab-ci.yml`文件中為每個柯南命令提供`CONAN_LOGIN_USERNAME`和`CONAN_PASSWORD`是最簡單的: ``` image: conanio/gcc7 create_package: stage: deploy script: - conan remote add gitlab https://gitlab.example.com/api/v4/packages/conan - conan create . my-group+my-project/beta - CONAN_LOGIN_USERNAME=ci_user CONAN_PASSWORD=${CI_JOB_TOKEN} conan upload Hello/0.1@root+ci-conan/beta1 --all --remote=gitlab ``` 您可以在[Conan 文檔中](https://docs.conan.io/en/latest/howtos/run_conan_in_docker.html#available-docker-images)找到其他柯南圖像用作 CI 文件的基礎.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看