установка пакета с частного сервера gitlab на windows - PullRequest
0 голосов
/ 21 января 2020

Я борюсь с установкой пакета из репозитория gitlab на компьютер windows.

Я обнаружил различные подсказки, но все еще возникают проблемы при установке пакета из gitlab. Прежде всего, я сгенерировал publi c и закрытый ключ с puttygen.exe
После этого необходимо было изменить файлы, мне пришлось удалить комментарии и прочее, чтобы они выглядели как мой файл в моей системе unix. Итак, теперь и публичные c, и файлы закрытых ключей имеют только одну строку.

Я попытался установить свой пакет через devtools::install_git, что занимает очень много времени, и я получаю сообщение об ошибке

Error: Failed to install 'unknown package' from Git:
  Error in 'git2r_remote_ls': Failed to authenticate SSH session: Unable to send userauth-publickey request

И с devtools::install_gitlab я получаю другое сообщение об ошибке, и у меня почему-то возникает ощущение, что сгенерированная ссылка не подходит для моего сервера gitlab.

Error: Failed to install 'unknown package' from GitLab:
  cannot open URL 'https://gitlab.rlp.net/api/v4/projects/madejung%2FMQqueue.git/repository/files/DESCRIPTION/raw?ref=master'

Мой полный код для тестирования на момент

creds <- git2r::cred_ssh_key(publickey="~/.ssh/id_rsa_gitlab.pub",
                             privatekey="~/.ssh/id_rsa_gitlab")
devtools::install_git(
  url='git@gitlab.rlp.net:madejung/MQqueue.git',
  quiet=FALSE, 
  credentials=creds)

devtools::install_gitlab(
  repo='madejung/MQqueue.git',
  host='gitlab.rlp.net',
  quiet=FALSE, 
  credentials=creds
)

Мой id_rsa_gitlab.pub файл выглядит следующим образом и представляет собой одну строку

ssh-rsa AAAA....fiwbw== rsa-key-20200121

Файл id_rsa_gitlab имеет только код

AAABA.....3WNSIAGE=

ОБНОВЛЕНИЕ

В моей системе Ma c она работает как положено после установки библиотеки libssh2 через homebrew и перекомпиляции git2r с install.packages("git2r", type = "source").

Итак, рабочий код на моей машине:

creds <- git2r::cred_ssh_key(publickey="~/.ssh/id_rsa_gitlab.rlp.net.pub",
                             privatekey="~/.ssh/id_rsa_gitlab.rlp.net")
devtools::install_git(
  url='git@gitlab.rlp.net:madejung/MQqueue.git',
  quiet=FALSE, 
  credentials=creds
)

. По какой-то странной причине, вызов devtools::install_git требует около минуты для сбоя в конце. Я понятия не имею, где проблема здесь.

1 Ответ

0 голосов
/ 22 января 2020

Поработав почти целый день, я нашел решение, с которым я могу жить ...

Сначала я создал PAT (токен личного доступа) в своей учетной записи gitlab и предоставил полный доступ к API. По какой-то причине доступ read_only не сработал, и теперь я устал выяснять, в чем проблема.

После этого у меня все еще были проблемы с установкой пакета, и по какой-то причине настройка wininet для загрузка не работает

Я использовал команду capabilities("libcurl"), чтобы проверить, доступна ли libcurl на моем windows, который пытался переписать wininet на libcurl, используя method='libcurl' в функции установки. Так или иначе, этого было недостаточно, поэтому я переписал переменную options download.file.method напрямую.

options("download.file.method"='libcurl')
devtools::install_gitlab(
  repo='madejung/MQqueue',
  auth_token='Ho...SOMETHING...xugzb',
  host='gitlab.rlp.net',
  quiet=FALSE, force=TRUE
)
...