ОС - 16.04.Б/У banshee
ежедневно до сих пор, но затем получил ошибку.
[ERROR] FATAL UNHANDLED EXCEPTION: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.MethodAccessException: Method `IBusProxy:.ctor ()' is inaccessible from method `NDesk.DBus.BusObject:.ctor ()'
at (wrapper managed-to-native) System.Object:__icall_wrapper_mono_throw_method_access (intptr,intptr)
at IBusProxy..ctor () [0x00000] in <8f213ad6c6e7479eb4b70a3891c9ae32>:0
at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)
at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00002] in <f712f98eb8e445c8918edaf595bbe465>:0
--- End of inner exception stack trace ---
at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00019] in <f712f98eb8e445c8918edaf595bbe465>:0
at System.RuntimeType.CreateInstanceMono (System.Boolean nonPublic) [0x000ca] in <f712f98eb8e445c8918edaf595bbe465>:0
at System.RuntimeType.CreateInstanceSlow (System.Boolean publicOnly, System.Boolean skipCheckThis, System.Boolean fillCache, System.Threading.StackCrawlMark& stackMark) [0x0001a] in <f712f98eb8e445c8918edaf595bbe465>:0
at System.RuntimeType.CreateInstanceDefaultCtor (System.Boolean publicOnly, System.Boolean skipCheckThis, System.Boolean fillCache, System.Threading.StackCrawlMark& stackMark) [0x0002a] in <f712f98eb8e445c8918edaf595bbe465>:0
at System.Activator.CreateInstance (System.Type type, System.Boolean nonPublic) [0x00040] in <f712f98eb8e445c8918edaf595bbe465>:0
at System.Activator.CreateInstance (System.Type type) [0x00000] in <f712f98eb8e445c8918edaf595bbe465>:0
at NDesk.DBus.BusObject.GetObject (NDesk.DBus.Connection conn, System.String bus_name, NDesk.DBus.ObjectPath object_path, System.Type declType) [0x00008] in <6f993bb1a1414adf8517b25c86b39e83>:0
at NDesk.DBus.Connection.GetObject (System.Type type, System.String bus_name, NDesk.DBus.ObjectPath path) [0x0000d] in <6f993bb1a1414adf8517b25c86b39e83>:0
at NDesk.DBus.Connection.GetObject[T] (System.String bus_name, NDesk.DBus.ObjectPath path) [0x00001] in <6f993bb1a1414adf8517b25c86b39e83>:0
at NDesk.DBus.Bus..ctor (System.String address) [0x0000f] in <6f993bb1a1414adf8517b25c86b39e83>:0
at NDesk.DBus.Bus.Open (System.String address) [0x00033] in <6f993bb1a1414adf8517b25c86b39e83>:0
at Mono.Zeroconf.Providers.AvahiDBus.DBusManager.ConnectToSystemBus () [0x0001f] in <6f993bb1a1414adf8517b25c86b39e83>:0
at Mono.Zeroconf.Providers.AvahiDBus.DBusManager.IterateThread (System.Object o) [0x00012] in <6f993bb1a1414adf8517b25c86b39e83>:0
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context (System.Object state) [0x0000e] in <f712f98eb8e445c8918edaf595bbe465>:0
at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x0008d] in <f712f98eb8e445c8918edaf595bbe465>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <f712f98eb8e445c8918edaf595bbe465>:0
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x0002a] in <f712f98eb8e445c8918edaf595bbe465>:0
at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00096] in <f712f98eb8e445c8918edaf595bbe465>:0
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <f712f98eb8e445c8918edaf595bbe465>:0
У меня была та же проблема о Arch Linux. Я посмотрел на свои журналы и нашел, что это моно было недавно обновлено от версии 4.6.1.3-1 до версии 4.8.0.495-1. Я смог успешно откатывать свой моно пакет к версии 4.6.1.3-1 из АЛАБАМЫ, и банши, кажется, хорошо работает теперь.
я не уверен в том, как сделать это на Ubuntu, но на Arch, который команда:
yaourt -S downgrader
downgrader mono
затем выбор mono-4.6.1.3-1 (from ALA)
я пытался вращать Продуктивную среду Ubuntu и даже искать http://packages.ubuntu.com/ для эквивалентной команды Ubuntu, но это кажется моно, упаковывается по-другому под многими различными пакетами как моновремя выполнения или libmono и такой поэтому, если человек, более опытный с Ubuntu, мог бы дать этому человеку правильную команду для OP.
Подобный ThomasG, я также понизил Моно — до версии 4.4.2, только чтобы быть уверенным. Это - то, как я сделал это:
http://download.mono-project.com
), и отредактируйте его следующим образом: sudo apt update
, и затем sudo apt list mono-complete
для проверки версии. Я затем установил моно с sudo apt install mono-complete
, затем банши с sudo apt install banshee
, оба из которых потребовали, чтобы я принял пакеты, которые не могли быть проверены. я открыл банши, и там это было: выполнение, и со всеми неповрежденными списками воспроизведения.
Извините за сообщение в очень старой теме, но на всякий случай, если у кого-то еще есть эта проблема - исправление заключается в добавлении:
<Addin id="Banshee.Daap,1.0" enabled="False" />
В /home/user/.config/banshee -1 / addin-db-001 / config.xml
.
Вы не можете включить DAAP никогда . Без понижения вашей версии моно.
Решение состоит в том, чтобы использовать Docker, чтобы заставить его работать в среде со старыми зависимостями.
Во-первых, вам нужно настроить Dockerfile, который устанавливает Docker на старую версию и запускает его:
FROM debian:jessie-slim
ARG username
RUN apt-get update && \
apt-get install -y banshee gnome-themes && \
apt-get clean && \
apt-get autoremove && \
rm -rf /var/lib/apt/lists/*
RUN useradd ${username}
USER ${username}
CMD ["/usr/bin/banshee"]
Затем вам нужно собрать его, передав собственное локальное имя пользователя, чтобы убедиться, что хост и гость синхронизированы:
sudo docker build --build-arg username=$USER -t banshee .
Затем для подключения к pulseaudio нужно сделать бридж со своего хоста:
pactl load-module module-native-protocol-unix socket=/tmp/pulseaudio.socket
Информируем гостя, создав файл conf в /tmp/pulseaudio.client.conf
:
default-server = unix:/tmp/pulseaudio.socket
# Prevent a server running in the container
autospawn = no
daemon-binary = /bin/true
# Prevent the use of shared memory
enable-shm = false
Последняя часть — правильно подключить все (pulseaudio, X-сервер, dbus и т. д.), передав правильные аргументы команде docker.
Примечание: эта команда удаляет все функции докера, связанные с безопасностью, поэтому, если banshee уязвима для любого вида атаки, ваша машина тоже будет уязвима.
docker run \
--security-opt seccomp=unconfined \
--net=host \
--volume=${HOME}:${HOME}:rw \
--volume="${HOME}/.Xauthority:${HOME}/.Xauthority:rw" \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=unix${DISPLAY} \
--env DBUS_SESSION_BUS_ADDRESS="${DBUS_SESSION_BUS_ADDRESS}" \
-v /run/user/$(id -u)/bus:/run/user/$(id -u)/bus:rw \
-v /var/lib/dbus/machine-id:/var/lib/dbus/machine-id \
--device /dev/snd \
-v /var/run/dbus/:/var/run/dbus \
--env PULSE_SERVER=unix:/tmp/pulseaudio.socket \
--env PULSE_COOKIE=/tmp/pulseaudio.cookie \
--volume /tmp/pulseaudio.socket:/tmp/pulseaudio.socket \
--volume /tmp/pulseaudio.client.conf:/etc/pulse/client.conf \
--volume /usr/share/dbus-1:/usr/share/dbus-1 \
--volume /usr/share/themes:/usr/share/themes \
-ti banshee
Ссылка на уже созданный Dockerfile (отказ от ответственности: я автор): https://github.com/Musinux/banshee-docker