Ответ Кусалананды в целом является лучшим подходом; но в случае netatalk
обновление пакета до более новой версии кажется довольно сложным (по крайней мере, в контексте дистрибутива).
Теперь, когда вы установили локально собранную версию netatalk
, я бы рекомендовал следующий подход (я предполагаю, что вы извлекли netatalk
в каталог под названием netatalk-3.1. 8
, и собрали и установили его оттуда):
tar
распакуйте исходники (и двоичные файлы, собранные в дереве исходников);checkinstall
и распакуйте tarball;установите двоичные файлы, используя checkinstall
checkinstall -D make install
(as root
).
Этот последний шаг установит двоичные файлы, скопированные в предварительно собранный исходный код с вашей первой Raspberry Pi (который не должен требовать никакого пакета -dev
), и создаст из него пакет .deb
. Затем вы можете скопировать пакет .deb
на другие системы Raspberry Pi...
Я не уверен, насколько хорошо это будет работать, если какая-либо из необходимых библиотек отсутствует, поэтому вы можете предварительно запустить ldd
на двоичных файлах на вашем первом Raspberry Pi и убедиться, что соответствующие lib...
пакеты (не -dev
!) установлены на второй.
Есть более простой вариант, если в netatalk
Makefile
есть работающая цель uninstall
: в этом случае на первом Raspberry Pi установите
checkinstall
; uninstall netatalk
:
make uninstall
установите его снова, используя checkinstall
:
checkinstall -D make install
Таким образом, вы будете знать, что необходимые библиотеки уже установлены, и полученный .deb
должен иметь соответствующие зависимости.
Если checkinstall
не сработал, всегда есть возможность использовать предварительно собранный tarball:
tar
загрузите исходники (и двоичные файлы, собранные в дереве исходников); make install
; Это явный признак повреждения файловой системы. Вы должны размонтировать, сделать резервную копию вашего диска на уровне секторов, а затем запустить e2fsck, чтобы увидеть, что происходит. Если есть серьезное повреждение, вы можете позже быть счастливы, что сделали резервную копию на уровне секторов, прежде чем позволить e2fsck вмешиваться в данные.
Если это кому-то поможет, у меня была аналогичная проблема (резервное копирование rsync / rsnapshot для поврежденного файла). Я разместил свою проблему / решение здесь:
https://ubuntuforums.org/showthread.php?t=2348768&p=13627299#post13627299
РЕЗЮМЕ:
Ошибка резервного копирования rsnapshot (rsync) в системе Arch Linux x86_64 ; поврежденный, глубоко вложенный файл вызывал эту ошибку, также показанную, когда я пытался удалить этот файл:
sudo rm -fR hourly.5/
rm: cannot remove 'hourly.5/snapshot_root/mnt/Vancouver/temp/temp - old/temp - 09 (Dec 07, 2014 - Sep 02, 2015)/a_OLD-gmail/victoria.a.stuart@gmail.com/[Gmail]/LINUX/rsync, rsnapshot; Other backups/19.bak': Structure needs cleaning
Вот проблема:
cd mnt/Vancouver/temp/temp\ -\ old/temp\ -\ 09\ \(Dec\ 07\,\ 2014\ -\ Sep\ 02\,\ 2015\)/a_OLD-gmail/victoria.a.stuart@gmail.com/\[Gmail\]/LINUX/rsync\,\ rsnapshot\;\ Other\ backups/
ls -l
ls: cannot access '19.bak': Structure needs cleaning
total 0
-????????? ? ? ? ? ? 19.bak ## << THAT IS THE PROBLEM!!
[См. Также: https://www.reddit.com/r/linuxquestions/comments/4b47r2/has_anyone_ever_gotten_structure_needs_cleaning/ ]
Мой резервный диск - / dev / sda1.
sudo umount /dev/sda1
sudo fsck.ext4 /dev/sda1 ## << accepted suggested fixes
Перезагрузился: вроде все нормально. Зашел на диск с резервными копиями, удалил проблемный файл:
/mnt/Backups/rsnapshot_backups/hourly.5/snapshot_root/mnt/Vancouver/temp/temp - old/temp - 09 (Dec 07, 2014 - Sep 02, 2015)/a_OLD-gmail/victoria.a.stuart@gmail.com/[Gmail]/LINUX/rsync, rsnapshot; Other backups/19.bak
Q.E.D.?!
[Обновление: да; это сработало: мои резервные копии снова работают нормально! :-)]
Файловые системы иногда не в порядке и требуют очистки. Это можно сделать с помощью команды fsck. Но помните, что вы должны запускать fsck только на размонтированных разделах, чтобы избежать риска повреждения файлов.
Если ваша файловая система ext4, попробуйте выполнить эту команду :
fsck -AR -t ext4 -y
Это обычная ошибка при попытке удалить.Trash -0, если вы пытаетесь удалить окна в файловой системе с кодировкой CP1251 в системе Linux. Итак, fs поврежден, но это не важно. Fs Windows всегда поврежден, как видно из Linux. Но это не так. Вы можете попробовать открыть этот файл из ОС Windows. Все будет хорошо. А потом удалить его в винде. И только после этого убирать мусор.
Я исправил эту проблему с помощью этой команды в моей оболочке proxmox
:
pct stop 100
pct fsck 100
pct start 100
Теперь бэкап и все хорошо!
Я получил такое же сообщение об ошибке от rsync и такое же сообщение об ошибке от rm при попытке удалить файл. Поскольку файловая система была корневой файловой системой, использовать fsck было невозможно. Но когда я только что перезагрузил систему, файл исчез, и резервное копирование удалось. Я понятия не имею, почему это сработало, но, по крайней мере, это легко исправить, и сначала стоит попробовать перезагрузку.