স্ন্যাপ ফাইলগুলি কোনওভাবেই সংশোধন করা যাবে না কেন?


14

আমি অনেক দিন ধরে ব্লেন্ডারের আইকনটি পরিবর্তন করার চেষ্টা করে যাচ্ছি, তবে আমি যাই করুক না কেন, আমাকে কোনও কিছুতে সম্পাদনা করার অনুমতি নেই /snap/blender-tpaw/3/

আমি যা চেষ্টা করেছি তা এখানে:

  • nautilusবাইরে থেকে ফাইলগুলি সম্পাদনা করা হচ্ছে sudo
  • ( টার্মিনালে) nautilusদিয়ে ফাইলগুলি সম্পাদনা করা হচ্ছে ।sudosudo nautilus
  • যেমন cpবা rmবাইরে টার্মিনাল কমান্ড ব্যবহার করে sudo
  • sudo(যেমন sudo cp <source> /snap/blender-tpaw/3/বা sudo rm /snap/blender-tpaw/3/<filename.ext>) এর সাথে টার্মিনাল কমান্ড ব্যবহার করে
  • রুট টার্মিনালে উপরের সবকিছু করা (ব্যবহার করে sudo -i)

প্রতিটি ক্ষেত্রে আমি নিম্নলিখিত ত্রুটি পেয়েছি:

cannot remove/copy '/snap/blender-tpaw/3/filename.ext': Read-only file system

যেখানে ফাইলের নাম ফাইল এবং .xt এটির এক্সটেনশন e

এটি কেবল ব্লেন্ডার নয়, অন্যান্য স্ন্যাপগুলির ফাইলগুলিতেও প্রযোজ্য।

আমি কি এখানে কিছু ভুল করছি? অথবা এই ফাইলগুলি পরিবর্তন করা কি অসম্ভব? যদিও আমি এটি অসম্ভব বলে মনে করি না কারণ এখানে উবুন্টু থেকে ব্লেন্ডার পর্যন্ত সমস্ত কিছুই ওপেন-সোর্স, সুতরাং তাদের এই ফাইলগুলি সংশোধন করা থেকে বিরত করার কোনও কারণ নেই।

সম্পাদনা করুন:

আমি আইকনটি পরিবর্তন করতে প্রধান মেনু (আলাকার্তে) ব্যবহার করেছি, তবে আমি এখনও জানতে চাই যে কেন আমি কোনও স্ন্যাপ ফাইল সংশোধন করতে পারি না।

উত্তর:


12

স্ন্যাপটি পুনর্নির্মাণ না করে স্ন্যাপের বিষয়বস্তু পরিবর্তন করা অসম্ভব। এটি মূলত একটি সুরক্ষা ব্যবস্থা, যাতে স্ন্যাপটি যাতে কোনওভাবেই छेলাফেরা না করে তা নিশ্চিত করে।

যাইহোক, আইকন উল্লিখিত একটি ডেস্কটপ নামক ফাইলে সম্ভাবনা থাকে blender-tpaw_blender.desktopযা হয় সম্পাদনাযোগ্য, এবং খুঁজে পাওয়া যেতে পারে /var/lib/snapd/desktop/applications

আইকনটি আপডেট করতে আপনি নিম্নলিখিত লাইনটি পরিবর্তন করতে পারেন: -

Icon=/snap/blender-tpaw/3/meta/gui/icon.svg

স্ন্যাপ সহ এই "পরিবর্তন করা অসম্ভব" জিনিসটি খুব - আমার অর্থ, খুব - বিরক্তিকর! আমি স্ন্যাপটি ব্যবহার করতে চাইার মূল কারণটি হ'ল আমি একই প্রোগ্রামটির সমান্তরাল ইনস্টলেশন করতে চাই (উদাহরণস্বরূপ ফায়ারফক্স) এবং তারপরে মূল ইনস্টলেশনটি বিশৃঙ্খলা না করে "কপি" ইনস্টলেশনটি নিয়ে পরীক্ষা-নিরীক্ষা করতে চাই। যাইহোক, .ডেস্কটপ ফাইলের পরিবর্তন ফায়ারফক্সের ক্ষেত্রে কার্যকর হয়নি।
আলমের ক্যাম্পোস

13

যদিও প্রশ্নের ভিত্তি প্রযুক্তিগতভাবে সঠিক (আপনি কোনও স্ন্যাপের ফাইলগুলি পরিবর্তন করতে পারবেন না), তবে এটিকে ঘিরে কাজ করার উপায় রয়েছে।

এরকম একটি উপায় হ'ল বিদ্যমান ফাইলের শ্রেণিবিন্যাসকে অন্য কোথাও পুনর্নির্মাণের --bindসাথে একত্রে বিকল্পটি ব্যবহার করা mount

উদাহরণস্বরূপ, যদি আপনি সার্টিফিকেট ইনস্টল এর পরিবর্তে সিস্টেম সার্টিফিকেট ব্যবহার করার জন্য আপনার তোলে চান core, আপনি ডিরেক্টরি হোস্ট সিস্টেমের সার্টিফিকেট ধারণকারী মাউন্ট করতে উপরে সিস্টেম সার্টিফিকেট ডিরেক্টরির coreনিম্নলিখিত কমান্ডের সাহায্যে:

sudo mount --bind -o nodev,ro /etc/ssl/certs /snap/core/current/etc/ssl/certs/

এটি আসলে স্ন্যাপ ফাইল সিস্টেম পরিবর্তন করে না। আপনি যদি ফোল্ডারটি আনমাউন্ট করে থাকেন তবে পুরানো ফোল্ডারটি এটির জায়গা করবে:

sudo umount /snap/core/current/etc/ssl/certs

দ্রষ্টব্য: মাউন্টগুলি রিবুটগুলির মধ্যে স্থির থাকে না। পুনরায় বুট করার পরে মাউন্টগুলি চালিয়ে যাওয়ার বেশ কয়েকটি উপায় রয়েছে। এই জাতীয় একটি উপায় একটি systemdস্টার্টআপ স্ক্রিপ্ট তৈরি করা :

$ cat <<-EOF | sudo tee /etc/systemd/system/snap-core-current-etc-ssl-certs.mount
[Unit]
Description=Mount unit to fix etc ssl certs in core package
After=snapd.service

[Mount]
What=/etc/ssl/certs
Where=/snap/core/current/etc/ssl/certs
Type=none
Options=bind,nodev,ro

[Install]
WantedBy=multi-user.target
EOF
$ systemctl enable snap-core-current-etc-ssl-certs.mount

এখান থেকে নেওয়া হয়েছে


দুর্দান্ত সমাধান, ধন্যবাদ v। অনেক! কেবল একটি নিগল: নতুন সিস্টেমেড সংস্করণগুলি (এই লিখন অনুসারে 18.04-এ থাকা) আর নরম-লিঙ্কযুক্ত শীর্ষে থাকা মাউন্টগুলিকে আর গ্রহণ করবে না; ধন্যবাদ, উপরের কনফিগারেশনটি একটি লাইন দ্বারা প্রতিস্থাপন করা যেতে পারে /etc/fstab, যেমন: echo -e "/etc/ssl/certs\t/snap/core/current/etc/ssl/certs\tnone\tbind,nodev,ro\t0 2" | sudo tee -a /etc/fstab- উত্স
sxc731
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.