Как скопировать файлы из архива в мою систему, следуя структуре каталогов?

396
mfernandes

У меня проблемы с выяснением того, как установить пакет tcolorbox в мою Ubuntu. Я скачал файл .tds.zip из его репозитория CTAN, но в этом архиве нет makeни installскрипта ...

В файле README авторы делают предложение:

Скопируйте содержимое tcolorbox.tds.zipиз CTAN в локальное дерево файлов TeX.

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

Позвольте мне быть более точным. Архив имеет структуру каталогов, состоящую из двух длинных веток, с кучей файлов, висящих в конце каждой ветви, примерно так:

tcolotbox.tds.zip

  • -----> doc / latex / tcolorbox / (первая группа файлов) *

  • -----> tex / latex / tcolorbox / (вторая группа файлов) *

который вы можете увидеть на следующем рисунке (это скриншот из моего окна Archive Manager). Файлы в конце первой ветви должны идти в одну папку где-то в моем дереве файлов TeX, а вторая группа - в другую папку где-то еще.

структура каталогов архива:

(Если я не совсем уверен в этом вопросе, не могли бы вы скачать архив с CTAN и посмотреть на него?: D)

Итак, мой вопрос:

Есть ли способ скопировать эти файлы в нужные места в моей системе, следуя их структуре каталогов?

(Кажется, они организованы так, чтобы руководить программой, которая будет их копировать, а папки внутри архива имеют имена папок, которые должны быть где-то в моей системе, верно?)

Большое спасибо всем вам!

1
Прошло много времени с тех пор, как мне приходилось использовать ввод из командной строки, и поскольку я использовал только некоторые разновидности Linux в колледже, я должен был бы предложить изучить методы «декомпрессии», потому что вы не просто копируете файлы. Предлагаемые вами файлы заархивированы, поэтому для этого должна быть какая-то команда. Я могу ошибаться, но, возможно, эта логическая линия поможет. У меня такое чувство, что вам придется создать папку tmp для распаковки. Удачи. ejbytes 7 лет назад 0
Добро пожаловать на Супер пользователя. Попробуйте предложенные предложения и вернитесь, чтобы оставить отзыв. На странице вашего собственного вопроса вы можете написать комментарии к вашему вопросу и к ответам. Hastur 7 лет назад 0
Ответ Хастура решил мой вопрос! Мне просто потребовалось две небольшие модификации: (1) скопировать файлы в папку _texmf_ внутри usr / ** local ** / share вместо usr / share (мне нужно было создать структуру каталогов с _mkdir_ перед копированием ...); (2) обновите файл _ls-R_, который уже находился в этой папке, с помощью команды _sudo mktexlsr_ Большое спасибо за ваше время, Хастур! mfernandes 7 лет назад 0
Кстати, вот где я узнал об обновлении _ls-R_: [ссылка] (http://tex.stackexchange.com/questions/38978/how-can-i-manually-install-a-latex-package-debian-ubuntu -linux) mfernandes 7 лет назад 0

2 ответа на вопрос

0
Jonathan Ramos

I think you need to unzip the file. The gzip application unzip the file directory's tree as you see it in the preview. Then you can copy paste from nautilus (ubuntu file manager) or use the terminal. Oh and check if you have write access to the directory you are writting to.

0
Hastur

In my system (Ubuntu 14.04 + texlive), this package is under the main directories of texlive in

/usr/share/doc/texlive-doc/latex/tcolorbox /usr/share/texlive/texmf-dist/tex/latex/tcolorbox 

Usually the packages styles are under /usr/share/texlive/texmf-dist/tex/latex/PACKAGEDIR and the doc below /usr/share/doc/texlive-doc/latex/PACKAGEDIR.

If you have a different Latex/Linux distribution the directory may be different, but not its structure.

  • Download the package
  • unzip it unzip tcolorbox.tds.zip in a temporary directory

    . ├── doc │   └── latex │   └── tcolorbox └── tex └── latex └── tcolorbox 
  • Then copy the 2 directories in the relative paths

    sudo cp -rpi ./doc/latex/tcolorbox /usr/share/doc/texlive-doc/latex/tcolorbox sudo cp -rpi ./tex/latex/tcolorbox /usr/share/texlive/texmf-dist/tex/latex/tcolorbox 

Notes:

  • If you put the style in the directory of your file it should work (only for that directory, it can be cosy if you work on many environment and you cannot set all, if you give the file to someone in this conditions, if you need to use a specific version different from the installed one).
  • If you put in a different directory (e.g. ./sty) you can set an environment variable TEXINPUTS=".:./sty:" [1] then run pdflatex.
  • Usually you can add packages (or bunch of packages) from the system (e.g. in Ubuntu with sudo apt-get install ... or with tlmgr package_name or with tlmgr --gui ... )
  • You should know your latex version and search for the path in which it is installed on your system in the man or in the documentation. BTW to find the main directory where the packages are installed you can play a little with Linux ...

    locate *.sty| awk ''| sh | sort | uniq -c|sort -n 

    With high probability the entry with the higher number is your path. Use a | grep doc to put in evidence the doc one...

Я попробовал эту процедуру, но сначала она не сработала ... После еще нескольких поисков я обнаружил, что люди рекомендуют помещать установленные вручную пакеты в каталог / usr / ** local ** / share / texmf. Таким образом, я следовал вашей процедуре с этой другой папкой (мне сначала нужно было создать структуру папок с помощью mkdir), и она работала после обновления файла _ls-R_, который уже был внутри него (с помощью _sudo mktexlsr_)! Большое спасибо за ваше время, Хастур! mfernandes 7 лет назад 0
Кроме того, эта команда _locate | awk_ была действительно полезной, я бы никогда не понял, какая папка была бы правильной без нее ... Это был действительно приятный трюк! Не могли бы вы объяснить это немного? mfernandes 7 лет назад 0
@mfernandes Пожалуйста. Есть много мест, где вы можете поместить свой пакет, и они зависят от системы и _Latex distribution_. В общем, вы должны индивидуализировать свою версию и прочитать инструкцию для этой версии. Эта строка была ленивым обходным путем, написанным «на лету». Вы хотите установить файл `* sty`. `locate * sty`, если установлен updatedb, отвечает вам списком всех установленных стилей (которые хранятся в файле updatedb). Канал (`|`) принимает выходные данные предыдущей команды и перенаправляет их как следующие. awk пишет для каждой строки команду `dirname / path / to / file`. (%) Hastur 7 лет назад 0
(%) Каждый пакет установлен в своем подкаталоге, поэтому мне нужно 2 `dirname` (второй выполняется в подоболочке` () `, возвращаемой как переменная к первому` $ () `),` sh` выполняет каждую строку, `sort` упорядочивает их,` uniq -c` записывает только одну строку с повторяющимся числом, последний `sort -n` упорядочивает вывод числа (-n) от меньшего к большему. Таким образом, у вас есть номер `* .sty` в каждом каталоге дедушки, это место, где вы должны скопировать свой каталог. Это не так хорошо написано, но оно следует за шагами, которые я сделал, чтобы найти его ... Linux _train_ команд. Hastur 7 лет назад 0

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