@fredlackey/devutils 0.0.18 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/README.md +214 -141
  2. package/package.json +8 -83
  3. package/src/api/loader.js +229 -0
  4. package/src/api/registry.json +62 -0
  5. package/src/cli.js +293 -60
  6. package/src/commands/ai/index.js +16 -0
  7. package/src/commands/ai/launch.js +112 -0
  8. package/src/commands/ai/list.js +54 -0
  9. package/src/commands/ai/resume.js +70 -0
  10. package/src/commands/ai/sessions.js +121 -0
  11. package/src/commands/ai/set.js +131 -0
  12. package/src/commands/ai/show.js +74 -0
  13. package/src/commands/ai/tools.js +46 -0
  14. package/src/commands/alias/add.js +93 -0
  15. package/src/commands/alias/helpers.js +107 -0
  16. package/src/commands/alias/index.js +14 -0
  17. package/src/commands/alias/list.js +55 -0
  18. package/src/commands/alias/remove.js +62 -0
  19. package/src/commands/alias/sync.js +109 -0
  20. package/src/commands/api/disable.js +73 -0
  21. package/src/commands/api/enable.js +148 -0
  22. package/src/commands/api/index.js +15 -0
  23. package/src/commands/api/list.js +66 -0
  24. package/src/commands/api/update.js +87 -0
  25. package/src/commands/auth/index.js +15 -0
  26. package/src/commands/auth/list.js +49 -0
  27. package/src/commands/auth/login.js +384 -0
  28. package/src/commands/auth/logout.js +111 -0
  29. package/src/commands/auth/refresh.js +184 -0
  30. package/src/commands/auth/services.js +169 -0
  31. package/src/commands/auth/status.js +104 -0
  32. package/src/commands/config/export.js +224 -0
  33. package/src/commands/config/get.js +52 -0
  34. package/src/commands/config/import.js +308 -0
  35. package/src/commands/config/index.js +17 -0
  36. package/src/commands/config/init.js +143 -0
  37. package/src/commands/config/reset.js +57 -0
  38. package/src/commands/config/set.js +93 -0
  39. package/src/commands/config/show.js +35 -0
  40. package/src/commands/help.js +338 -0
  41. package/src/commands/identity/add.js +133 -0
  42. package/src/commands/identity/index.js +17 -0
  43. package/src/commands/identity/link.js +76 -0
  44. package/src/commands/identity/list.js +48 -0
  45. package/src/commands/identity/remove.js +72 -0
  46. package/src/commands/identity/show.js +65 -0
  47. package/src/commands/identity/sync.js +172 -0
  48. package/src/commands/identity/unlink.js +57 -0
  49. package/src/commands/ignore/add.js +165 -0
  50. package/src/commands/ignore/index.js +14 -0
  51. package/src/commands/ignore/list.js +89 -0
  52. package/src/commands/ignore/markers.js +43 -0
  53. package/src/commands/ignore/remove.js +164 -0
  54. package/src/commands/ignore/show.js +169 -0
  55. package/src/commands/machine/detect.js +122 -0
  56. package/src/commands/machine/index.js +14 -0
  57. package/src/commands/machine/list.js +74 -0
  58. package/src/commands/machine/set.js +106 -0
  59. package/src/commands/machine/show.js +35 -0
  60. package/src/commands/schema.js +152 -0
  61. package/src/commands/search/collections.js +134 -0
  62. package/src/commands/search/get.js +71 -0
  63. package/src/commands/search/index-cmd.js +54 -0
  64. package/src/commands/search/index.js +21 -0
  65. package/src/commands/search/keyword.js +60 -0
  66. package/src/commands/search/qmd.js +70 -0
  67. package/src/commands/search/query.js +64 -0
  68. package/src/commands/search/semantic.js +62 -0
  69. package/src/commands/search/status.js +46 -0
  70. package/src/commands/status.js +224 -171
  71. package/src/commands/tools/check.js +79 -0
  72. package/src/commands/tools/index.js +14 -0
  73. package/src/commands/tools/install.js +110 -0
  74. package/src/commands/tools/list.js +91 -0
  75. package/src/commands/tools/search.js +60 -0
  76. package/src/commands/update.js +83 -112
  77. package/src/commands/util/add.js +151 -0
  78. package/src/commands/util/index.js +15 -0
  79. package/src/commands/util/list.js +97 -0
  80. package/src/commands/util/remove.js +76 -0
  81. package/src/commands/util/run.js +79 -0
  82. package/src/commands/util/show.js +67 -0
  83. package/src/commands/version.js +21 -88
  84. package/src/installers/_template.js +104 -0
  85. package/src/installers/git.js +150 -0
  86. package/src/installers/homebrew.js +190 -0
  87. package/src/installers/node.js +223 -0
  88. package/src/installers/registry.json +29 -0
  89. package/src/lib/config.js +125 -0
  90. package/src/lib/detect.js +74 -0
  91. package/src/lib/errors.js +114 -0
  92. package/src/lib/github.js +315 -0
  93. package/src/lib/installer.js +225 -0
  94. package/src/lib/output.js +239 -0
  95. package/src/lib/platform.js +112 -0
  96. package/src/lib/platforms/amazon-linux.js +41 -0
  97. package/src/lib/platforms/gitbash.js +46 -0
  98. package/src/lib/platforms/macos.js +45 -0
  99. package/src/lib/platforms/raspbian.js +41 -0
  100. package/src/lib/platforms/ubuntu.js +39 -0
  101. package/src/lib/platforms/windows.js +45 -0
  102. package/src/lib/prompt.js +161 -0
  103. package/src/lib/schema.js +211 -0
  104. package/src/lib/shell.js +75 -0
  105. package/src/patterns/gitignore/claude-code.txt +25 -0
  106. package/src/patterns/gitignore/docker.txt +15 -0
  107. package/src/patterns/gitignore/go.txt +24 -0
  108. package/src/patterns/gitignore/java.txt +38 -0
  109. package/src/patterns/gitignore/jetbrains.txt +26 -0
  110. package/src/patterns/gitignore/linux.txt +18 -0
  111. package/src/patterns/gitignore/macos.txt +27 -0
  112. package/src/patterns/gitignore/node.txt +51 -0
  113. package/src/patterns/gitignore/python.txt +55 -0
  114. package/src/patterns/gitignore/rust.txt +14 -0
  115. package/src/patterns/gitignore/terraform.txt +30 -0
  116. package/src/patterns/gitignore/vscode.txt +15 -0
  117. package/src/patterns/gitignore/windows.txt +25 -0
  118. package/src/utils/clone/index.js +165 -0
  119. package/src/utils/git-push/index.js +230 -0
  120. package/src/utils/git-status/index.js +116 -0
  121. package/src/utils/git-status/unix.sh +75 -0
  122. package/src/utils/registry.json +41 -0
  123. package/bin/dev.js +0 -16
  124. package/files/README.md +0 -0
  125. package/files/claude/.claude/commands/setup-context.md +0 -3
  126. package/files/monorepos/_archive/README.md +0 -36
  127. package/files/monorepos/_legacy/README.md +0 -36
  128. package/files/monorepos/ai-docs/README.md +0 -33
  129. package/files/monorepos/apps/README.md +0 -24
  130. package/files/monorepos/docs/README.md +0 -40
  131. package/files/monorepos/packages/README.md +0 -25
  132. package/files/monorepos/research/README.md +0 -29
  133. package/files/monorepos/scripts/README.md +0 -24
  134. package/src/commands/README.md +0 -41
  135. package/src/commands/configure.js +0 -199
  136. package/src/commands/identity.js +0 -1630
  137. package/src/commands/ignore.js +0 -247
  138. package/src/commands/install.js +0 -526
  139. package/src/commands/setup.js +0 -246
  140. package/src/completion.js +0 -284
  141. package/src/constants.js +0 -45
  142. package/src/ignore/claude-code.txt +0 -10
  143. package/src/ignore/docker.txt +0 -18
  144. package/src/ignore/linux.txt +0 -23
  145. package/src/ignore/macos.txt +0 -36
  146. package/src/ignore/node.txt +0 -55
  147. package/src/ignore/terraform.txt +0 -37
  148. package/src/ignore/vscode.txt +0 -18
  149. package/src/ignore/windows.txt +0 -35
  150. package/src/index.js +0 -0
  151. package/src/installs/README.md +0 -399
  152. package/src/installs/adobe-creative-cloud.js +0 -546
  153. package/src/installs/adobe-creative-cloud.md +0 -605
  154. package/src/installs/appcleaner.js +0 -321
  155. package/src/installs/appcleaner.md +0 -699
  156. package/src/installs/apt-transport-https.js +0 -390
  157. package/src/installs/apt-transport-https.md +0 -678
  158. package/src/installs/atomicparsley.js +0 -642
  159. package/src/installs/atomicparsley.md +0 -795
  160. package/src/installs/aws-cli.js +0 -797
  161. package/src/installs/aws-cli.md +0 -727
  162. package/src/installs/balena-etcher.js +0 -710
  163. package/src/installs/balena-etcher.md +0 -761
  164. package/src/installs/bambu-studio.js +0 -1143
  165. package/src/installs/bambu-studio.md +0 -780
  166. package/src/installs/bash-completion.js +0 -575
  167. package/src/installs/bash-completion.md +0 -833
  168. package/src/installs/bash.js +0 -417
  169. package/src/installs/bash.md +0 -993
  170. package/src/installs/beyond-compare.js +0 -603
  171. package/src/installs/beyond-compare.md +0 -813
  172. package/src/installs/brave-browser.js +0 -968
  173. package/src/installs/brave-browser.md +0 -650
  174. package/src/installs/build-essential.js +0 -529
  175. package/src/installs/build-essential.md +0 -977
  176. package/src/installs/ca-certificates.js +0 -618
  177. package/src/installs/ca-certificates.md +0 -937
  178. package/src/installs/caffeine.js +0 -508
  179. package/src/installs/caffeine.md +0 -839
  180. package/src/installs/camtasia.js +0 -596
  181. package/src/installs/camtasia.md +0 -762
  182. package/src/installs/chatgpt.js +0 -476
  183. package/src/installs/chatgpt.md +0 -814
  184. package/src/installs/chocolatey.js +0 -456
  185. package/src/installs/chocolatey.md +0 -661
  186. package/src/installs/chrome-canary.js +0 -419
  187. package/src/installs/chrome-canary.md +0 -641
  188. package/src/installs/chromium.js +0 -667
  189. package/src/installs/chromium.md +0 -838
  190. package/src/installs/claude-code.js +0 -576
  191. package/src/installs/claude-code.md +0 -1173
  192. package/src/installs/cloudflare-warp.js +0 -900
  193. package/src/installs/cloudflare-warp.md +0 -1047
  194. package/src/installs/comet-browser.js +0 -588
  195. package/src/installs/comet-browser.md +0 -731
  196. package/src/installs/curl.js +0 -379
  197. package/src/installs/curl.md +0 -714
  198. package/src/installs/cursor.js +0 -579
  199. package/src/installs/cursor.md +0 -970
  200. package/src/installs/dbeaver.js +0 -924
  201. package/src/installs/dbeaver.md +0 -939
  202. package/src/installs/dbschema.js +0 -692
  203. package/src/installs/dbschema.md +0 -925
  204. package/src/installs/dependencies.md +0 -453
  205. package/src/installs/development-tools.js +0 -600
  206. package/src/installs/development-tools.md +0 -977
  207. package/src/installs/docker.js +0 -1029
  208. package/src/installs/docker.md +0 -1109
  209. package/src/installs/drawio.js +0 -1019
  210. package/src/installs/drawio.md +0 -795
  211. package/src/installs/elmedia-player.js +0 -347
  212. package/src/installs/elmedia-player.md +0 -556
  213. package/src/installs/ffmpeg.js +0 -889
  214. package/src/installs/ffmpeg.md +0 -852
  215. package/src/installs/file.js +0 -464
  216. package/src/installs/file.md +0 -987
  217. package/src/installs/gemini-cli.js +0 -811
  218. package/src/installs/gemini-cli.md +0 -1153
  219. package/src/installs/git.js +0 -400
  220. package/src/installs/git.md +0 -907
  221. package/src/installs/gitego.js +0 -949
  222. package/src/installs/gitego.md +0 -1172
  223. package/src/installs/go.js +0 -931
  224. package/src/installs/go.md +0 -958
  225. package/src/installs/google-antigravity.js +0 -913
  226. package/src/installs/google-antigravity.md +0 -1075
  227. package/src/installs/google-chrome.js +0 -833
  228. package/src/installs/google-chrome.md +0 -862
  229. package/src/installs/gpg.js +0 -480
  230. package/src/installs/gpg.md +0 -1056
  231. package/src/installs/homebrew.js +0 -1028
  232. package/src/installs/homebrew.md +0 -988
  233. package/src/installs/imageoptim.js +0 -968
  234. package/src/installs/imageoptim.md +0 -1119
  235. package/src/installs/installers.json +0 -4032
  236. package/src/installs/installers.json.tmp +0 -3953
  237. package/src/installs/jq.js +0 -400
  238. package/src/installs/jq.md +0 -809
  239. package/src/installs/keyboard-maestro.js +0 -719
  240. package/src/installs/keyboard-maestro.md +0 -825
  241. package/src/installs/kiro.js +0 -864
  242. package/src/installs/kiro.md +0 -1015
  243. package/src/installs/latex.js +0 -789
  244. package/src/installs/latex.md +0 -1095
  245. package/src/installs/lftp.js +0 -356
  246. package/src/installs/lftp.md +0 -907
  247. package/src/installs/lsb-release.js +0 -346
  248. package/src/installs/lsb-release.md +0 -814
  249. package/src/installs/messenger.js +0 -847
  250. package/src/installs/messenger.md +0 -900
  251. package/src/installs/microsoft-office.js +0 -568
  252. package/src/installs/microsoft-office.md +0 -760
  253. package/src/installs/microsoft-teams.js +0 -801
  254. package/src/installs/microsoft-teams.md +0 -886
  255. package/src/installs/moom.js +0 -326
  256. package/src/installs/moom.md +0 -570
  257. package/src/installs/node.js +0 -904
  258. package/src/installs/node.md +0 -1153
  259. package/src/installs/nordpass.js +0 -716
  260. package/src/installs/nordpass.md +0 -921
  261. package/src/installs/nordvpn.js +0 -892
  262. package/src/installs/nordvpn.md +0 -1052
  263. package/src/installs/nvm.js +0 -995
  264. package/src/installs/nvm.md +0 -1057
  265. package/src/installs/ohmyzsh.js +0 -529
  266. package/src/installs/ohmyzsh.md +0 -1094
  267. package/src/installs/openssh.js +0 -804
  268. package/src/installs/openssh.md +0 -1056
  269. package/src/installs/pandoc.js +0 -662
  270. package/src/installs/pandoc.md +0 -1036
  271. package/src/installs/parallels-desktop.js +0 -431
  272. package/src/installs/parallels-desktop.md +0 -446
  273. package/src/installs/pinentry.js +0 -510
  274. package/src/installs/pinentry.md +0 -1142
  275. package/src/installs/pngyu.js +0 -869
  276. package/src/installs/pngyu.md +0 -896
  277. package/src/installs/postman.js +0 -799
  278. package/src/installs/postman.md +0 -940
  279. package/src/installs/procps.js +0 -425
  280. package/src/installs/procps.md +0 -851
  281. package/src/installs/safari-tech-preview.js +0 -374
  282. package/src/installs/safari-tech-preview.md +0 -533
  283. package/src/installs/sfnt2woff.js +0 -658
  284. package/src/installs/sfnt2woff.md +0 -795
  285. package/src/installs/shellcheck.js +0 -481
  286. package/src/installs/shellcheck.md +0 -1005
  287. package/src/installs/slack.js +0 -741
  288. package/src/installs/slack.md +0 -865
  289. package/src/installs/snagit.js +0 -585
  290. package/src/installs/snagit.md +0 -844
  291. package/src/installs/software-properties-common.js +0 -372
  292. package/src/installs/software-properties-common.md +0 -805
  293. package/src/installs/spotify.js +0 -877
  294. package/src/installs/spotify.md +0 -901
  295. package/src/installs/studio-3t.js +0 -823
  296. package/src/installs/studio-3t.md +0 -918
  297. package/src/installs/sublime-text.js +0 -804
  298. package/src/installs/sublime-text.md +0 -914
  299. package/src/installs/superwhisper.js +0 -706
  300. package/src/installs/superwhisper.md +0 -630
  301. package/src/installs/tailscale.js +0 -745
  302. package/src/installs/tailscale.md +0 -1100
  303. package/src/installs/tar.js +0 -389
  304. package/src/installs/tar.md +0 -946
  305. package/src/installs/termius.js +0 -798
  306. package/src/installs/termius.md +0 -844
  307. package/src/installs/terraform.js +0 -779
  308. package/src/installs/terraform.md +0 -899
  309. package/src/installs/tfenv.js +0 -778
  310. package/src/installs/tfenv.md +0 -1091
  311. package/src/installs/tidal.js +0 -771
  312. package/src/installs/tidal.md +0 -864
  313. package/src/installs/tmux.js +0 -346
  314. package/src/installs/tmux.md +0 -1030
  315. package/src/installs/tree.js +0 -411
  316. package/src/installs/tree.md +0 -833
  317. package/src/installs/unzip.js +0 -460
  318. package/src/installs/unzip.md +0 -879
  319. package/src/installs/vim.js +0 -421
  320. package/src/installs/vim.md +0 -1040
  321. package/src/installs/vlc.js +0 -821
  322. package/src/installs/vlc.md +0 -927
  323. package/src/installs/vscode.js +0 -843
  324. package/src/installs/vscode.md +0 -1002
  325. package/src/installs/wget.js +0 -420
  326. package/src/installs/wget.md +0 -791
  327. package/src/installs/whatsapp.js +0 -729
  328. package/src/installs/whatsapp.md +0 -854
  329. package/src/installs/winpty.js +0 -352
  330. package/src/installs/winpty.md +0 -620
  331. package/src/installs/woff2.js +0 -553
  332. package/src/installs/woff2.md +0 -977
  333. package/src/installs/wsl.js +0 -572
  334. package/src/installs/wsl.md +0 -699
  335. package/src/installs/xcode-clt.js +0 -520
  336. package/src/installs/xcode-clt.md +0 -351
  337. package/src/installs/xcode.js +0 -560
  338. package/src/installs/xcode.md +0 -573
  339. package/src/installs/yarn.js +0 -824
  340. package/src/installs/yarn.md +0 -1074
  341. package/src/installs/yq.js +0 -654
  342. package/src/installs/yq.md +0 -944
  343. package/src/installs/yt-dlp.js +0 -701
  344. package/src/installs/yt-dlp.md +0 -946
  345. package/src/installs/yum-utils.js +0 -297
  346. package/src/installs/yum-utils.md +0 -648
  347. package/src/installs/zoom.js +0 -759
  348. package/src/installs/zoom.md +0 -884
  349. package/src/installs/zsh.js +0 -455
  350. package/src/installs/zsh.md +0 -1008
  351. package/src/scripts/README.md +0 -617
  352. package/src/scripts/STATUS.md +0 -208
  353. package/src/scripts/afk.js +0 -411
  354. package/src/scripts/backup-all.js +0 -746
  355. package/src/scripts/backup-source.js +0 -727
  356. package/src/scripts/brewd.js +0 -389
  357. package/src/scripts/brewi.js +0 -520
  358. package/src/scripts/brewr.js +0 -527
  359. package/src/scripts/brews.js +0 -477
  360. package/src/scripts/brewu.js +0 -504
  361. package/src/scripts/c.js +0 -201
  362. package/src/scripts/ccurl.js +0 -341
  363. package/src/scripts/certbot-crontab-init.js +0 -504
  364. package/src/scripts/certbot-init.js +0 -657
  365. package/src/scripts/ch.js +0 -355
  366. package/src/scripts/claude-danger.js +0 -268
  367. package/src/scripts/clean-dev.js +0 -435
  368. package/src/scripts/clear-dns-cache.js +0 -541
  369. package/src/scripts/clone.js +0 -435
  370. package/src/scripts/code-all.js +0 -437
  371. package/src/scripts/count-files.js +0 -211
  372. package/src/scripts/count-folders.js +0 -211
  373. package/src/scripts/count.js +0 -264
  374. package/src/scripts/d.js +0 -219
  375. package/src/scripts/datauri.js +0 -389
  376. package/src/scripts/delete-files.js +0 -380
  377. package/src/scripts/docker-clean.js +0 -426
  378. package/src/scripts/dp.js +0 -442
  379. package/src/scripts/e.js +0 -390
  380. package/src/scripts/empty-trash.js +0 -513
  381. package/src/scripts/evm.js +0 -444
  382. package/src/scripts/fetch-github-repos.js +0 -456
  383. package/src/scripts/get-channel.js +0 -345
  384. package/src/scripts/get-course.js +0 -399
  385. package/src/scripts/get-dependencies.js +0 -306
  386. package/src/scripts/get-folder.js +0 -799
  387. package/src/scripts/get-tunes.js +0 -426
  388. package/src/scripts/get-video.js +0 -367
  389. package/src/scripts/git-backup.js +0 -577
  390. package/src/scripts/git-clone.js +0 -493
  391. package/src/scripts/git-pup.js +0 -319
  392. package/src/scripts/git-push.js +0 -396
  393. package/src/scripts/h.js +0 -622
  394. package/src/scripts/hide-desktop-icons.js +0 -499
  395. package/src/scripts/hide-hidden-files.js +0 -538
  396. package/src/scripts/install-dependencies-from.js +0 -456
  397. package/src/scripts/ips.js +0 -663
  398. package/src/scripts/iso.js +0 -370
  399. package/src/scripts/killni.js +0 -577
  400. package/src/scripts/ll.js +0 -467
  401. package/src/scripts/local-ip.js +0 -325
  402. package/src/scripts/m.js +0 -524
  403. package/src/scripts/map.js +0 -309
  404. package/src/scripts/mkd.js +0 -351
  405. package/src/scripts/ncu-update-all.js +0 -457
  406. package/src/scripts/nginx-init.js +0 -718
  407. package/src/scripts/npmi.js +0 -382
  408. package/src/scripts/o.js +0 -511
  409. package/src/scripts/org-by-date.js +0 -338
  410. package/src/scripts/p.js +0 -224
  411. package/src/scripts/packages.js +0 -330
  412. package/src/scripts/path.js +0 -225
  413. package/src/scripts/ports.js +0 -597
  414. package/src/scripts/q.js +0 -305
  415. package/src/scripts/refresh-files.js +0 -394
  416. package/src/scripts/remove-smaller-files.js +0 -516
  417. package/src/scripts/rename-files-with-date.js +0 -533
  418. package/src/scripts/resize-image.js +0 -539
  419. package/src/scripts/rm-safe.js +0 -669
  420. package/src/scripts/s.js +0 -540
  421. package/src/scripts/set-git-public.js +0 -365
  422. package/src/scripts/show-desktop-icons.js +0 -475
  423. package/src/scripts/show-hidden-files.js +0 -472
  424. package/src/scripts/tpa.js +0 -280
  425. package/src/scripts/tpo.js +0 -280
  426. package/src/scripts/u.js +0 -505
  427. package/src/scripts/vpush.js +0 -437
  428. package/src/scripts/y.js +0 -283
  429. package/src/utils/README.md +0 -95
  430. package/src/utils/common/apps.js +0 -143
  431. package/src/utils/common/display.js +0 -157
  432. package/src/utils/common/network.js +0 -185
  433. package/src/utils/common/os.js +0 -294
  434. package/src/utils/common/package-manager.js +0 -301
  435. package/src/utils/common/privileges.js +0 -138
  436. package/src/utils/common/shell.js +0 -261
  437. package/src/utils/macos/apps.js +0 -228
  438. package/src/utils/macos/brew.js +0 -315
  439. package/src/utils/ubuntu/apt.js +0 -307
  440. package/src/utils/ubuntu/desktop.js +0 -292
  441. package/src/utils/ubuntu/snap.js +0 -344
  442. package/src/utils/ubuntu/systemd.js +0 -286
  443. package/src/utils/windows/choco.js +0 -465
  444. package/src/utils/windows/env.js +0 -246
  445. package/src/utils/windows/registry.js +0 -269
  446. package/src/utils/windows/shell.js +0 -240
  447. package/src/utils/windows/winget.js +0 -489
