Хороший рабочий процесс для обновления модулей R вокруг обновлений R-cran?

Начиная с GNOME 3.2, разработчики GNOME выше по течению отказались от поддержки добавления «внешних панелей» к системным настройкам, чтобы более точно контролировать то, что там присутствует. Соответствующий разговор можно найти, начиная с этого сообщения, в GNOME desktop-devel-list. У Ubuntu есть патч, чтобы выставить этот API. Вот соответствующий проект.

IFAICT, приложения python не могут напрямую обращаться к надлежащему API, но они все равно могут добавить себя в системные настройки. Они появятся там, но не смогут воспользоваться морфинговым окном, хлебными крошками и т. Д. Они просто будут называться как внешняя программа.

Чтобы разместить ваше приложение в системных настройках, вам нужно добавить X-GNOME-Settings-Panel в поле Categories в вашем файле рабочего стола:

Categories=GNOME;GTK;Settings;X-GNOME-Settings-Panel;

и добавьте новое поле в файл рабочего стола:

X-GNOME-Settings-Panel=program-icon

Он также должен содержать OnlyShowIn=Unity;

Вот пример того, как я заставляю что-то там:

3
задан 4 April 2012 в 01:37

1 ответ

Вы можете добавить вызов install.packages() в свой cron-скрипт, чтобы он устанавливал все текущие пакеты, пока он не выполнит остальные задания R cron.

install.packages принимает вектор, поэтому вы может даже сохранить файл с установленными вами пакетами в другом месте, а затем автоматически загрузить его в сценарий обновления cron.

installed.packages() возвращает вектор уже установленных пакетов, поэтому вы можете использовать %in% для просто вызовите его в пакетах, которые еще не установлены:

desired.packages <- c("plyr","taRifx","ggplot2")
missing.packages <- ! desired.packages %in% installed.packages()[,1]
if( any(missing.packages) ) { 
   install.packages( desired.packages[missing.packages] )
}

Редактирование: возможно, лучшее решение

В соответствии с предложением JoshuaUlrich в чате:

Поместите это в свой .Rprofile.

local({
  .libPaths("/home/evilgenius/R/library")
})

Тогда вы сможете просто запустить update.packages() после того, как Ubuntu уничтожит все, и монархия будет восстановлена.

Это решение требует большей осторожности, чтобы пакеты, t с текущей версией R не переносятся.

4
ответ дан 25 May 2018 в 12:59
  • 1
    Да, спасибо, это, скорее всего, сделает это. Кроме того, Джош Ульрих остается очень полезным супермастером. – Mittenchops 31 May 2012 в 23:49
  • 2
    @Mittenchops Действительно. Между hadley() и JU() мои проблемы решаются в наши дни. : -О – Ari B. Friedman 1 June 2012 в 00:45

Другие вопросы по тегам:

Похожие вопросы: