kiwix / kiwix-tools

Command line Kiwix tools: kiwix-serve, kiwix-manage, ...
https://download.kiwix.org/release/kiwix-tools/
GNU General Public License v3.0
462 stars 87 forks source link

Kiwix-Serve: Unable to add the ZIM file '/path/to/wikipedia_en_all_maxi_2020-08.zim' to the internal library. #402

Closed clone545 closed 4 years ago

clone545 commented 4 years ago

I've just finished downloading the August 2020 maxi zim though it's giving an error that it's not recognised even though the old zim worked fine. For reference, system is a raspberry pi:

Old Systemd config for 06-2020.zim User=pi Group=pi ExecStart=/full/path/to/kiwix/kiwix-serve /full/path/to/data/folder/kiwix/wikipedia_en_all_maxi_2020-06.zim -p 4567 Restart=always RestartSec=3 [Install] WantedBy=multi-user.target

Updated config for 08-2020.zim: User=pi Group=pi ExecStart=/full/path/to/kiwix/kiwix-serve /full/path/to/data/folder/kiwix/wikipedia_en_all_maxi_2020-08.zim -p 4567 Restart=always RestartSec=3 [Install] WantedBy=multi-user.target

I then do the usual to reload/restart the daemon: sudo systemctl daemon-reload sudo systemctl restart kiwix.service Though I get nothing and the library page times out.

Running kiwix-serve manually with /full/path/to/kiwix/kiwix-serve /full/path/to/data/folder/kiwix/wikipedia_en_all_maxi_2020-08.zim -p 4567 gives the error message Unable to add the ZIM file /full/path/to/data/folder/kiwix/wikipedia_en_all_maxi_2020-08.zim' to the internal library.

I wouldn't have expected it to stop working just from pointing it to a new .zim.

Any help would be much appreciated.

kelson42 commented 4 years ago

@clone545 Works fine for me. Your ZIM file is probably corrupted or you use and outdated version of kiwix-serve. Check your file against the md5sum https://download.kiwix.org/zim/wikipedia/wikipedia_en_all_maxi_2020-08.zim.mirrorlist

clone545 commented 4 years ago

Hi Kelson,

I've verified the hash against the one provided in the link you gave and it's a match so that looks ok. I've also updated kiwix-serve to latest and still have the same issue with the same error message as before.

kelson42 commented 4 years ago

@clone545 Quite sure this is a problem with your system. The path is wrong or the file is not readable. Try with another path, locally, with an other smaller file... etc... You will find out what makes it fail.

clone545 commented 4 years ago

Hi @kelson42 ,

This works fine with wikipedia_en_all_maxi_2020-06.zim and has done for months. I don't see how pointing kiwix-serve from wikipedia_en_all_maxi_2020-06.zim to wikipedia_en_all_maxi_2020-08.zim makes it fail.

Nothing has changed aside from the .zim file itself and the new .zim is in the same data folder as the original so paths/permissions aren't changing either.

kelson42 commented 4 years ago

What does kiwix-serve --version gives you?

kelson42 commented 4 years ago

online version of this file server by kiwix-serve under GNU/Linux http://library.kiwix.org/wikipedia_en_all_maxi_2020-08

clone545 commented 4 years ago

What does kiwix-serve --version gives you?

3.1.2

kelson42 commented 4 years ago

This is indeed the latest version.

cchapman900 commented 2 years ago

For anyone getting the same issue but were just being dumb like me, I forgot to add the --library command and was trying

kiwix-serve library.xml

instead of

kiwi-serve --library library.xml
grenius commented 2 years ago

Where were you adding this to your config? Having a similar issue.

My run command is:

docker run -d --name kiwix -v /mnt/ssd/kiwix/:/data -p 8282:80 kiwix/kiwix-serve *.zim

Log upon creation:

docker logs --tail 30 -f kiwix [?2004l /usr/local/bin/kiwix-serve --port=80 wikipedia_en_all_maxi_2022-05.zim Unable to add the ZIM file 'wikipedia_en_all_maxi_2022-05.zim' to the internal library. Here is the content of /data: /data/wikipedia_en_all_maxi_2022-05.zim

kelson42 commented 2 years ago

@grenius Please open a new ticket if you have a new problem. Here the problem comes probably of the globbing happening in your master system, but not in your container. This shoudl do what you want:

docker run -d --name kiwix -v /mnt/ssd/kiwix/:/data -p 8282:80 kiwix/kiwix-serve '*.zim'`
grenius commented 2 years ago

@kelson42 Apologies. Thanks for the help. Trying this on a raspberry pi4 8gb for the first time. I think the container is still building the library. Will report back or open a new ticket. Thanks again.

grenius commented 2 years ago

@kelson42 just seems to hang the build, I'll open a new ticket. Thanks again.

jboolean commented 2 years ago

Ran across this issue and solved it by using an older version of the docker image. Version 3.1.0 works but something must have broken in 3.2.0.