# Вопрос новичка про /tmp и /var/tmp

## Laitr Keiows

Какая концептуальная разница между /tmp и /var/tmp? Если я сделаю симлинк с /var/tmp на /tmp может ли это помешать каким-либо программам или что-то сломать/нарушить?

Заранее благодарю за ответы!

----------

## Azik

Есть решение элегантней (man make.conf):

```
echo 'PORTAGE_TMPDIR="/tmp"' >>/etc/make.conf
```

Из чего следует, что временная папка папка может быть где угодно, хоть у пользователя дома  :Smile: .

Я сам первым делом перенес папку в tmp, чтобы очищать ее было легче от мусора. Ничего странного и ужасного не нашел.

----------

## Laitr Keiows

 *Azik wrote:*   

> Ничего странного и ужасного не нашел.

 

Да, но это мне не нужно. Тут вопрос концептуальный: зачем нужна /var/tmp ?

----------

## eugrus

 *Laitr Keiows wrote:*   

> Если я сделаю симлинк с /var/tmp на /tmp может ли это помешать каким-либо программам или что-то сломать/нарушить?

 

Нет т.к. никаких конфликтов структуры там быть не может.

Разница: как между /opt и /usr/local - какой софт к чему приучен, не более.Last edited by eugrus on Mon Jun 16, 2014 1:45 am; edited 1 time in total

----------

## 046

Вообще может. Только не сломать а потерять  :Wink: 

Cодержимое /var/tmp должно сохранятся между перезагрузками, а /tmp нет. Вот основная разница.

У меня например /tmp как tmpfs работает  :Smile: 

----------

## Doter

Переделал сегодня ссылки на /tmp

Удалил /var/tmp сделал свой ~tmp со ссылкой в /home/tmp (папку ессно создал, разрешение на запись дал) и тоже самое проделал с /usr/tmp.

Теперь у меня не запускается ничего :/ работает только то, что запущено. Консоль даже не открывается  :Sad:  При попытке запуска вылазиет табличка KDEInit не может запустить 'konsole' 

Подскажите пожалуйста, что нужно сделать, чтобы всё заработало как я поковырял каталоги?

Заменять стал от того, что / всего 5гб сделал и некоторые пакеты не собираются из-за нехватки места (Openoffice к примеру).

----------

## ba

 *046 wrote:*   

> Cодержимое /var/tmp должно сохранятся между перезагрузками, а /tmp нет. Вот основная разница.

 

ммм... что-то я не уверен что именно в этом разница... имхо это тянется с идеологии тех времен когда /var и /usr монтировали как отдельные файлухи, а / был очень маленький по размеру (так как загрузчики не умели смотреть дальще 2гб с начала диска, а отдельный /boot не выделяли, не помню по каким причинам) и /tmp находился в этом маленьком /, а /var был большой...

----------

## zvn

```
man hier
```

 *Quote:*   

> /tmp   This directory contains temporary files which may be deleted with no notice, such as by a regular
> 
>               job or at system boot up.
> 
> 

 

 *Quote:*   

> /var/tmp
> 
>               Like /tmp, this directory holds temporary files stored for an unspecified duration.

 

----------

## sa10

man hier - не догма, а просто осмысленный набор рекомендаций.

Каждый сам себе архитектор и он определяет концепцию.

Здесь еще может иметь значение раскладка каталогов по разделам диска.

В идеале конечно следует и /var  и /tmp держать на отдельных разделах неограниченного   :Shocked:   размера с индивидуальными параметрами монтирования, но в жизни часто используются различные схемы.

Например я, когда этого требует конкретная ситуация, делаю /tmp на виртуальном диске в памяти с опциями noexec, nodev, nosuid (быстрый доступ для всяких amavis, clam и прочих приблуд,  очистка при перезагрузке), а /var на отдельном большом разделе, а иногда /tmp просто лежит в корне. 

Ограниченность пространства для каталога и все что угодно может иметь значение при этом. А для десктопа все это вообще не важно.

----------

## zvn

 *sa10 wrote:*   

> man hier - не догма, а просто осмысленный набор рекомендаций.

 

Я не настаивал, что это догма, просто есть некая привычная среда.

В конце этого man-а есть http://www.pathname.com/fhs/ для Filesystem Hierarchy Standard, перевод http://rus-linux.net/MyLDP/file-sys/fhs-2.2-rus/index.html

----------

## _Sir_

 *ba wrote:*   

> имхо это тянется с идеологии тех времен когда /var и /usr монтировали как отдельные файлухи, а / был очень маленький по размеру (так как загрузчики не умели смотреть дальще 2гб с начала диска, а отдельный /boot не выделяли, не помню по каким причинам) и /tmp находился в этом маленьком /, а /var был большой...

 

