[РЕШЕНО] Всегда скачивается реп .. pacman -Sy

в общем
время модификации файла баз данных core
локальная (L)
stat -c "%Y" $(pacman-conf DBPath)sync/core.db
на сервере (S)
date -d $(curl -sI "$(pacman-conf --repo core Server)/core.db" | awk -F': ' '/last-modified/ {print $2}') '+%s'
при обновлении если S > L то начинается полная закачка файла баз данных, в противном случае напишет что база не устарела
red
время модификации файла баз данных core
значит всётаки по времени модификации базы решение принимается, думал используется служебный файл для этого, а не сам файл базы.

[email protected]:~> curl -sI http://mirror.datacenter.by/pub/mirrors/manjaro/stable/core/x86_64/core.db
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 24 Apr 2020 18:48:20 GMT
Content-Type: application/octet-stream
Content-Length: 176060
Last-Modified: Wed, 22 Apr 2020 08:41:34 GMT
Connection: keep-alive
ETag: "5ea0033e-2afbc"
Accept-Ranges: bytes

[email protected]:~> curl -sI http://mirrors.colocall.net/manjaro/stable/core/x86_64/core.db
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Accept-Ranges: bytes
Content-Length: 176060
Date: Fri, 24 Apr 2020 18:48:35 GMT
Server: lighttpd/1.4.45

в первом случае нормальный реп
во втором случае проблемный реп
как видно не выдаёт Last-Modified, в этом похоже и проблема

это настройки вебсервера?
пойду искать контакты админа этого репа

благодарю
grayich
как видно не выдаёт Last-Modified, в этом похоже и проблема
походу так оно и есть

vs220
ради интереса установил локальную дату больше чем на сервере
sudo touch -d '17 May 2099' testbd/sync/core.db
закачка всё равно не происходит хотя и выводит что-то типа этого
 core не устарел                               0,0   B  0,00   B/s 00:00 [----------------------------------------]   0%
red
закачка всё равно не происходит
Может у меня и склероз, может делал -Syy
Но синхронизировало со старой базой на сервере, потом просто предупреждения что локальный пакет новее серверног при обновлении
вообщем так и есть,
решил проверить, а нет ли там фтп.. есть, поменял на фтп и теперь синхронизируется как нужно, по фтп отдаёт дату.

пошёл админа искать
red, молодец, хорошо подметил о времени модификации (Last-Modified).... я что то не сообразил посмотреть в эту сторону и поленился сделать полный трэйс обновления баз, уткнулся в версии пакетов .... хотя меня на тот момент интересовало не обновление баз, а обновление пакетов, на чем и зациклился.
Ошибки не исчезают с опытом - они просто умнеют
red
при обновлении если S > L то начинается полная закачка файла баз данных, в противном случае напишет что база не устарела
От нечего делать немного покапался ..... и сообщаю, что pacman использует следующие два вывода If-Modified-Since и Last-Modified, которые выглядят примерно так (для случая если обновлений не было)
Запрос
95787 15:07:02.037908892 1 pacman (81871) < sendto res=201 data=
GET /archlinux/multilib/os/x86_64/multilib.db
HTTP/1.1..Host: mirrors.n-ix.net..
User-Agent: pacman/5.2.1 (Linux x86_64) libalpm/12.0.1..Accept: */*
..If-Modified-Since: Fri, 24 Apr 2020 07:02:43 GMT.…
Ответ
104243 15:07:02.489850722 1 pacman (81871) < recvfrom res=182 data=
HTTP/1.1 304 Not Modified..Server: nginx/1.16.1
..Date: Sat, 25 Apr 2020 12:09:49 GMT
..Last-Modified: Fri, 24 Apr 2020 07:02:43 GMT… 
В итоге все осталось по прежнему … даты совпадают
If-Modified-Since: Fri, 24 Apr 2020 07:02:43 GMT = Last-Modified: Fri, 24 Apr 2020 07:02:43 GMT
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.