شما هنوز به سیستم وارد نشده اید.

#1 2016-03-01 23:25:47

LinArcX
عضو
ثبت شده: 2015-09-18
ارسال ها: 727
وب سایت

error: duplicated database entry 'brltty'[حل شد]

دوستان این ارور داپلیکیت دیتابیس چیه میده بهم؟
چند بار پشت سر هم دستور زیر رو زدم:

sudo pacman -Syu

ولی آپدیت نکردم چیزی..فک کنم دیتابیس لوکال شو زدم ترکوندم! D:

آخرین ویرایش توسط LinArcX (2016-03-18 10:38:54)


"Enough!!!Don't Use "DEFAULTS" Any More..."make it simple stupid

آفلاین

#2 2016-03-01 23:35:12

Arcush
Moderator
ثبت شده: 2015-09-15
ارسال ها: 1,281

پاسخ: error: duplicated database entry 'brltty'[حل شد]

مشکل از همون دیتابیس لوکاله. اینجا رو ببینید:

https://bbs.archlinux.org/viewtopic.php?id=107621

آفلاین

#3 2016-03-17 21:44:59

LinArcX
عضو
ثبت شده: 2015-09-18
ارسال ها: 727
وب سایت

پاسخ: error: duplicated database entry 'brltty'[حل شد]

Arcush نوشته است که:

مشکل از همون دیتابیس لوکاله. اینجا رو ببینید:

https://bbs.archlinux.org/viewtopic.php?id=107621

یه اسکریپت پایتون نوشته شده بود که دانلودش کردم و بهش دسترسی اجرایی دادم و اینم نتیجه ش:

[saeed@saeed ~]$ chmod +x deleteDuplicateDB 
[saeed@saeed ~]$ ./deleteDuplicateDB 
Traceback (most recent call last):
  File "./deleteDuplicateDB", line 18, in <module>
    pkgname = pkgname_search.findall(pkg1)[0]
IndexError: list index out of range

اینم اسکریپت پایتونه:

#!/usr/bin/env python

import os,re, datetime
d = '/var/lib/pacman/local'

packages = os.listdir(d)
packages.sort()

pkgname_search = re.compile('^(.*?)-[0-9]')

old_packages = []

for pkg1 in packages:
	if pkg1 in old_packages:
		continue
		
	#get package name
	pkgname = pkgname_search.findall(pkg1)[0]
	
	#look for other items with the same package name
	for pkg2 in packages:
		if pkg2 == pkg1:
			continue
		if pkg2 in old_packages:
			continue
		if pkgname == pkgname_search.findall(pkg2)[0]:
			# We now have two duplicate packages, we want to delete the old one
			
			old_package = pkg1
			path1 = os.path.join(d,pkg1)
			path2 = os.path.join(d,pkg2)
			if os.stat(path1).st_mtime > os.stat(path2).st_mtime:
				old_package = pkg2
			
			old_packages.append(old_package)
			#print ('duplicate found:\t')
			#print (pkg1)
			#print (pkg2)
			#print ('old:', old_package)
			
			oldpath = os.path.join(d,old_package)
			target = os.path.join('/var/lib/pacman/OLD',old_package)
			cmd = 'mv "%s" "%s"' % (oldpath, target)
			
			#double-check that the oldpath still exists (it may have been removed in a previous pass)
			if os.path.exists(oldpath):
				print(cmd)
				os.system(cmd)

الان مشکل اینه وقتی دستور زیر رو میزنم خروجی م اولش بهم میگه یه duplicate error داری:

[saeed@saeed ~]$ paclist extra | wc -l
error: duplicated database entry 'brltty'
901

آخرین ویرایش توسط LinArcX (2016-03-17 21:46:25)


"Enough!!!Don't Use "DEFAULTS" Any More..."make it simple stupid

آفلاین

#4 2016-03-18 00:41:41

Arcush
Moderator
ثبت شده: 2015-09-15
ارسال ها: 1,281

پاسخ: error: duplicated database entry 'brltty'[حل شد]

اگه فقط همینه (یعنی brltty)، توی دایرکتوری

/var/lib/pacman/local

بدنبال دو تا پوشه با این اسم و ویرایش های متنوع بگردید و اونی رو که ویرایشش قدیمی تره پاک کنید (ازون دایرکتوری بردارید تا درموقع لزوم بتونیم برش گردونیم).

آفلاین

#5 2016-03-18 10:38:37

LinArcX
عضو
ثبت شده: 2015-09-18
ارسال ها: 727
وب سایت

پاسخ: error: duplicated database entry 'brltty'[حل شد]

آره همین کارو کردم عیسی جان..فعلا به صورت موقتی حل شد..ان شا الله بعدا سر فرصت باید این اسکریپت رو اصلاحش کنیم. smile


"Enough!!!Don't Use "DEFAULTS" Any More..."make it simple stupid

آفلاین

پانوشت انجمن

پشتیبانی توسط تیم آرچ لینوکس ایران و نیرو گرفته با FluxBB