```
sir@bb ~ $ sudo fdisk -l /dev/hda

Disk /dev/hda: 80.0 GB, 80026361856 bytes

255 heads, 63 sectors/track, 9729 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0xe258e258

   Device Boot      Start         End      Blocks   Id  System

/dev/hda1               1          74      594373+  82  Linux swap / Solaris

/dev/hda2   *          75          81       56227+  83  Linux

/dev/hda3              82         103      176715   83  Linux

/dev/hda4             104        9729    77320845    5  Extended

/dev/hda5             104        4868    38274831   8e  Linux LVM

/dev/hda6            4869        9729    39045951   8e  Linux LVM

sir@bb ~ $ sudo lvs

  LV      VG   Attr   LSize  Origin Snap%  Move Log Copy%

  home    dsi  -wi-ao 41.82G

  opt     dsi  -wi-ao  4.00G

  portage dsi  -wi-ao  6.00G

  tmp     dsi  -wi-ao  4.64G

  usr     dsi  -wi-ao  9.00G

  var     dsi  -wi-ao  4.00G
```

В общем, не претендую на идеал   :Laughing: , но еще в старом Mandrake, который только-только начал отплевываться от Red Hat'а, разбивка диска (меньшего объема) исповедывала ту же идеологию, хотя машинка была amd486 с 32Мб озу (вот были времена!)   :Smile:  Сейчас добавился LVM вместо механического разбиения диска и /tmp стал большой -- чтобы входил образ DVD при копировании диска. Ну и /usr/local в Gentoo несколько потерял актуальность, чтобы ему отдельный раздел отводить  :Smile:  Может, я и неправ, но /tmp у меня -- ext2, так же как и /boot, а остальное reiser4. Правда, на домашней машинке, по моему недогляду, уцелела еще ext3 -j в корне, но если буду еще раз менять винчестер, от ext3 откажусь уже полностью. То есть, /tmp -- помойка, /boot -- чем проще, тем лучше, он работает от силы несколько секунд при загрузке, потом, естественно, не монтируется. А маленький корень -- быстрый доступ, когда FS чем-нить пожамкало. Сколько у вас будет чекаться 300Gb диск, в котором всего одна партиция? Так же этот корень очень легко перелить или заархивировать. Смысла делать / более 4.2Gb, помещающихся на DVD, наверное, никакого.

----------

## user11

 *Quote:*   

> Теперь у меня не запускается ничего

  Думаю, для начала надо вернуть всё назад, и чтобы они все были drwxrwxrwt (через chmod a+rwxt).

----------

## user11

Как я понимаю своим ещё-более-новичковым видением, различие тут именно в жизненном цикле файла.

И то, и другое занимается файлами, нужными только в рамках какой-то ограниченной во времени вспомогательной деятельности.

При этом в /tmp лежат данные, нужные только во время жизни отвечающего за них процесса. Его вполне резонно монтировать на tmpfs.

В /var/tmp лежат данные, срок жизни которых больше времени жизни процесса. То есть когда эта "вспомогательная деятельность" сама может состоять из неперекрывающихся во времени процессов.

Как следствие, "демаркационной линией" вполне может служить вопрос "что сделать с этим файлом в момент перезагрузки?"

Примеры:

1. /usr/bin/sort получает в stdin некий большй поток записей, скажем, 5 Гб. Его надо отсортировать и записать в stdout. Afaik, программа sort не будет пытаться считать в память все эти данные одновременно. Она создаст временный файл в /tmp и будет сортировать там. И не важно, какой получится размер файла.

2. ebuild. Если сборка не удалась, все файлы остаются на месте (в /var/tmp), и, в принципе, сборку можно попытаться продолжить чуть ли не с середины. В ebuild заложены механизмы, чтобы в таком случае не распаковывать исходники повторно, если они уже распакованы.

> Если я сделаю симлинк с /var/tmp на /tmp может ли это помешать каким-либо программам или что-то сломать/нарушить?

Думаю, до тех пор, пока /var/tmp имеет 01777, любое приложение, которое сломалось из-за того, что увидело там не то, что хотело, само себе злобное чучело.

А помешать может - при такой ссылке /var/tmp может очищаться при перезагрузках, что иногда сделает жизнь менее удобной. Лично я бы вместо этого просто держал их на одном и том же разделе (ведь это предлагается сделать для экономии зарезервированного для них места, не так ли?).

PS.

Вот чего я не понимаю до конца - так это действительно ли можно безболезненно удалить /var/cache (в т.ч. edb)?

----------

## viy

 *user11 wrote:*   

> PS.
> 
> Вот чего я не понимаю до конца - так это действительно ли можно безболезненно удалить /var/cache (в т.ч. edb)?

 

Болевой порог у всех разный  :Cool: 

----------

