วิธีการแก้ไขข้อผิดพลาด“ ผู้ใช้ที่ไม่รู้จัก 'elasticsearch' ในไฟล์ statoverride”?


8

ฉันพยายามติดตั้ง Elastic Search ฉันได้ดาวน์โหลดelasticsearch-2.3.4.debไฟล์แล้ว เมื่อฉันพยายามใช้คำสั่ง:

sudo dpkg -i elasticsearch-1.7.2.deb

มันแสดงข้อผิดพลาดนี้:

dpkg: unrecoverable fatal error, aborting: unknown user 'elasticsearch' in statoverride file

ฉันจะแก้ไขสิ่งนี้ได้อย่างไร

คำตอบ:


19

ในกรณีของฉันทำตามขั้นตอนเหล่านี้ทำงาน:

  • เริ่มต้นด้วยการถอนการติดตั้งอินสแตนซ์ Elasticsearch ใด ๆ บนเครื่องของคุณ:

    apt remove --purge elasticsearch
    apt autoremove
    
  • จากนั้นเปิด/var/lib/dpkg/statoverrideไฟล์ในเครื่องมือแก้ไขของคุณและลบบรรทัดที่ระบุelasticsearchผู้ใช้

มันไม่ได้เป็นทางออกที่ดีเพราะมันเกี่ยวข้องกับการแก้ไขไฟล์ด้วยตนเองซึ่งโดยปกติจะแก้ไขด้วยdpkgตัวเองเท่านั้น แต่ทำงานdpkg-reconfigureและapt --reinstall installไม่ได้ผลสำหรับฉัน นี่เป็นทางเลือกสุดท้าย


1
'apt autoremove' ไม่จำเป็นการแก้ไข statoverride ได้หลอกลวง
user1007727

@ user1007727 ขอบคุณ! ดีที่มีดาต้าพอยท์เสริม ฉันจะออกจากการautoremoveอุทธรณ์ต่อไปเพราะมันเป็นสิ่งจำเป็นสำหรับฉัน (IIRC) และมันก็ช่วยกระจายระบบกรณีที่เลวร้ายที่สุด
จูลส์

5

เปิดไฟล์

/var/lib/dpkg/statoverride

คุณควรเห็นบางสิ่งเช่น:

root elasticsearch 755 /var/log/elasticsearch

หรือ

root elasticsearch 755 /var/lib/elasticsearch

ถ้าใช่ให้เรียกใช้ dpkg-statoverride - นำออก:

dpkg-statoverride --remove /var/log/elasticsearch
dpkg-statoverride --remove /var/lib/elasticsearch

2

ฉันเพียงแค่ต้องการ

sudo dpkg-statoverride --remove /var/lib/elasticsearch
sudo dpkg-statoverride --remove /var/log/elasticsearch

2

ปัญหาสำหรับฉันคือฉันเปลี่ยนชื่อผู้ใช้เริ่มต้นให้สอดคล้องกับรูปแบบการตั้งชื่อของฉันบนเซิร์ฟเวอร์ของฉัน

ฉันแก้ไขปัญหานี้ได้โดยแก้ไข

/var/lib/dpkg/statoverride

ไฟล์และแทนที่ชื่อเก่าด้วยชื่อใหม่ ไม่จำเป็นต้องถอนการติดตั้งแอปพลิเคชัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.