nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
Так как в пакмене нет функций для проверки целосности системы, какие файлы изменились и изменились ли у них группы, владельцы и т.п., а умеет от только проверять отсутствие файлов, то решил исправить положение. Данный скрипт служит для поиска и вывода списка новых файлов которые отсутствуют в пакетах и появились в процессе жизни системы. Так же скрипт умеет сравнивать файлы в пакетах и в системе, выводя список измененных. Для полноценной проверки, в кэше должны присутствовать все установленные пакеты!!! Полезно для контролля целостности системы и поиска "мусора". А так же для частичного бекапа системы. Использует библиотечку functions от сюда viewtopic.php?f=29&t=9957#p89236 pacman-files-list - скрипт выводящий списки файлов
Пример использования
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
hascee |
|
Темы:
4
Сообщения:
13
Участник с: 09 апреля 2012
|
(из viewtopic.php?f=6&t=10086 ) Попробовал использовать скрипт, но некоторые пакеты в кэше пакмана почищены , но и за этого ли сыпятся ошибки вроде : Проверяю пакет systemd 192-1 find: `//systemd-192-1-*.pkg.tar.[gx]z': Нет такого файла или каталога не найден в кэше, пропускаю systemd Проверяю пакет sysvinit 2.88-8 find: `//sysvinit-2.88-8-*.pkg.tar.[gx]z': Нет такого файла или каталога не найден в кэше, пропускаю sysvinit Проверяю пакет sysvinit-tools 2.88-8 find: `//sysvinit-tools-2.88-8-*.pkg.tar.[gx]z': Нет такого файла или каталога не найден в кэше, пропускаю sysvinit-tools Проверяю пакет taglib 1.8-1 find: `//taglib-1.8-1-*.pkg.tar.[gx]z': Нет такого файла или каталога не найден в кэше, пропускаю taglib Проверяю пакет taglib-extras 1.0.1-2 find: `//taglib-extras-1.0.1-2-*.pkg.tar.[gx]z': Нет такого файла или каталога не найден в кэше, пропускаю taglib-extras Проверяю пакет talloc 2.0.7-1 find: `//talloc-2.0.7-1-*.pkg.tar.[gx]z': Нет такого файла или каталога не найден в кэше, пропускаю talloc Проверяю пакет tar 1.26-2 find: `//tar-1.26-2-*.pkg.tar.[gx]z': Нет такого файла или каталога Фитч реквест : автоматическая докачка ненайденых в кэше пакетов; возможность поиска пакетов в других местах. Необходимы ли скрипту рут права, может для некоторых ключей их можно смягчить (например -с)? ps возможно скажу глупость, но нельзя получить необходимую информацию о файлах пакета , не скачивая его? (из базы пакмана, из packages.archlinux.org) |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
HasceeЭтот скрипт работает только с тем что уже есть в кэше. Докачку можно сделать, но в другом скрипте, например список недостающих пакетов в кэше выводит вот этот скрипт viewtopic.php?f=29&t=9957#p89236 , а скормить списки на загрузку пакмену и йогурту минутное дело... Просто не все пакеты могут быть установлены из реп. Например локально установленные пакеты командой pacman -U <пакет> вообще не попадают в кэш, их только ручками нужно туда копировать... А чтобы собранные из AUR с помощью yaourt пакеты в кэш отправлялись нужно соответственно настроить yaourtrc и makepkg.conf HasceeЧастично необходимы, в некоторые папки без рут прав не пустит, соответственно и не проверятся там файлы... Хотя можно сделать просто вывод предупреждения типа - "Сюда меня не пустили, пропускаю" HasceeВ базе пакмена только имена файлов и больше ничего (огромное упущение), могли хотя бы хеш файла, группу, пользователя и доп атрибуты в базу записывать. Проще было проверить систему на несоответствия...
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
Изменил, теперь при запуске без привилегий root, в начале будет выводится сообщение, а куда tar не пустят он сам выведет предупреждение.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
HasceeИсправил и это, была ошибка удаления последнего слеша из пути… Нужно загрузить исправленную версию functions от сюда viewtopic.php?f=29&t=9957&p=89236#p89236
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
hascee |
|
Темы:
4
Сообщения:
13
Участник с: 09 апреля 2012
|
использую (sudo) bash pacman-pkg-list -с при этом скрипт ничего не выводит (только две системные строчки ) и завершает свою работу Однако при использовании sudo pacman-files-list -c > files.list Проверяю пакет zip 3.0-3 find: `/var/cache/pacman/pkg/zip-3.0-3-*.pkg.tar.[gx]z': Нет такого файла или каталога не найден в кэше, пропускаю zip Проверяю пакет zlib 1.2.7-1 find: `/var/cache/pacman/pkg/zlib-1.2.7-1-*.pkg.tar.[gx]z': Нет такого файла или каталога не найден в кэше, пропускаю zlib Проверяю пакет zsh 5.0.0-2 tar: Ignoring unknown extended header keyword `SCHILY.fflags' + сначала иногда ругается Проверяю пакет amarok 2.6.0-1 tar: Ignoring unknown extended header keyword `SCHILY.fflags' tar: Ignoring unknown extended header keyword `SCHILY.fflags' tar: Ignoring unknown extended header keyword `SCHILY.fflags' содержание файла changed list cat changed.list >>> /var/cache/pacman/pkg/filesystem-2012.8-1-any.pkg.tar.xz /etc/fstab: Size differs /etc/group: Size differs /etc/hosts: Size differs /etc/passwd: Size differs /etc/resolv.conf: Size differs /etc/shells: Size differs /etc/gshadow: Size differs /etc/shadow: Size differs >>> /var/cache/pacman/pkg/flashplugin-11.2.202.238-1-i686.pkg.tar.xz /etc/adobe/mms.cfg: Size differs >>> /var/cache/pacman/pkg/glibc-2.16.0-4-i686.pkg.tar.xz /etc/locale.gen: Size differs >>> /var/cache/pacman/pkg/initscripts-2012.09.1-1-any.pkg.tar.xz /etc/inittab: Contents differ /etc/rc.conf: Size differs >>> /var/cache/pacman/pkg/linux-3.5.4-1-i686.pkg.tar.xz /usr/lib/modules/3.5.4-1-ARCH/modules.symbols: Size differs /usr/lib/modules/3.5.4-1-ARCH/modules.symbols.bin: Size differs /usr/lib/modules/3.5.4-1-ARCH/modules.dep.bin: Size differs /usr/lib/modules/3.5.4-1-ARCH/modules.alias.bin: Contents differ /usr/lib/modules/3.5.4-1-ARCH/modules.dep: Size differs >>> /var/cache/pacman/pkg/lxde-common-0.5.5-2-any.pkg.tar.xz /etc/xdg/lxsession/LXDE/autostart: Size differs >>> /var/cache/pacman/pkg/lxdm-0.4.1-15-i686.pkg.tar.xz /etc/lxdm/lxdm.conf: Mode differs /etc/lxdm/lxdm.conf: Gid differs >>> /var/cache/pacman/pkg/mc-4.8.6-1-i686.pkg.tar.xz /etc/mc/filehighlight.ini: Size differs /etc/mc/edit.indent.rc: Mode differs >>> /var/cache/pacman/pkg/mysql-5.5.28-1-i686.pkg.tar.xz /etc/mysql/my.cnf: Uid differs /etc/mysql/my.cnf: Gid differs /etc/mysql/my.cnf: Size differs >>> /var/cache/pacman/pkg/pacman-4.0.3-3-i686.pkg.tar.xz /etc/pacman.conf: Size differs >>> /var/cache/pacman/pkg/perl-test-pod-1.45-1-any.pkg.tar.xz /usr/share/man/man3/Test\:\:Pod.3pm.gz: Mode differs /usr/share/perl5/vendor_perl/Test/Pod.pm: Mode differs >>> /var/cache/pacman/pkg/perl-yaml-syck-1.20-2-i686.pkg.tar.xz /usr/lib/perl5/vendor_perl/YAML/Syck.pm: Mode differs /usr/lib/perl5/vendor_perl/YAML/Loader/Syck.pm: Mode differs /usr/lib/perl5/vendor_perl/YAML/Dumper/Syck.pm: Mode differs /usr/lib/perl5/vendor_perl/JSON/Syck.pm: Mode differs /usr/lib/perl5/vendor_perl/auto/YAML/Syck/Syck.so: Mode differs /usr/lib/perl5/vendor_perl/auto/YAML/Syck/Syck.bs: Mode differs /usr/share/man/man3/JSON\:\:Syck.3pm.gz: Mode differs /usr/share/man/man3/YAML\:\:Syck.3pm.gz: Mode differs >>> /var/cache/pacman/pkg/prelink-20111012-1-i686.pkg.tar.xz /etc/prelink.conf: Size differs >>> /var/cache/pacman/pkg/sudo-1.8.6.p3-1-i686.pkg.tar.xz /etc/sudoers: Size differs >>> /var/cache/pacman/pkg/tzdata-2012f-1-any.pkg.tar.xz /usr/share/zoneinfo/iso3166.tab: Mode differs /usr/share/zoneinfo/zone.tab: Mode differs >>> /var/cache/pacman/pkg/vlc-2.0.3-4-i686.pkg.tar.xz /usr/lib/vlc/plugins/plugins.dat: Size differs |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
HasceeТут вместо русской “-с” нужно использовать английскую!!! HasceeСкрипт правильно не находит пакеты, так как их НЕТ в кэше. HasceeЭто предупреждение связано с разными версиями TAR-а. Ничего в нем страшного нет. Сначала хотел подавить эти сообщения, но потом решил что лучше их выводить, если вывод скрипта перенаправляется в файл они все равно туда не попадут, потому что идут на стандартный поток ошибок (stderr) HasceeПравильное содержание. Тут указано в каком пакете и какие файлы изменились и что в них изменилось >>> /var/cache/pacman/pkg/filesystem-2012.8-1-any.pkg.tar.xz (расположение пакета) /etc/fstab: Size differs (тут сказано что размер файла изменился) /etc/inittab: Contents differ (тут что данные в файле изменились) /etc/lxdm/lxdm.conf: Gid differs (изменилась группа) /etc/mysql/my.cnf: Uid differs (изменился пользователь) /etc/mc/edit.indent.rc: Mode differs (изменились права) Все правильно.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
hascee |
|
Темы:
4
Сообщения:
13
Участник с: 09 апреля 2012
|
Тут вместо русской “-с” нужно использовать английскую!!!Извиняюсь, на форуме сработал xneur , но когда в терминале ввожу : sudo bash pacman-pkg-list -c [sudo] password for hascee: получаю список пакетов, pacman -Qme проверяю существование пакетов в кэше стало быть у меня все пакеты присутствуют, однако: Скрипт правильно не находит пакеты, так как их НЕТ в кэше. выходит у меня в кэше по одним данным есть пакет amarok , по другим - он отсутствует. Значит либо pacman-files-list -c выборочно не видит пакеты из кэша, либо (что более вероятно) pacman-pkg-list -c работает неверно |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
pacman-pkg-list -c проверяет только явно установленные пакеты, может amarok был установлен как зависимость к другому пакету попробуй выполнить pacman-pkg-list -cd
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
hascee |
|
Темы:
4
Сообщения:
13
Участник с: 09 апреля 2012
|
сейчас проверю - явно поставлю и удалю из кэша фитчреквест: Имхо, было бы логично еще добавить функциональность нахождения и вывода новых версий конфигов в системе (.pacnew). Часто после обновления системы бывает необходимо проверить версии конфигов на актуальность |