Що я хочу зробити
Створіть моє сховище yum / dnf на спільній частці cifs.
Довга версія
Мій сервер Windows - це мій основний файловий сервер, і я зберігаю там свій каталог підтримки / платформ / Korora22 /. У мене є свої rpms, деякі завантажені, а деякі самостійно прокатуються.
Я хочу розмістити там сховище, але моя 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/