GitLab에서 사용자 지정 Composer 패키지 설치
간단한 테스트 워드프레스 플러그인을 만들었습니다.플러그인은 단일 php 파일(kreplach.php)과 composer.json으로 구성됩니다.
크레플래치
<?php
/*
Plugin Name: kreplach
Plugin URI: http://gitlab.example.com/sales/kreplach
Description: just a test
Author: Foo Bartok
Version: 1.0
Author URI: http://example.com
*/
?>
작곡가.json
{
"license": "MIT",
"name": "sales/kreplach",
"type": "wordpress-plugin",
"description": "just a test",
"authors": [
{
"name": "Foo Bartok",
"email": "foo@example.com",
"homepage": "example.com"
}
],
"require": {
"composer/installers": "*"
}
}
내 개발 서버에는 다음과 같은 composer.json이 있습니다.
서버의 composer.json
{
"repositories": [
{
"type": "composer",
"url": "https://wpackagist.org"
},
{
"type": "vcs",
"url": "git@gitlab.example.com:sales/kreplach.git"
}
],
"require": {
"php": ">=5.4",
"wpackagist-plugin/akismet": "*",
"wpackagist-plugin/contact-form-7": "*",
"wpackagist-plugin/wordpress-importer": "*",
"sales/kreplach": "master",
"johnpbloch/wordpress": "4.*",
"composer/installers": "*"
},
"extra": {
"wordpress-install-dir": "wp"
}
}
내가 생각하는 일은 다음과 같습니다.
- 작곡가는 composer.json의 gitrepo를 훑어봅니다.
- Composer가 빌드 호스트의 Composer.json에 있는 "sales/kreplach"라는 이름과 일치합니다.
- 작곡가는 마스터 브랜치의 내용을 다음으로 복사합니다.
wp-content/plugins/kreplach
내 빌드 호스트에서. - 내 가짜 플러그인은 설계대로 아무 것도 하지 않습니다.
실제로 일어나는 일:
쓰라리고 쓰라린 실패.
Loading composer repositories with package information Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package sales/kreplach could not be found in any version, there may be a typo in the package name.
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
나는 복제 실험을 했습니다.sales/kreplach
플러그인을 설치하려는 호스트와 동일한 호스트에 repo합니다.
작곡가가 실제로 gitrepo에서 composer.json 파일을 읽고 있는지 확인하기 위해 "헤이, 이 json 파일이 깨졌어, 폼 헤드" 오류를 던진 오타(예, 완전히 일부러 그런 것)를 소개했습니다.
제 gitlab 버전은 옴니버스 에디션 8.6.4 (오늘 설치)입니다.
저는 이와 같은 수법을 성공적으로 수행했습니다.커스텀 파이썬 모듈을 설치하기 위해 txt를 사용하기 때문에, 나는 다음과 같은 지시에 익숙하지 않습니다.제가 한 걸음도 놓치고 있는 것일까요, 아니면 (적어도 저에게는) 명백하지 않은 명명법 같은 것을 놓치고 있는 것일까요?
2021년 업데이트 5년 후, GitLab 13.3(2020년 8월) 이후, GitLab(자유판에서도)은 패키지 레지스트리를 보유하여 GitLab을 개인 저장소로 구축합니다.
GitLab 13.11(2021년 4월)을 사용하여 Composer 패키지를 게시할 수 있습니다.
GitLab 패키지 레지스트리와 함께 Composer v2 사용
Composer를 사용하여 PHP 종속성을 GitLab 프로젝트에 게시, 공유 및 다운로드할 수 있습니다.6개월 전, Composer의 새로운 주요 버전(v2)이 대폭적인 성능 개선, 아키텍처 업데이트, 런타임 기능 등 다양한 변경 사항을 포함하여 출시되었습니다.
변경 사항에 대해서는 여기에서 자세히 확인할 수 있습니다.최근까지 GitLab 레지스트리가 Composer v2를 지원하지 않았기 때문에 이러한 개선 사항을 활용할 수 없었습니다.
이로 인해 일부는 GitLab 레지스트리를 사용할 수 없었습니다.MVC로서, 우리는 필수 파라미터에 대한 지원을 추가하는 것에 집중했습니다.
metadata-URL
. 새 엔드포인트를 추가했습니다.GET group/:id/-/packages/composer/p2/:package_name
, 저장소에 있는 모든 패키지의 메타데이터를 반환합니다.
Composer가 패키지를 찾으면 패키지가 바뀝니다.%package%
패키지 이름과 함께 해당 URL을 가져옵니다.이것은 우리가 새로운 엔드포인트를 추가했다는 것을 의미합니다.
GET group/:id/-/packages/composer/p2/:package_name
저장소에 있는 모든 패키지의 메타데이터를 반환합니다.옵션으로 간주되는 두 개의 파라미터가 있습니다.
및 매개 변수에 대한 지원을 추가할 수 있는 문제가 열려 있습니다.우리는 다가오는 이정표에서 그들의 우선순위를 정하기를 희망합니다.
(여전히 GitLab 13.11, 2021년 4월):
버전 제어에서 Composer 종속성 다운로드
Composer 종속성을 다운로드할 때 두 가지 옵션이 있습니다.
source
아니면dist
. 안정적인 버전을 위해 Composer는dist
기본적으로 종속성을 a로 다운로드합니다.zip
파일.그러나 버전 제어에서 직접 다운로드 할 수도 있습니다.
한다면--prefer-source
를 사용하도록 설정하면 Composer가 사용자의 종속성을 패키지로 다운로드하지 않고 Git 클론으로 다운로드합니다.zip
파일.프로젝트에 대한 버그 수정을 수행하고 종속성의 로컬 Git 클론을 직접 가져올 경우 유용합니다.
최근까지 당신은 사용할 수 없었습니다.
prefer-source
관련된preferred-install
Composer 종속성을 다운로드할 때 명령 및 구성을 확인할 수 있습니다.
이로 인해 대부분의 사용자가 GitLab 패키지 레지스트리를 Composer 종속성에 사용할 수 없었습니다.이제 Composer 의존 관계를 원본에서 다운로드할 수 있음을 알리게 되어 기쁩니다.
이 작업을 수행하려면 단순히 다음을 추가합니다.prefer-source
install 명령어 옵션은 다음과 같습니다.composer update --prefer-source
.
저는 gitlab을 사용해 본 적은 없지만 Bitbucket과 GitHub에서 이 방법을 꽤 많이 사용했습니다.
지정해야 합니다."sales/kreplach": "dev-master"
서버의 Composer.json - 분기 이름 앞에는 "dev-"가 붙어야 합니다.
Composer는 GitHub과 BitBucket에 대한 특별한 지원을 가지고 있습니다. Gitlab에는 존재하지 않을 수도 있습니다.그래서 당신은 저장소 유형으로 지정할 필요가 있을 수 있습니다.vcs
.
행운을 빕니다.
참조:
- https://lornajane.net/posts/2014/use-a-github-branch-as-a-composer-dependency
- https://getcomposer.org/doc/05-repositories.md#vcs
- https://getcomposer.org/doc/05-repositories.md#git-alternatives
언급URL : https://stackoverflow.com/questions/36436115/installing-a-custom-composer-package-from-gitlab
'programing' 카테고리의 다른 글
"전제조건"과 "주장"의 차이점은? (0) | 2023.10.06 |
---|---|
Kubernetes 비밀 해독 (0) | 2023.10.06 |
jQuery: 선택한 라디오 버튼에 대해 부모 tr 가져오기 (0) | 2023.10.06 |
CSS 역할 스타일 지정 방법 (0) | 2023.10.06 |
브라우저가 닫힐 때 만료되는 PHP 세션 쿠키 (0) | 2023.10.06 |