রুট সুবিধাগুলি ছাড়াই আমি কীভাবে একটি গেসেটেটিং স্কিমা ইনস্টল করতে পারি?


14

গ্যাসেটিংস স্কিমা ইনস্টল করার জন্য আদর্শ ওয়ার্কফ্লোটি হ'ল:

  1. এক্সটেনশন সহ .gschema.xml, এর মতো সামগ্রী সহ একটি স্কিমা তৈরি করুন :

    <?xml version="1.0" encoding="UTF-8"?>
    <schemalist>
      <schema id="com.companyname.appname" path="/com/companyname/appname/">
          <key type="b" name="mybool">
              <default>false</default>
              <summary>Example summary</summary>
              <description>Example description</description>
          </key>
      </schema>
    </schemalist>
  2. এতে স্কিমা অনুলিপি করুন /usr/share/glib-2.0/schemas/

  3. এই কমান্ডটি চালিয়ে স্কিমাটি সঙ্কলন করুন:

    sudo glib-compile-schemas /usr/share/glib-2.0/schemas/

তবে লেখার /usr/share/glib-2.0/schemas/জন্য মূল সুবিধার প্রয়োজন privile অ-গ্লোবাল ব্যবহারকারী ডিরেক্টরিতে স্কিমা ইনস্টল করার কোনও উপায় আছে কি?

উত্তর:


16

আপনি কোনও ব্যবহারকারী-লিখিত ডিরেক্টরিতে আপনার গেটেসিংস স্কিমাস অনুলিপি এবং সংকলন করতে পারেন:

$ cp com.companyname.appname ~/schemas/
$ glib-compile-schemas ~/schemas/

জটিল বিটটি সেই নির্দিষ্ট ডিরেক্টরিটি ব্যবহার করতে অ্যাপ্লিকেশনটি কনফিগার করা। এই কাজটি করার দুটি পদ্ধতি আছে:

  • সঙ্গে GSETTINGS_SCHEMA_DIRএনভায়রনমেন্ট ভেরিয়েবল:

    $ GSETTINGS_SCHEMA_DIR=~/schemas/ ./example.py
  • বা জিএসেটিংসস্চেমোসোর্স এবং জিসেটিংশেকমা অবজেক্টগুলি ব্যবহার করে:

    আপনার যদি আপনার প্রোগ্রামের উত্স কোডটিতে অ্যাক্সেস থাকে তবে আপনি যেকোন ডিরেক্টরি থেকে সংকলিত স্কিমা লোড করতে এটি পরিবর্তন করতে পারেন। পাইথনে এটি কীভাবে করা যায় তা এখানে রয়েছে, যদিও আপনি জিওবজেক্ট অন্তর্নির্ধারণের সাথে কোনও প্রোগ্রামিং ভাষায় এটি করতে পারেন:

    schema_source = Gio.SettingsSchemaSource.new_from_directory(
        os.path.expanduser("~/schemas"),
        Gio.SettingsSchemaSource.get_default(),
        False,
    )
    schema = schema_source.lookup('com.companyname.appname', False)
    settings = Gio.Settings.new_full(schema, None, None)
    settings.set_boolean('mybool', True)

তথ্যসূত্র:


আপনি কি জানেন যে কোনও প্রদত্ত স্কিমা ইতিমধ্যে ইনস্টল করা আছে কিনা তা পরীক্ষা করতে হবে (এবং উপরেরটি এটি না হলে কেবলই করা হবে)?
পিট্রো ব্যাটিস্টন

এই দস্তাবেজ অনুসারে আপনি পরিবেশের ভেরিয়েবলের glib-2.0/schemasডিরেক্টরিতে থাকা ডিরেক্টরিটিও যুক্ত করতে পারেন XDG_DATA_DIRS
এনটিসি 2
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.