У меня была та же проблема, и я обнаружил, что она запускается просто потому, что по какой-то неудачной и странной причине пакет Ubuntu linux-libc-dev
содержит несколько файлов (заголовков) с именами, которые различаются только по буквам, например, /usr/include/linux/netfilter/xt_DSCP.h
и /usr/include/linuxnetfilter/xt_dscp.h
.
Проблема связана с некоторым глупым поведением WSL, а именно с ошибкой / несогласованностью в реализации его чувствительной к регистру файловой системы. Предположим, в каком-то каталоге есть файл, и вы хотите создать в этом же каталоге еще один файл с тем же именем, за исключением регистра. Это должно сработать и создать второй файл в дополнение к другому (или, возможно, перезаписать существующий файл). Однако это не помогает и, что еще хуже, приводит к вводящей в заблуждение ошибке:
touch a.txt
touch A.txt
выдает
touch: cannot touch 'A.txt': Input/output error
С другой стороны, можно создавать файлы в обоих случаях следующим образом:
touch b.txt
touch x.txt
mv x.txt B.txt
ls {b,B}.txt
b.txt B.txt
Вот обходной путь для пакетов с именами, такими как linux-libc-dev_4.4.0-97.120_amd64.deb
:
cd any-temp-dir
apt-get download linux-libc-dev
ar x linux-libc-dev*deb
tar xJf data.tar.xz # ignore all erors like ./usr/include/linux/netfilter/xt_DSCP.h: Cannot open: Input/output error
tar cJf data.tar.xz ./usr
ar rcs linux-libc-dev*.deb debian-binary control.tar.gz data.tar.xz
sudo dpkg -i linux-libc-dev*.deb