Snaps / somedir sitesine nasıl erişim verilir


21

Sadece ayaklarımı çırparak ıslatıyorum. Vlc'yi yükledim ve kullanmaya çalışmak istiyorum. Tüm ortamlarım /storeNFS yuvası altına takıldı. Ekler bu dizine erişime izin vermez.

Googling sonra ben altında dosyalara erişebilir anlamak için geldim /home/peteriçin :homearayüzü ve /mediaiçin :removable-mediaarayüzler.

Ama aslında /storebunu böyle /media/storeya /home/peter/storeda başka bir şeyle değiştirmek istemiyorum ve değiştirmek istemiyorum /store.

Snaplerimin (veya belki de sadece vlc) erişime izin vermek için snap almanın bir yolu var mı /store?

Bu çok esnek görünmüyor ve umarım kaçırdığım bir şey var.


1
Snap ( sudo snap remove vlc) yöntemini kaldırmayı ve ardından klasik seçenekle yeniden yüklemeyi deneyebilirsiniz . sudo snap install vlc --classic
doug

1
Teşekkürler. Denedim --classicve --devmode- ikisi de işe yaramadı. Ama aynı zamanda /storeher şeye açıkça değil de erişim vermek istiyorum/supersecret
Peter V. Mørch

2
Çırpıda açık bilet / hata / özellik isteği var mı? Ben de bu özelliği istiyorum!
kravemir

1
Enstantane için gerçek bir nefret alıyorum.
Stephen Boston

@kravemir: Bkz. Launchpad sorunu 1643706
Peter

Yanıtlar:


9

