Что я хочу сделать
Создайте мой репозиторий yum/dnf на общем ресурсе cifs.
Длинная версия
Мой Windows-сервер - это мой основной файловый сервер, и я пока что там храню каталог Support/Platforms/Korora22/. У меня есть мои RPM там, некоторые загружены, а некоторые самостоятельно.
Я хочу разместить там репозиторий, но мой createrepo .
команда возвращает эту ошибку:
[root@linux-05|/mnt/smash/Support/Platforms/Korora22]# createrepo .
Spawning worker 0 with 3 pkgs
Spawning worker 1 with 3 pkgs
Spawning worker 2 with 2 pkgs
Spawning worker 3 with 2 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
(process:368): GLib-CRITICAL **: g_timer_stop: assertion 'timer != NULL' failed
(process:368): GLib-CRITICAL **: g_timer_destroy: assertion 'timer != NULL' failed
Traceback (most recent call last):
File "/usr/share/createrepo/genpkgmetadata.py", line 308, in <module>
main(sys.argv[1:])
File "/usr/share/createrepo/genpkgmetadata.py", line 280, in main
mdgen.doRepoMetadata()
File "/usr/lib/python2.7/site-packages/createrepo/__init__.py", line 1005, in doRepoMetadata
rp.getOtherdata(complete_path, csum)
File "/usr/lib64/python2.7/site-packages/sqlitecachec.py", line 61, in getOtherdata
self.repoid))
TypeError: Can not create db_info table: database is locked
/etc/yum.repos.d/bgstack.repo
[bgstack]
name=bgstack
baseurl=file:///mnt/smash/Support/Platforms/Korora22/
gpgcheck=0
Шаги я уже пробовал, что не помогло
rm -rf /var/lib/rpm/__db*
rpm --rebuilddb
dnf clean all
Мой /etc /fstab включает эту строку:
//win-server1/smash /mnt/smash cifs rw,user,uid=bgstack,credentials=/root/.bgstack.example.com,exec,soft
Заметьте, что он будет монтировать мой каталог как пользователь bgstack, так что я фактически размонтировал и смонтировал с помощью uid root (фактически, пропустив эту часть):
mount -t cifs -o credentials=/root/.bgstack.example.com //win-server1/smash /mnt/smash
Это все еще не будет успешно завершать команду createrepo.
То, что оказалось работать, но не является оптимальным
Это работает, но очень неуклюже.
Разместите все rpms локально и создайте там хранилище. Затем перенесите данные репо в папку cifs.
# as root: createrepo does not like regular users
mkdir -p ~/localrepo
cp -pr /mnt/smash/Support/Platforms/Korora22/*rpm ~/localrepo
createrepo ~/localrepo
cp -pr ~/localrepo/repodata /mnt/smash/Support/Platforms/Korora22/