เมื่อเร็ว ๆ นี้ฉันได้รับอีเมลจาก CRAN ซึ่งฉันได้เรียนรู้เกี่ยวกับอุบัติเหตุที่เกี่ยวข้องกับ TinyTeX CRAN ขอให้ฉันทำการเปลี่ยนแปลงเพื่อหลีกเลี่ยงอุบัติเหตุดังกล่าวในอนาคต และฉันต้องการที่จะกล่าวถึงการเปลี่ยนแปลงนี้และประกาศการเปลี่ยนแปลงที่จะเกิดขึ้นอีกในโพสต์นี้
ป้องกันการติดตั้ง TinyTeX . โดยไม่ได้ตั้งใจ
เพื่อความสะดวก ฟังก์ชัน R tinytex::install_tinytex()
จะไม่ขอคำยืนยันจากผู้ใช้ก่อนทำการติดตั้ง TinyTeX ฉันคิดว่าผู้ใช้รู้ว่าพวกเขากำลังทำอะไรเมื่อเรียกใช้ฟังก์ชันนี้ เช่นเดียวกับการเรียก install.packages()
จะติดตั้งแพ็คเกจ R โดยไม่มีการยืนยัน ฉันรู้ว่านี่อาจเป็นปัญหาได้ตั้งแต่เริ่มต้น เนื่องจากผู้ใช้อาจเรียกใช้ฟังก์ชันนี้โดยไม่ได้ตั้งใจ และไม่มีวิธีตรงไปตรงมาในการป้องกันการติดตั้ง
ฉันมีความสุขกับความสงบสุขมานานกว่าสี่ปี… จนกระทั่งมีคนเรียกฟังก์ชันนี้ที่ไหนสักแห่งในแพ็คเกจของเขา/เธอ (อาจคงเป็นเพราะว่าสิ่งนี้ขัดกับนโยบาย CRAN อย่างแน่นอน) ซึ่งติดตั้ง TinyTeX บนเครื่องของ CRAN เรื่องราวสยองขวัญอะไรเช่นนี้!
ในเวอร์ชันถัดไปของแพ็คเกจ R tinytex นั้น install_tinytex()
จะป้องกันการติดตั้งอัตโนมัติในสองกรณีต่อไปนี้:
- ตัวแปรสภาพแวดล้อม
TINYTEX_PREVENT_INSTALL
ถูกตั้งค่าtrue
วิธีนี้ทำให้ผู้ดูแลระบบสามารถปิดใช้งานการติดตั้งได้ทั้งหมด และinstall_tinytex()
จะแสดงข้อผิดพลาด - ตรวจพบการกระจาย 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 เวอร์ชัน dev ได้เลย:
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 ในสัปดาห์หน้า โปรด ยื่นรายงาน ให้เราทราบทันที ขอบคุณ!