quarto-dev / quarto-dev/quarto-cli

quarto attempts to write into a read-only loction under /usr/local

Open
#10,680 11 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement latex
Dominant language
JavaScript
Stars
6k
Forks
458
Avg merge
1d 9h
Merged PRs (30d)
41

Description

Bug description

I am attempting to port Quarto to FreeBSD.

Quarto is installed in /usr/local/share/quarto which is a read-only location.

For some reason Quarto attempts to write under /usr/local/share:

$ quarto render hello.qmd --to pdf

Executing 'hello.quarto_ipynb'
  Cell 1/1: 'fig-polar'...Done

pandoc 
  to: latex
  output-file: hello.tex
  standalone: true
  pdf-engine: xelatex
  variables:
    graphics: true
    tables: true
  default-image-extension: pdf
  
metadata
  documentclass: scrartcl
  classoption:
    - DIV=11
    - numbers=noendperiod
  papersize: letter
  header-includes:
    - '\KOMAoption{captions}{tableheading}'
  block-headings: true
  title: Quarto Basics
  jupyter: python3
  

Rendering PDF
running xelatex - 1
command xelatex not found, attempting install
finding package for xelatex
> 1 package to install
> installing xelatex (1 of 1)
ERROR: [non-error-thrown] tlmgr returned a non zero status code
You don't have permission to change the installation in any way,
specifically, the directory /usr/local/share/tlpkg/ is not writable.
Please run this program as administrator, or contact your local admin.
tlmgr: An error has occurred. See above messages. Exiting.


Stack trace:
You don't have permission to change the installation in any way,
specifically, the directory /disks/disk1/local/share/tlpkg/ is not writable.
Please run this program as administrator, or contact your local admin.
tlmgr: An error has occurred. See above messages. Exiting.

    at Command.handleError (file:///usr/local/share/quarto/bin/quarto.js:8185:126)
    at Command.parseCommand (file:///usr/local/share/quarto/bin/quarto.js:7910:18)
    at eventLoopTick (ext:core/01_core.js:168:7)
    at async quarto (file:///usr/local/share/quarto/bin/quarto.js:118803:9)
    at async file:///usr/local/share/quarto/bin/quarto.js:118823:9
    at async mainRunner (file:///usr/local/share/quarto/bin/quarto.js:118707:9)
    at async file:///usr/local/share/quarto/bin/quarto.js:118814:5

Do you know how to prevent this?
Is it possible to change this location to under the current user's home directory?

Thank you,
Yuri

Steps to reproduce

No response

Expected behavior

No response

Actual behavior

No response

Your environment

FreeBSD 14.1

Quarto check output

n/a

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting the error-handling path shown in quarto.js around lines 8185 and 7910, then trace how the xelatex installation invokes tlmgr. Determine whether the installation location can be configured for the current user, and verify that rendering no longer attempts to write under the read-only /usr/local/share path.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.