@@ -1,1095 +0,0 @@
1
- # Installing LaTeX (TeX Live)
2
-
3
- ## Overview
4
-
5
- LaTeX is a document preparation system widely used for scientific, technical, and academic writing. It excels at producing high-quality typeset documents, particularly those containing complex mathematical equations, tables, and cross-references. TeX Live is the standard, cross-platform distribution of LaTeX maintained by the TeX Users Group (TUG).
6
-
7
- Key components included in TeX Live:
8
-
9
- - **TeX/LaTeX engines**: pdfTeX, XeTeX, LuaTeX for document compilation
10
- - **Macro packages**: Thousands of style files and document classes
11
- - **Fonts**: Comprehensive font collections for professional typography
12
- - **Utilities**: BibTeX for bibliographies, dvips, makeindex, and more
13
- - **tlmgr**: TeX Live Manager for installing/updating packages
14
-
15
- This guide documents TeX Live installation across all supported platforms.
16
-
17
- ## Prerequisites
18
-
19
- Before installing LaTeX on any platform, ensure:
20
-
21
- 1. **Internet connectivity** - Required to download TeX Live packages (several gigabytes for full installation)
22
- 2. **Administrative privileges** - Required for system-wide installation on most platforms
23
- 3. **Sufficient disk space** - Full installation requires 7+ GB; basic installation requires approximately 300 MB
24
- 4. **Time** - Full installation can take 30-60 minutes depending on network speed
25
-
26
- ## Dependencies
27
-
28
- ### macOS (Homebrew)
29
- - **Required:**
30
- - Homebrew - Install via `dev install homebrew` or `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
31
- - Internet connectivity - For downloading MacTeX packages (~4 GB)
32
- - Command Line Tools for Xcode - Auto-installed by Homebrew if missing
33
- - **Optional:** None
34
- - **Auto-installed:**
35
- - Perl - Included with macOS
36
- - curl - Pre-installed on macOS
37
-
38
- ### Ubuntu (APT/Snap)
39
- - **Required:**
40
- - sudo privileges - For APT package installation
41
- - Internet connectivity - For downloading TeX Live packages (several GB)
42
- - APT package manager - Pre-installed on Ubuntu
43
- - **Optional:** None
44
- - **Auto-installed:**
45
- - Perl and Perl modules - Installed automatically as dependencies of `texlive-full`
46
- - Font packages - Included in `texlive-full` metapackage
47
- - Build tools - Installed as dependencies if needed
48
-
49
- ### Raspberry Pi OS (APT/Snap)
50
- - **Required:**
51
- - sudo privileges - For APT package installation
52
- - Internet connectivity - For downloading TeX Live packages (several GB)
53
- - APT package manager - Pre-installed on Raspberry Pi OS
54
- - High-quality SD card (Class 10+) or SSD - For acceptable installation performance
55
- - **Optional:**
56
- - Swap space (2+ GB) - For compiling complex documents on low-RAM devices (install via `fallocate` and `mkswap`)
57
- - **Auto-installed:**
58
- - Perl and Perl modules - Installed automatically as dependencies
59
- - ARM-optimized packages - Handled by APT for ARM architecture
60
- - Font packages - Included in `texlive-full` metapackage
61
-
62
- ### Amazon Linux (DNF/YUM)
63
- - **Required:**
64
- - sudo privileges - For DNF/YUM package installation
65
- - Internet connectivity - For downloading TeX Live packages
66
- - DNF (AL2023/RHEL9) or YUM (AL2/RHEL8) - Pre-installed based on OS version
67
- - **Optional:**
68
- - Perl and perl-Digest-MD5 - Only required for native TUG installer (install via `sudo dnf install -y perl perl-Digest-MD5`)
69
- - **Auto-installed:**
70
- - Perl modules - Installed as package dependencies
71
- - Font collections - Included in scheme-full or collection packages
72
-
73
- ### Windows (Chocolatey/winget)
74
- - **Required:**
75
- - Chocolatey - Install via `dev install chocolatey` or PowerShell script from chocolatey.org
76
- - Administrator privileges - For Chocolatey package installation
77
- - Internet connectivity - For downloading TeX Live packages (~8 GB)
78
- - PowerShell 5.0+ - Pre-installed on Windows 10/11
79
- - **Optional:** None
80
- - **Auto-installed:**
81
- - Perl (Strawberry Perl) - Bundled with TeX Live Windows installation
82
- - TeX Live utilities - Included in the texlive Chocolatey package
83
- - Windows-specific binaries - Installed to `C:\texlive\<year>\bin\windows`
84
-
85
- ### Git Bash (Manual/Portable)
86
- - **Required:**
87
- - Git Bash - Installed as part of Git for Windows
88
- - Chocolatey on Windows host - For automated installation (install via `dev install chocolatey`)
89
- - PowerShell - For Chocolatey interop from Git Bash (pre-installed on Windows 10/11)
90
- - Administrator privileges - For system-wide installation via Chocolatey
91
- - Internet connectivity - For downloading TeX Live packages (~8 GB)
92
- - **Optional:**
93
- - Perl for Windows - Only required for portable/manual TUG installer (download from strawberryperl.com or via `choco install strawberryperl`)
94
- - **Auto-installed:**
95
- - TeX Live binaries - Installed on Windows host, accessible via shared PATH
96
- - Perl (Strawberry Perl) - Bundled with TeX Live Windows installation
97
-
98
- ## Platform-Specific Installation
99
-
100
- ### macOS (Homebrew)
101
-
102
- #### Prerequisites
103
-
104
- - macOS 10.14 (Mojave) or later
105
- - Homebrew package manager installed
106
- - At least 8 GB free disk space for full installation (300 MB for BasicTeX)
107
- - Apple Silicon (M1/M2/M3/M4) or Intel processor
108
-
109
- If Homebrew is not installed, install it first:
110
-
111
- ```bash
112
- NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
113
- ```
114
-
115
- #### Installation Steps
116
-
117
- Run the following command to install the full MacTeX distribution (recommended):
118
-
119
- ```bash
120
- brew install --cask mactex-no-gui
121
- ```
122
-
123
- This installs the complete TeX Live distribution without GUI applications (TeXShop, BibDesk, etc.), which is ideal for command-line workflows and automation. The `--cask` flag specifies the graphical application installer format used for MacTeX.
124
-
125
- **Note**: The installation takes 20-40 minutes and downloads approximately 4 GB of data. The `mactex-no-gui` cask runs non-interactively by default through Homebrew.
126
-
127
- After installation completes, restart your terminal to update your PATH, or manually add the TeX binaries:
128
-
129
- ```bash
130
- eval "$(/usr/libexec/path_helper)"
131
- ```
132
-
133
- #### Verification
134
-
135
- Confirm the installation succeeded:
136
-
137
- ```bash
138
- latex --version
139
- ```
140
-
141
- Expected output (version numbers may vary):
142
-
143
- ```
144
- pdfTeX 3.141592653-2.6-1.40.26 (TeX Live 2025)
145
- kpathsea version 6.4.0
146
- ...
147
- ```
148
-
149
- Test the installation by compiling a simple document:
150
-
151
- ```bash
152
- echo '\documentclass{article}\begin{document}Hello, LaTeX!\end{document}' > /tmp/test.tex
153
- pdflatex -interaction=nonstopmode -output-directory=/tmp /tmp/test.tex
154
- ```
155
-
156
- If successful, a file `/tmp/test.pdf` will be created.
157
-
158
- #### Troubleshooting
159
-
160
- **Problem**: `latex: command not found` after installation
161
-
162
- **Solution**: The PATH may not be updated. Either restart your terminal or run:
163
-
164
- ```bash
165
- eval "$(/usr/libexec/path_helper)"
166
- ```
167
-
168
- Verify the TeX binaries are in your PATH:
169
-
170
- ```bash
171
- ls /Library/TeX/texbin/
172
- ```
173
-
174
- If the directory exists, add it to your PATH manually:
175
-
176
- ```bash
177
- export PATH="/Library/TeX/texbin:$PATH"
178
- ```
179
-
180
- Add this line to your `~/.zshrc` or `~/.bash_profile` for persistence.
181
-
182
- **Problem**: Installation fails with disk space error
183
-
184
- **Solution**: MacTeX requires approximately 8 GB of free space. Free up disk space or use BasicTeX instead:
185
-
186
- ```bash
187
- brew install --cask basictex
188
- ```
189
-
190
- BasicTeX is a minimal distribution (~300 MB) that includes core LaTeX functionality. You can add packages later using `tlmgr`.
191
-
192
- **Problem**: Permission denied errors during installation
193
-
194
- **Solution**: Homebrew cask installations require your user password. Run the command in an interactive terminal. For fully automated scenarios, ensure your user has sudo privileges without password prompts for the installer.
195
-
196
- ---
197
-
198
- ### Ubuntu/Debian (APT)
199
-
200
- #### Prerequisites
201
-
202
- - Ubuntu 20.04 LTS or later, or Debian 11 (Bullseye) or later
203
- - sudo privileges
204
- - At least 6 GB free disk space for full installation (300 MB for basic installation)
205
-
206
- #### Installation Steps
207
-
208
- Run the following commands to install the full TeX Live distribution:
209
-
210
- ```bash
211
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
212
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-full
213
- ```
214
-
215
- The `DEBIAN_FRONTEND=noninteractive` environment variable ensures the installation proceeds without prompts, and the `-y` flag automatically confirms package installation.
216
-
217
- **Note**: The `texlive-full` metapackage installs the complete TeX Live distribution including all fonts, language support, and documentation. This can take 30-60 minutes and downloads several gigabytes of data.
218
-
219
- For a smaller installation with core LaTeX functionality:
220
-
221
- ```bash
222
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
223
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-latex-recommended texlive-fonts-recommended texlive-latex-extra
224
- ```
225
-
226
- #### Verification
227
-
228
- Confirm the installation succeeded:
229
-
230
- ```bash
231
- latex --version
232
- ```
233
-
234
- Expected output (version numbers may vary):
235
-
236
- ```
237
- pdfTeX 3.141592653-2.6-1.40.24 (TeX Live 2023/Debian)
238
- kpathsea version 6.3.5
239
- ...
240
- ```
241
-
242
- Test the installation:
243
-
244
- ```bash
245
- echo '\documentclass{article}\begin{document}Hello, LaTeX!\end{document}' > /tmp/test.tex
246
- pdflatex -interaction=nonstopmode -output-directory=/tmp /tmp/test.tex
247
- ```
248
-
249
- If successful, a file `/tmp/test.pdf` will be created.
250
-
251
- #### Troubleshooting
252
-
253
- **Problem**: `E: Unable to locate package texlive-full`
254
-
255
- **Solution**: Update the package lists:
256
-
257
- ```bash
258
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
259
- ```
260
-
261
- If the problem persists, check that the universe repository is enabled:
262
-
263
- ```bash
264
- sudo add-apt-repository universe -y
265
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
266
- ```
267
-
268
- **Problem**: Installation fails with "no space left on device"
269
-
270
- **Solution**: The full TeX Live installation requires approximately 6 GB. Free up disk space or use a smaller installation:
271
-
272
- ```bash
273
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-latex-base
274
- ```
275
-
276
- **Problem**: Missing LaTeX packages when compiling documents
277
-
278
- **Solution**: The base installation may not include all packages. Install additional packages:
279
-
280
- ```bash
281
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-latex-extra texlive-fonts-extra texlive-science
282
- ```
283
-
284
- **Problem**: Old TeX Live version in repository
285
-
286
- **Solution**: Ubuntu and Debian repositories contain TeX Live versions that may be a few years behind the current release. For the latest version, use the native TeX Live installer from TUG (see the manual installation section in Git Bash).
287
-
288
- ---
289
-
290
- ### Raspberry Pi OS (APT)
291
-
292
- #### Prerequisites
293
-
294
- - Raspberry Pi OS (64-bit recommended) - Bookworm or Bullseye
295
- - Raspberry Pi 3B+ or later (64-bit capable hardware recommended)
296
- - At least 6 GB free disk space for full installation (300 MB for basic installation)
297
- - At least 2 GB RAM (4 GB recommended for compiling complex documents)
298
- - sudo privileges
299
-
300
- First, verify your architecture:
301
-
302
- ```bash
303
- uname -m
304
- ```
305
-
306
- - `aarch64` = 64-bit (recommended)
307
- - `armv7l` = 32-bit (supported but limited)
308
-
309
- #### Installation Steps
310
-
311
- Run the following commands to install the full TeX Live distribution:
312
-
313
- ```bash
314
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
315
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-full
316
- ```
317
-
318
- The installation is identical to Ubuntu/Debian since Raspberry Pi OS is Debian-based. The ARM architecture is fully supported.
319
-
320
- **Note**: Installation on Raspberry Pi can be significantly slower than on desktop systems, especially when using an SD card. Expect 1-2 hours for the full installation. Using a high-quality SD card (Class 10 or faster) or an SSD/USB storage will improve performance.
321
-
322
- For a faster installation with core LaTeX functionality:
323
-
324
- ```bash
325
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
326
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-latex-recommended texlive-fonts-recommended
327
- ```
328
-
329
- #### Verification
330
-
331
- Confirm the installation succeeded:
332
-
333
- ```bash
334
- latex --version
335
- ```
336
-
337
- Expected output (version numbers may vary):
338
-
339
- ```
340
- pdfTeX 3.141592653-2.6-1.40.24 (TeX Live 2023/Debian)
341
- kpathsea version 6.3.5
342
- ...
343
- ```
344
-
345
- Test the installation:
346
-
347
- ```bash
348
- echo '\documentclass{article}\begin{document}Hello, LaTeX!\end{document}' > /tmp/test.tex
349
- pdflatex -interaction=nonstopmode -output-directory=/tmp /tmp/test.tex
350
- ```
351
-
352
- If successful, a file `/tmp/test.pdf` will be created.
353
-
354
- #### Troubleshooting
355
-
356
- **Problem**: Installation extremely slow
357
-
358
- **Solution**: Raspberry Pi SD cards can be slow for large installations. Consider:
359
-
360
- 1. Using a faster SD card (Class 10 or UHS-I)
361
- 2. Booting from USB/SSD instead of SD card
362
- 3. Installing the minimal TeX Live package first:
363
-
364
- ```bash
365
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-latex-base
366
- ```
367
-
368
- **Problem**: Out of memory errors during document compilation
369
-
370
- **Solution**: Add swap space to handle memory-intensive compilations:
371
-
372
- ```bash
373
- sudo fallocate -l 2G /swapfile
374
- sudo chmod 600 /swapfile
375
- sudo mkswap /swapfile
376
- sudo swapon /swapfile
377
- echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
378
- ```
379
-
380
- **Problem**: "no space left on device" error
381
-
382
- **Solution**: The full installation requires approximately 6 GB. Check available space:
383
-
384
- ```bash
385
- df -h /
386
- ```
387
-
388
- Free up space or use a minimal installation:
389
-
390
- ```bash
391
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-latex-base
392
- ```
393
-
394
- **Problem**: ARM-specific font rendering issues
395
-
396
- **Solution**: Install additional font packages:
397
-
398
- ```bash
399
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-fonts-extra fonts-liberation
400
- ```
401
-
402
- ---
403
-
404
- ### Amazon Linux/RHEL (DNF/YUM)
405
-
406
- #### Prerequisites
407
-
408
- - Amazon Linux 2023 (AL2023), Amazon Linux 2 (AL2), RHEL 8/9, or CentOS Stream
409
- - sudo privileges
410
- - At least 6 GB free disk space for full installation
411
-
412
- **Note**: Amazon Linux 2023 and RHEL 9 use DNF as the package manager. Amazon Linux 2 and RHEL 7/8 use YUM. The commands below use DNF; for older systems, replace `dnf` with `yum`.
413
-
414
- #### Installation Steps
415
-
416
- **For Amazon Linux 2023 and RHEL 9:**
417
-
418
- Run the following commands to install TeX Live:
419
-
420
- ```bash
421
- sudo dnf install -y texlive-scheme-full
422
- ```
423
-
424
- This installs the full TeX Live distribution. The `-y` flag automatically confirms the installation without prompts.
425
-
426
- **Note**: The `texlive-scheme-full` package may not be available in all repositories. If unavailable, install the available TeX Live packages:
427
-
428
- ```bash
429
- sudo dnf install -y texlive texlive-latex texlive-xetex texlive-collection-latexrecommended texlive-collection-fontsrecommended
430
- ```
431
-
432
- **For Amazon Linux 2:**
433
-
434
- ```bash
435
- sudo yum install -y texlive texlive-latex texlive-xetex
436
- ```
437
-
438
- Amazon Linux 2 has a more limited TeX Live package selection. For additional packages:
439
-
440
- ```bash
441
- sudo yum install -y texlive-collection-latexrecommended texlive-collection-fontsrecommended
442
- ```
443
-
444
- #### Verification
445
-
446
- Confirm the installation succeeded:
447
-
448
- ```bash
449
- latex --version
450
- ```
451
-
452
- Expected output (version numbers may vary):
453
-
454
- ```
455
- pdfTeX 3.141592653-2.6-1.40.25 (TeX Live 2024)
456
- kpathsea version 6.3.5
457
- ...
458
- ```
459
-
460
- Test the installation:
461
-
462
- ```bash
463
- echo '\documentclass{article}\begin{document}Hello, LaTeX!\end{document}' > /tmp/test.tex
464
- pdflatex -interaction=nonstopmode -output-directory=/tmp /tmp/test.tex
465
- ```
466
-
467
- If successful, a file `/tmp/test.pdf` will be created.
468
-
469
- #### Troubleshooting
470
-
471
- **Problem**: `No match for argument: texlive-scheme-full`
472
-
473
- **Solution**: The full scheme may not be available. Install core packages individually:
474
-
475
- ```bash
476
- sudo dnf install -y texlive texlive-latex texlive-xetex texlive-collection-latex texlive-collection-latexrecommended
477
- ```
478
-
479
- **Problem**: Missing LaTeX packages when compiling documents
480
-
481
- **Solution**: Install additional collections as needed:
482
-
483
- ```bash
484
- sudo dnf install -y texlive-collection-latexextra texlive-collection-fontsextra texlive-collection-science
485
- ```
486
-
487
- Or use `tlmgr` to install specific packages (if native TeX Live is installed):
488
-
489
- ```bash
490
- sudo tlmgr install <package-name>
491
- ```
492
-
493
- **Problem**: TeX Live version is older than expected
494
-
495
- **Solution**: Amazon Linux and RHEL prioritize stability over currency. For the latest TeX Live version, use the native installer from TUG:
496
-
497
- ```bash
498
- cd /tmp
499
- curl -L -o install-tl-unx.tar.gz https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
500
- tar -xzf install-tl-unx.tar.gz
501
- cd install-tl-*/
502
- perl ./install-tl --no-interaction --scheme=full
503
- ```
504
-
505
- Then add to PATH:
506
-
507
- ```bash
508
- echo 'export PATH="/usr/local/texlive/2025/bin/x86_64-linux:$PATH"' >> ~/.bashrc
509
- source ~/.bashrc
510
- ```
511
-
512
- **Problem**: Perl dependencies missing for native installer
513
-
514
- **Solution**: Install Perl and required modules:
515
-
516
- ```bash
517
- sudo dnf install -y perl perl-Digest-MD5
518
- ```
519
-
520
- ---
521
-
522
- ### Windows (Chocolatey)
523
-
524
- #### Prerequisites
525
-
526
- - Windows 10 or Windows 11 (64-bit)
527
- - Administrator PowerShell or Command Prompt
528
- - Chocolatey package manager installed
529
- - At least 8 GB free disk space for full installation
530
- - Stable internet connection (installation downloads several gigabytes)
531
-
532
- If Chocolatey is not installed, install it first by running this command in an Administrator PowerShell:
533
-
534
- ```powershell
535
- Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
536
- ```
537
-
538
- #### Installation Steps
539
-
540
- Run the following command in an Administrator PowerShell or Command Prompt to install TeX Live:
541
-
542
- ```powershell
543
- choco install texlive -y --params="'/scheme:full'"
544
- ```
545
-
546
- The `-y` flag automatically confirms all prompts. The `/scheme:full` parameter installs the complete TeX Live distribution.
547
-
548
- **Note**: The full installation takes 45-90 minutes depending on network speed and system performance. TeX Live installs to `C:\texlive\<year>` by default.
549
-
550
- For a smaller, faster installation with basic LaTeX functionality:
551
-
552
- ```powershell
553
- choco install texlive -y --params="'/scheme:basic'"
554
- ```
555
-
556
- After installation completes, restart your terminal or PowerShell to update the PATH.
557
-
558
- #### Verification
559
-
560
- Open a new Command Prompt or PowerShell window, then run:
561
-
562
- ```powershell
563
- latex --version
564
- ```
565
-
566
- Expected output (version numbers may vary):
567
-
568
- ```
569
- pdfTeX 3.141592653-2.6-1.40.26 (TeX Live 2025/W32TeX)
570
- kpathsea version 6.4.0
571
- ...
572
- ```
573
-
574
- Test the installation:
575
-
576
- ```powershell
577
- echo \documentclass{article}\begin{document}Hello, LaTeX!\end{document} > %TEMP%\test.tex
578
- pdflatex -interaction=nonstopmode -output-directory=%TEMP% %TEMP%\test.tex
579
- ```
580
-
581
- If successful, a file `%TEMP%\test.pdf` will be created.
582
-
583
- #### Troubleshooting
584
-
585
- **Problem**: `latex is not recognized as an internal or external command`
586
-
587
- **Solution**: The PATH may not be updated. Restart your terminal. If the problem persists, add TeX Live to PATH manually:
588
-
589
- 1. Find your TeX Live installation (usually `C:\texlive\2025\bin\windows`)
590
- 2. Add to PATH in System Properties > Environment Variables
591
-
592
- Or run from PowerShell:
593
-
594
- ```powershell
595
- $env:Path += ";C:\texlive\2025\bin\windows"
596
- ```
597
-
598
- **Problem**: Installation times out
599
-
600
- **Solution**: TeX Live installation can take over an hour. Increase the Chocolatey timeout:
601
-
602
- ```powershell
603
- choco install texlive -y --params="'/scheme:full'" --execution-timeout=7200
604
- ```
605
-
606
- **Problem**: Installation fails with network errors
607
-
608
- **Solution**: TeX Live downloads packages from CTAN mirrors. If mirrors are slow:
609
-
610
- 1. Retry the installation
611
- 2. Use a different network
612
- 3. Consider installing during off-peak hours
613
-
614
- **Problem**: "Access denied" errors during installation
615
-
616
- **Solution**: Ensure you are running PowerShell or Command Prompt as Administrator. Right-click the application and select "Run as administrator".
617
-
618
- **Problem**: Disk space issues
619
-
620
- **Solution**: The full TeX Live installation requires approximately 8 GB. Check available space:
621
-
622
- ```powershell
623
- Get-PSDrive C | Select-Object Used,Free
624
- ```
625
-
626
- Use the basic scheme if space is limited:
627
-
628
- ```powershell
629
- choco install texlive -y --params="'/scheme:basic'"
630
- ```
631
-
632
- ---
633
-
634
- ### WSL (Ubuntu)
635
-
636
- #### Prerequisites
637
-
638
- - Windows 10 version 2004 or higher, or Windows 11
639
- - WSL 2 enabled with Ubuntu distribution installed
640
- - sudo privileges within WSL
641
- - At least 6 GB free disk space in WSL
642
-
643
- #### Installation Steps
644
-
645
- Run these commands in your WSL Ubuntu terminal:
646
-
647
- ```bash
648
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
649
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-full
650
- ```
651
-
652
- The installation is identical to native Ubuntu since WSL runs a full Ubuntu userspace.
653
-
654
- **Note**: The installation downloads and extracts several gigabytes of data. Ensure your WSL has sufficient disk space. By default, WSL uses a virtual disk that can grow, but you may need to compact it periodically.
655
-
656
- For a smaller installation:
657
-
658
- ```bash
659
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
660
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-latex-recommended texlive-fonts-recommended texlive-latex-extra
661
- ```
662
-
663
- #### Verification
664
-
665
- Confirm the installation succeeded:
666
-
667
- ```bash
668
- latex --version
669
- ```
670
-
671
- Expected output (version numbers may vary):
672
-
673
- ```
674
- pdfTeX 3.141592653-2.6-1.40.24 (TeX Live 2023/Debian)
675
- kpathsea version 6.3.5
676
- ...
677
- ```
678
-
679
- Test the installation:
680
-
681
- ```bash
682
- echo '\documentclass{article}\begin{document}Hello, LaTeX!\end{document}' > /tmp/test.tex
683
- pdflatex -interaction=nonstopmode -output-directory=/tmp /tmp/test.tex
684
- ```
685
-
686
- If successful, a file `/tmp/test.pdf` will be created.
687
-
688
- To view the PDF from WSL, copy it to a Windows-accessible location:
689
-
690
- ```bash
691
- cp /tmp/test.pdf /mnt/c/Users/$USER/Desktop/
692
- ```
693
-
694
- #### Troubleshooting
695
-
696
- **Problem**: Installation very slow
697
-
698
- **Solution**: WSL disk I/O can be slower than native Linux. The TeX Live installation involves many small files. Be patient, or use a minimal installation first.
699
-
700
- **Problem**: "no space left on device" error
701
-
702
- **Solution**: WSL virtual disks have limited default sizes. Check available space:
703
-
704
- ```bash
705
- df -h /
706
- ```
707
-
708
- Compact the WSL virtual disk from Windows PowerShell (run as Administrator):
709
-
710
- ```powershell
711
- wsl --shutdown
712
- Optimize-VHD -Path "$env:LOCALAPPDATA\Packages\CanonicalGroupLimited.Ubuntu*\LocalState\ext4.vhdx" -Mode Full
713
- ```
714
-
715
- **Problem**: PDF viewers not available in WSL
716
-
717
- **Solution**: WSL is primarily a command-line environment. View PDFs using Windows applications:
718
-
719
- ```bash
720
- # Copy to Windows and open with default viewer
721
- cp /tmp/test.pdf /mnt/c/Users/$USER/Desktop/
722
- cmd.exe /c start "" "C:\\Users\\$USER\\Desktop\\test.pdf"
723
- ```
724
-
725
- Or install a WSL-compatible PDF viewer with X server support.
726
-
727
- **Problem**: Missing fonts in compiled documents
728
-
729
- **Solution**: Install additional font packages:
730
-
731
- ```bash
732
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-fonts-extra fonts-liberation fonts-dejavu
733
- ```
734
-
735
- ---
736
-
737
- ### Git Bash (Manual/Portable)
738
-
739
- #### Prerequisites
740
-
741
- - Windows 10 or Windows 11 (64-bit)
742
- - Git Bash installed (comes with Git for Windows)
743
- - Administrator privileges for system-wide installation, or write access to installation directory for portable installation
744
- - At least 8 GB free disk space for full installation
745
-
746
- **Note**: Git Bash on Windows shares the Windows PATH, so installing TeX Live on Windows makes it available in Git Bash automatically. The recommended approach is to use the Chocolatey installation method (see Windows section). This section documents accessing TeX Live from Git Bash after Windows installation.
747
-
748
- #### Installation Steps
749
-
750
- **Recommended: Install TeX Live via Chocolatey (see Windows section)**
751
-
752
- After installing TeX Live on Windows using Chocolatey, the `latex` command will be available in Git Bash once you restart the terminal.
753
-
754
- **Alternative: Manual PATH Configuration**
755
-
756
- If TeX Live was installed manually or the PATH is not configured automatically, add TeX Live to your Git Bash PATH.
757
-
758
- Create or edit `~/.bashrc`:
759
-
760
- ```bash
761
- echo 'export PATH="/c/texlive/2025/bin/windows:$PATH"' >> ~/.bashrc
762
- source ~/.bashrc
763
- ```
764
-
765
- Adjust the path according to your TeX Live installation location. Common locations:
766
-
767
- - `C:\texlive\2025\bin\windows` (Chocolatey installation)
768
- - `C:\texlive\2025\bin\win64` (Manual installation)
769
-
770
- **Portable Installation for Git Bash:**
771
-
772
- For a truly portable setup (e.g., on a USB drive), download and install TeX Live with the portable option:
773
-
774
- 1. Download the TeX Live installer from a Windows Command Prompt or PowerShell:
775
-
776
- ```powershell
777
- curl -L -o "%TEMP%\install-tl.zip" https://mirror.ctan.org/systems/texlive/tlnet/install-tl.zip
778
- cd %TEMP%
779
- tar -xf install-tl.zip
780
- cd install-tl-*
781
- ```
782
-
783
- 2. Run the installer with portable flag:
784
-
785
- ```powershell
786
- perl install-tl -no-gui -portable -scheme full
787
- ```
788
-
789
- 3. Configure Git Bash to use the portable installation by adding to `~/.bashrc`:
790
-
791
- ```bash
792
- echo 'export PATH="/c/path/to/portable/texlive/bin/windows:$PATH"' >> ~/.bashrc
793
- source ~/.bashrc
794
- ```
795
-
796
- #### Verification
797
-
798
- Open Git Bash and confirm the installation:
799
-
800
- ```bash
801
- latex --version
802
- ```
803
-
804
- Expected output (version numbers may vary):
805
-
806
- ```
807
- pdfTeX 3.141592653-2.6-1.40.26 (TeX Live 2025)
808
- kpathsea version 6.4.0
809
- ...
810
- ```
811
-
812
- Test the installation:
813
-
814
- ```bash
815
- echo '\documentclass{article}\begin{document}Hello, LaTeX!\end{document}' > /tmp/test.tex
816
- pdflatex -interaction=nonstopmode -output-directory=/tmp /tmp/test.tex
817
- ```
818
-
819
- If successful, a file `/tmp/test.pdf` will be created.
820
-
821
- #### Troubleshooting
822
-
823
- **Problem**: `latex: command not found` in Git Bash
824
-
825
- **Solution**: The PATH may not include TeX Live. Check if TeX Live is installed on Windows:
826
-
827
- ```bash
828
- ls "/c/texlive/"
829
- ```
830
-
831
- If the directory exists, add it to your PATH:
832
-
833
- ```bash
834
- export PATH="/c/texlive/2025/bin/windows:$PATH"
835
- ```
836
-
837
- Add this line to `~/.bashrc` for persistence.
838
-
839
- **Problem**: Path conversion issues with Git Bash
840
-
841
- **Solution**: Git Bash automatically converts Unix-style paths to Windows paths, which can sometimes cause issues. Use Windows-style paths with forward slashes:
842
-
843
- ```bash
844
- pdflatex -output-directory=C:/Users/$USER/Documents C:/Users/$USER/Documents/test.tex
845
- ```
846
-
847
- Or disable path conversion temporarily:
848
-
849
- ```bash
850
- MSYS_NO_PATHCONV=1 pdflatex -output-directory=/c/Users/$USER/Documents /c/Users/$USER/Documents/test.tex
851
- ```
852
-
853
- **Problem**: TeX Live commands work in Command Prompt but not Git Bash
854
-
855
- **Solution**: Git Bash may not inherit the Windows PATH correctly. Verify PATH includes TeX Live:
856
-
857
- ```bash
858
- echo $PATH | tr ':' '\n' | grep -i texlive
859
- ```
860
-
861
- If not found, add manually to `~/.bashrc`:
862
-
863
- ```bash
864
- echo 'export PATH="$PATH:/c/texlive/2025/bin/windows"' >> ~/.bashrc
865
- source ~/.bashrc
866
- ```
867
-
868
- **Problem**: `kpathsea` database not found errors
869
-
870
- **Solution**: Run the TeX Live font map update:
871
-
872
- ```bash
873
- mktexlsr
874
- updmap-sys
875
- ```
876
-
877
- ---
878
-
879
- ## Post-Installation Configuration
880
-
881
- After installing TeX Live on any platform, consider these optional but recommended configurations.
882
-
883
- ### Updating TeX Live Packages
884
-
885
- TeX Live includes `tlmgr` (TeX Live Manager) for updating packages:
886
-
887
- ```bash
888
- # Update tlmgr itself first (Linux/macOS may require sudo)
889
- sudo tlmgr update --self
890
-
891
- # Update all packages
892
- sudo tlmgr update --all
893
- ```
894
-
895
- On macOS with Homebrew-installed MacTeX, use:
896
-
897
- ```bash
898
- sudo tlmgr update --self --all
899
- ```
900
-
901
- **Note**: Distribution-packaged TeX Live (apt, dnf) may not include a functional `tlmgr`. Use the distribution's package manager for updates instead, or install TeX Live directly from TUG.
902
-
903
- ### Installing Additional Packages
904
-
905
- Install specific LaTeX packages using `tlmgr`:
906
-
907
- ```bash
908
- # Install a single package
909
- sudo tlmgr install <package-name>
910
-
911
- # Install multiple packages
912
- sudo tlmgr install package1 package2 package3
913
-
914
- # Search for packages
915
- tlmgr search <search-term>
916
- ```
917
-
918
- For distribution-packaged TeX Live, use the system package manager:
919
-
920
- ```bash
921
- # Ubuntu/Debian
922
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-<package-collection>
923
-
924
- # Amazon Linux/RHEL
925
- sudo dnf install -y texlive-<package-collection>
926
- ```
927
-
928
- ### Configuring Default Paper Size
929
-
930
- Set the default paper size (letter or a4):
931
-
932
- ```bash
933
- # For US Letter (8.5" x 11")
934
- sudo tlmgr paper letter
935
-
936
- # For A4 (210mm x 297mm)
937
- sudo tlmgr paper a4
938
- ```
939
-
940
- ### Setting Up Editor Integration
941
-
942
- Popular LaTeX editors and their integration methods:
943
-
944
- - **VS Code**: Install the "LaTeX Workshop" extension
945
- - **Sublime Text**: Install the "LaTeXTools" package
946
- - **Vim**: Use "vimtex" plugin
947
- - **Emacs**: Use AUCTeX package
948
-
949
- Verify your editor can find the LaTeX binaries by ensuring the PATH is correctly set.
950
-
951
- ---
952
-
953
- ## Common Issues
954
-
955
- ### Issue: "LaTeX Error: File `<package>.sty' not found"
956
-
957
- **Symptoms**: Compilation fails because a required style file is missing.
958
-
959
- **Solutions**:
960
-
961
- Find and install the missing package:
962
-
963
- ```bash
964
- # Search for the package
965
- tlmgr search --global --file <package>.sty
966
-
967
- # Install the package
968
- sudo tlmgr install <package-name>
969
- ```
970
-
971
- For distribution-packaged TeX Live:
972
-
973
- ```bash
974
- # Ubuntu/Debian
975
- apt-cache search <package>
976
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y <texlive-package>
977
- ```
978
-
979
- ### Issue: Font-Related Errors
980
-
981
- **Symptoms**: "Font ... not found" or poor-quality fonts in output.
982
-
983
- **Solutions**:
984
-
985
- Update the font maps:
986
-
987
- ```bash
988
- sudo updmap-sys
989
- ```
990
-
991
- Install additional font packages:
992
-
993
- ```bash
994
- # With tlmgr
995
- sudo tlmgr install collection-fontsrecommended collection-fontsextra
996
-
997
- # Ubuntu/Debian
998
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-fonts-recommended texlive-fonts-extra
999
- ```
1000
-
1001
- ### Issue: Compilation Hangs or Takes Forever
1002
-
1003
- **Symptoms**: `pdflatex` or `latex` command hangs without producing output.
1004
-
1005
- **Solutions**:
1006
-
1007
- Use non-interactive mode to prevent prompts:
1008
-
1009
- ```bash
1010
- pdflatex -interaction=nonstopmode document.tex
1011
- ```
1012
-
1013
- Or use batchmode for even less output:
1014
-
1015
- ```bash
1016
- pdflatex -interaction=batchmode document.tex
1017
- ```
1018
-
1019
- ### Issue: "I can't write on file" Errors
1020
-
1021
- **Symptoms**: TeX cannot create output files.
1022
-
1023
- **Solutions**:
1024
-
1025
- Ensure you have write permissions to the output directory:
1026
-
1027
- ```bash
1028
- # Specify output directory explicitly
1029
- pdflatex -output-directory=/path/to/writable/dir document.tex
1030
- ```
1031
-
1032
- Check disk space:
1033
-
1034
- ```bash
1035
- df -h .
1036
- ```
1037
-
1038
- ### Issue: BibTeX/Bibliography Not Working
1039
-
1040
- **Symptoms**: Citations show as "[?]" or bibliography is missing.
1041
-
1042
- **Solutions**:
1043
-
1044
- Run the full compilation sequence:
1045
-
1046
- ```bash
1047
- pdflatex document.tex
1048
- bibtex document
1049
- pdflatex document.tex
1050
- pdflatex document.tex
1051
- ```
1052
-
1053
- Or use `latexmk` for automatic compilation:
1054
-
1055
- ```bash
1056
- latexmk -pdf document.tex
1057
- ```
1058
-
1059
- ### Issue: Special Characters or Unicode Not Rendering
1060
-
1061
- **Symptoms**: Non-ASCII characters appear as boxes or cause errors.
1062
-
1063
- **Solutions**:
1064
-
1065
- Use XeLaTeX or LuaLaTeX instead of pdfLaTeX for better Unicode support:
1066
-
1067
- ```bash
1068
- xelatex document.tex
1069
- # or
1070
- lualatex document.tex
1071
- ```
1072
-
1073
- Add these packages to your document preamble:
1074
-
1075
- ```latex
1076
- \usepackage[utf8]{inputenc}
1077
- \usepackage[T1]{fontenc}
1078
- ```
1079
-
1080
- ---
1081
-
1082
- ## References
1083
-
1084
- - [TeX Live Official Documentation](https://www.tug.org/texlive/doc.html)
1085
- - [TeX Live Quick Install Guide](https://www.tug.org/texlive/quickinstall.html)
1086
- - [TeX Users Group (TUG)](https://www.tug.org/)
1087
- - [CTAN - Comprehensive TeX Archive Network](https://ctan.org/)
1088
- - [MacTeX Distribution](https://www.tug.org/mactex/)
1089
- - [MacTeX Homebrew Cask](https://formulae.brew.sh/cask/mactex)
1090
- - [BasicTeX Homebrew Cask](https://formulae.brew.sh/cask/basictex)
1091
- - [Ubuntu LaTeX Community Wiki](https://help.ubuntu.com/community/LaTeX)
1092
- - [TeX Live Chocolatey Package](https://community.chocolatey.org/packages/texlive)
1093
- - [tlmgr - TeX Live Manager Documentation](https://www.tug.org/texlive/tlmgr.html)
1094
- - [LaTeX Project](https://www.latex-project.org/)
1095
- - [TeX Live Portable Installation](https://www.tug.org/texlive/portable.html)