Я пытаюсь создать пакеты R локально просто для стандартизации моего кода для моей собственной выгоды. Я не собираюсь публиковать сообщения на CRAN или GitHub. Я бы хотел, чтобы импортировать пакеты, которые я уже разработал, в новый пакет, который я разрабатываю.devtools :: install(): установка пакета R, который импортирует другой пакет, который хранится локально.
Например:
- вызов первый пакет pack_a и второй пакет pack_b.
- pack_a не имеет обязательств и устанавливает какие-либо проблемы.
- pack_b зависит от pack_a так pack_a упоминается в описании файла pack_b под тэгом импорт.
Проблема я столкнулся в том, что при установке pack_b (используя devtools::install()
) следующее сообщение об ошибке появляется:
Skipping 1 unavailable package: pack_a
После просматривал code of devtools on GitHub кажется, что он смотрит на CRAN для требуемые пакеты с использованием available.packages()
. Конечно, мой pack_a не на CRAN поэтому не может найти его, а затем pack_b не удается установить. Я надеялся, что сначала будет проверять, установлена ли pack_a в моей библиотеке по умолчанию и поэтому даже не пытайтесь ее переустановить.
Так что мой вопрос сводится к:
Как указать, где найти pack_a на моем локальном диске при установке pack_b? И если это невозможно, есть ли переключатель для отключения установки необходимых пакетов во время установки?
Аналогичный вопрос был задан раньше, и я не совсем уверен, но я думаю, что одним из предложений было добавить ваш локальный путь к аргументу repos
от install.packages()
. Однако это не помогло мне.
Предыдущий подобный вопрос: R package which imports SparkR (not on CRAN)
Любое руководство будет высоко ценится.
Если вы хотите использовать 'repos' ARG в локальный каталог, необходимо создать ожидаемую структуру dir, пакет [drat] (https://github.com/eddelbuettel/drat) поможет вам в этом. – jangorecki
Можете ли вы воспроизвести проблему, используя 'utils :: install.packages'? – jangorecki
@jangorecki, спасибо за указатель на drat. Это будет полезно для будущего. Оказывается, моя проблема не имеет ничего общего с зависимостями, но на самом деле это потому, что у меня был файл с тем же именем, что и мой пакет, сохраненный в моей библиотеке (не знаю, как он туда попал ...), так что чувствуешь себя глупым, чтобы задать вопрос теперь ... – Yabasa