Şaşkınlığım için, gerçekten /homekodlanmış gibi görünüyor . mount-support.c şunları içerir:

    const struct sc_mount mounts[] = {
        {"/dev"},   // because it contains devices on host OS
        {"/etc"},   // because that's where /etc/resolv.conf lives, perhaps a bad idea
        {"/home"},  // to support /home/*/snap and home interface
    ...

Vay. Bu beni şaşırtıyor. Ama işte burada.

Düzenleme: Ayrıca bkz. Launchpad sorunu 1643706


1
Hey, snapd geliştiricisi bu koddan sorumlu. Şaşkınlığınız için bu aslında yapılacak doğru şey. Ana bilgisayar dosya sistemini ve içerebileceği rastgele dizinleri çoğaltamayız. Kullanabileceğiniz / saklayabileceğiniz bir başkası / stash veya / neyse kullanabilir ve genel olarak çalışmasını sağlamanın bir yolu yoktur. Tavsiyem, medyanızı / home / ... veya / media içinde istediğiniz yere monte etmeniz. Daha sonra bu verileri yöneten mevcut sistemlerin altına girecek ve işler düzgün çalışmalıdır.
Zygmunt Krynicki

@ZygmuntKrynicki veya / mnt altında, ek için çıkarılabilir medya arabirimi bağlanmışsa.
jarno

5
@ZygmuntKrynicki Ben de şaşırdım. Varsayılan bağlama noktaları bir yapılandırma dosyası aracılığıyla yapılandırılmalı ve uygulanmamalıdır.
markhor

4
@ZygmuntKrynicki İçeri girdiğinizde ve kodun istediğinizi yaptığını açıkladığınız için teşekkür ederiz. Yazdıklarınıza saygılı ve tamamen katılmıyorum. Sabit kodlama yolları çok zayıf bir uygulamadır ve güvenlik adına bile anlamlı bir şekilde gerekçelendirilemez. Sadece temel esneklik yok.
Stéphane Gourichon

1

Yukarıdaki mini cevabımı genişletmek için bunu genel, güvenli ve sağlam bir şekilde yapmanın bir yolu yok. Herkesin kendi dosya sistemini özelleştirmeyi sevdiğini biliyorum ama bunun bir maliyeti var ve bu da onlardan biri.

Sonunda, XDG portallarında çalışmalarıyla, belirli uygulamalar (özellikle grafik uygulamaları) keyfi yerlerde dosyalara erişim elde edebilirsiniz IFF uygulamaların yeni tanıtılan GTK API'leri bazılarını kullanmak söyledi. Bu, sınır altında çalışırken güvenilir bir yardımcıya ulaşacak, dosya seçici gibi görünen güvenilir kullanıcı arayüzünü açacak, / run / içindeki özel bir şey olarak dosyayı (herhangi bir konumda) göstermek için özel bir FUSE dosya sistemiyle konuşacaktır. .. uygulama gördüğü bir yerde ve işler iyi olabilir.

Bu, medya oynatıcılar veya kelime editörleri gibi dosya seçici dostu şeyler için tasarlanmıştır. Barındırılan linux ağacınız /codezo kadar iyi çalışmaz.


2
Merhaba Zygmunt, cevapladığınız için teşekkürler. Şaşkınlığım duruyor. "Herkesin dosya sistemini özelleştirmeyi sevdiğini biliyorum ama bunun bir maliyeti var ve bu da onlardan biri." Tam olarak anlıyorum: Farkındasınız ama bunu yapmak istemek için yaygın bir şey mi? Son 15 yılda bu isimlendirme sözleşmesinin başka hiçbir maliyetinin farkında değilim.
Peter V.Mørch

3
Biri gibi çizgi koymak olamazdı herhangi bir neden var mı extradirs=/store:/other/locationveya bir şey /etc/snapd.confya /etc/snapd/conf.d/vlc.conf. Tıpkı bir sürü linux uygulaması gibi. Docker gibi iyi çalışıyor. Bu, apache'nin sabit kodda olduğu gibidir DocumentRoot /var/www.
Peter V.Mørch

1
Ancak, buraya yazmak için zaman ayırdığınız için gerçekten minnettarım Zygmunt. Teşekkür ederim.
Peter V.Mørch

O kadar kolay değil. Ana sorun bariz değil, aslında çalışma zamanında uygulamanın farklı bir kök dosya sisteminde çalıştığı gerçeğidir. Bu süreç bakış açısından / mağaza mevcut değil - monte edilmemiş değil, sadece bir dizin değil. Snap-confine'nin yaptığı şey , ana bilgisayar sisteminden bazı yolları uygulama bağlama ad alanına getirmektir. Anlık dosyalardaki kök dosya sistemi salt okunur olduğundan, yeni bağlama noktalarını (ör. / Store) kolayca enjekte edemeyiz.
Zygmunt Krynicki

@ PeterV.Mørch, bu dosyaları / mnt altına bağlayabilir veya taşıyabilir, çıtçıt için çıkarılabilir medya arabiriminin bağlandığından emin olabilir ve isterseniz orijinal konumlarda semboller oluşturabilirsiniz.
jarno

1

hedef dizinin monte edilmesi/home/*/snap/ bir seçenek olarak belirtilir; basit bir bağlama bağlaması benim için işe yaramadı, ne bir sabit bağlantı, ne de hedef dosyalar veya dizinlerin önerilen ek dizine veya bunların bir alt dizinine bir sembolik bağlantısı yoktu. Bu sınırlama, bir /home/*/dizinin dışında varolan hedef dosyaları nedeniyle olabilir , /home/*/önek glob içindeki dosyalara mount / hard / symlinks test etmedi .

Ancak, bir geçici çözüm: içine tam bir dosya kopyası /home/<myuser>/snap/<appname>/<somenewdirectory>benim için çalıştı. Tam veri kümesi kopyalarının tutulması benim için henüz mümkün değildi, ancak böyle bir kısıtlamayla başa çıkmaya yardımcı olacak birçok araç var; eki kullanmadan önce manuel özyinelemeli kopya ve veri kümeniz küçük veya hatta atomikse değiştirilmiş dosyaları arka arkaya kopyalamak bir seçenektir

Size yardımcı olabilecek birkaç dosya kopyalama yardımcı programını adlandırmak için:

  • cp --verbose --archive --recursive /somedir ~/snap/somedirve kaynak / hedef tam tersi
  • tar -C / -c somedir | tar -C ~/snap/ -xv katran bazlı bir dosya kopyalama örneğidir
  • rsync --archive /somedir ~/snap/somedir, rsync popülerdir ve birçok paketleyici / uzantıya sahiptir

  • grsynctüm hedef, veri kümesini gerektiği gibi ileri ve geri çoğaltmak olduğundan, herhangi bir dosya tabanlı yedekleme aracı (grafik örneği :) kullanılabilir olmalıdır

  • git klonları, muhtemelen, ancak yerel klonlar varsayılan olarak sabit bağlantı kullanır, bu nedenle dosya sistemini bir çırpıda yönetmek için git'i kullanıyorsanız, klon zamanında sabit bağlantıları devre dışı bırakmadan, bu klonun çırpıda erişilememesi olasılığına karşı dikkatli olun.


1
Bu, NFS'ye monte edilmiş çok terabaytlı NAS sürücünün genel kullanım durumunda çalışmaz.
Peter V.Mørch

1

Yeteri kadar itibarım olmadığından yorum gönderemiyorum, ancak cevap gönderebilirim ..?

Her neyse, bu orijinal bir sorun değil, ama benim gibi başka biri, bir çırpıda nasıl / medyaya erişim verileceğini araştırıyorsa (örneğin, temelde onsuz yararsız olan Darktable'ı kullanmak için) bunu yapabilirsiniz. snap-store arabirimi aracılığıyla veya komut satırındaki snap uygulamanıza çıkarılabilir medya 'fişini' ekleyerek. Buradaki bazı dokümanlar: https://snapcraft.io/docs/interface-management


1
Merhaba ve Ask Ubuntu'ya hoş geldiniz! Bağlantının gelecekte süresinin dolması durumunda yalnızca bağlantının yanıtları önerilmez. Gönderinize bazı ayrıntılar eklemenizi önerebilir miyim (örneğin, kullanılacak adımları / ödevleri özetleme)?
FloT
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.