Два предстоящих изменения в TinyTeX и tinytex

логотип.png

Недавно я получил электронное письмо от CRAN, из которого узнал об аварии, связанной с TinyTeX . CRAN попросил меня внести изменение, чтобы избежать подобных происшествий в будущем, и я хотел бы упомянуть об этом изменении, а также объявить о другом предстоящем изменении в этом посте.

Предотвращение случайной установки TinyTeX

Для удобства функция R tinytex::install_tinytex() не будет запрашивать подтверждение пользователя перед установкой TinyTeX. Я предполагаю, что пользователи знают, что они делают при вызове этой функции, точно так же, как вызов install.packages() установит пакеты R без подтверждения. Я с самого начала знал, что это может быть проблематично, потому что пользователи могут непреднамеренно вызвать эту функцию, а простого способа предотвратить установку не существует.

Я наслаждался покоем более четырех лет… пока кто-то не вызвал эту функцию где-то в своем пакете (вероятно, непреднамеренно, поскольку это определенно противоречит политике CRAN), который установил TinyTeX на машины CRAN. Какая ужасная история!

В следующей версии пакета R tinytex функция install_tinytex() предотвратит автоматическую установку в следующих двух случаях:

  1. Для переменной среды TINYTEX_PREVENT_INSTALL установлено значение true . Это дает системному администратору возможность полностью отключить установку, а install_tinytex() просто выдаст ошибку.
  2. Обнаружен другой дистрибутив LaTeX. В этом случае, если сессия R является interactive() , пользователей спросят, хотят ли они в любом случае продолжить установку; если сеанс R не является интерактивным, install_tinytex() выдаст ошибку, сообщающую пользователям, что если они все равно уверены, что хотят установить TinyTeX, они могут использовать tinytex::install_tinytex(force = TRUE) .

Я предполагаю, что это изменение не должно затронуть слишком многих людей, но оно затронет существующих пользователей, которые устанавливают TinyTeX с помощью install_tinytex() в неинтерактивном сеансе R (например, с помощью команды Rscript -e 'tinytex::install_tinytex() ), когда есть в системе уже существует дистрибутив LaTeX. Вам нужно будет использовать аргумент force = TRUE . Это может быть незначительным неудобством, но выигрыш в том, что должно быть гораздо меньше несчастных случаев, подобных той, о которой я упоминал выше.

Если вы хотите проверить, повлияет ли это изменение на вас, вы можете установить версию tinytex для разработчиков прямо сейчас:

 remotes::install_github('yihui/tinytex')

И посмотрите, что происходит с tinytex::install_tinytex() .

Если у вас есть какие-либо отзывы об этом изменении, пожалуйста, дайте мне знать. В настоящее время я планирую представить новую версию в CRAN на следующей неделе.

Миграция в rstudio org на Github

Мы планируем перенести два репозитория Github, https://github.com/yihui/tinytex и https://github.com/yihui/tinytex-releases , в организацию rstudio на следующей неделе (16 мая 2022 г.). То есть они станут https://github.com/rstudio/tinytex и https://github.com/rstudio/tinytex-releases соответственно. Мы надеялись перенести два репозитория из моей личной учетной записи в rstudio , чтобы сделать сборку и установку TinyTeX более безопасной, а также упростить управление будущими вкладами в этот проект.

Теоретически это не должно никого коснуться, потому что Github автоматически перенаправит старые ссылки на новые, включая ссылки на предварительно скомпилированные бинарники TinyTeX в Github Releases. В любом случае, я хочу объявить об этом заранее, чтобы вы могли лучше подготовиться. Если у вас возникнут проблемы с установкой TinyTeX на следующей неделе, сделайте нам одолжение, немедленно сообщите об этом . Спасибо!

Логотип TinyTeX

Leave a Comment

Ваш адрес email не будет опубликован.