FAQ2


زمان مطالعه: < 1 دقیقه
زمان مطالعه: < 1 دقیقه

این اروری که قصد صحبت در موردش و حل اون رو داریم بهنگام افزودن یه رکورد به جدول داخل پایگاه داده postgresql رخ میدهو

این متن اروری که من گذاشتم داخل جنگو به هنگام افزودن به جدول رخ داده بود و فرمت کاملش به شکل زیر بود:

django.db.utils.IntegrityError: duplicate key value violates unique constraint "accesslevel_accesslevelaction_pkey"
DETAIL:  Key (id)=(11) already exists.

مشکل کجاست؟؟ خود جدول و کد ما مشکلی نداره و عملا پایگاه داده دچار مشکل شده!! ما میخوایم یه رکورد اضافه کنیم و پایگاه داده با توجه به ایندکس اون جدول به ما میگه که باید id رکورد جدید چی باشه که تو این مشکل عملا اون ایندکس رو داره اشتباه به ما میگه، مثلا میگه ایندکس ۱۱ رو باید استفاده کنی در صورتی که id با مقدار ۱۱ قبلا برای یه رکورد دیگه استفاده شده و در نتیجه ارور بالا رو خواهیم داشت


راه حل چیه!؟

کافیه ایندکس اون جدول رو با استفاده از دستور زیر داخل پایگاه داده رفرش و بروز کنیم:

SELECT setval('table_name_id_seq', max(id)) FROM table_name;

امیدوارم مفید بوده باشه:)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

با سلام. اگر احیانا بهنگام git pull کردن با ارور زیر مواجه شدید همراهم باشید تا مشکل را حل کنیم:

error: insufficient permission for adding an object to repository database .git/objects
fatal: failed to write object
fatal: unpack-objects failed

برای حل مشکل کافیست داخل روت پروژه مورد نظرتون که گیت داره دستورات زیر رو بزنید:

cd .git/objects
ls -al
sudo chown -R yourname:yourgroup *

اگر yourname و yourgroup رو نمیدونید، از دستورات زیر استفاده کنید:

# for yourname
whoami
# for yourgroup
id -g -n 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

خب مشکل رایجی هست که اروری مشابه زیر داخل ترمکینال اوبونتو نمایش داده میشه:

zsh: command not found

فقط کافیه یه تغییر کوچیک داخل zshrc بدیم:

پس ابتدا با سدتور زیر وارد حالت ویرایش فایل zshrc بشید:

vim ~/.zshrc

حال خط زیر را به انتهای فایل اضافه کنید:

source ~/.bash_profile

ذخیره کرده و سپس دستور زیر را داخل ترمینال اجرا کنید:

source ~/.zshrc

و تمام 🙂 لذت ببرید …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقهحل مشکل آپدیت کردن سرتیفیکیت let’s encryptدر اوبونتو

زمان مطالعه: < 1 دقیقه

با سلام و درود، خیلی سریع میرم سراغ اصل مطلب، در حال حاضر که این مطلب رو می نویسم، Certbot با پایتون ۳.۱۰ یه مقدار Conflict داره و اذیت میکنه، برای مثال بهنگام بروزرسانی یکی از سرتیفیکیت ها با دستور زیر :

sudo certbot certonly --force-renew -d sadegh-khan.ir

مکن با ارور های مختلف از نبود ماژ>ل های مختلفی از پایتون روبرو بشید، مثلا بگه ماژول six رو ندارید یا Mapping و غیره، اگر هم به نصب دونه دونه ماژول ها با دستور pip installادامه بدید تقریبا این ماژول ها تمومی ندارند و مشکل از جایی به جای دیگه منتقل میشه، اما مشکل از کجاست؟؟؟ از همون ناسازگاری با نسخه پایتون سیستم شما هست.

پس کافیه نسخه پایتون برای اجرای Certbot رو به یه نسخه دیگه ای که رو سیستم تون نصب هست تغییر دهید، برای مثال من تغییر دادم به نسخه python3.8 برای این منظور در اوبونتو باید فایل /usr/bin/certbot را ویرایش کنید:

sudo nano /usr/bin/certbot

و مقدار #!/usr/bin/python3 را به #!/usr/bin/python3.8 تغییر دهید (معمولا خط اول فایل هست)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

با سلام، ممکن هنگام اجرای دستور sudo apt update با ارور زیر مواجه بشید، به چه دلیل رخ میده!؟

پکیجی قبلا داشتید که برای نسخه فعلی اوبونتون ی شما release file ارائه نکرده هنوز، برای همین این ارور رو میده، یه نمونه اش میشه ارور زیر :

E: The repository 'https://ppa.launchpadcontent.net/eivnaes/network-manager-sstp/ubuntu kinetic Release' does not have a Release file.

برای رفع مشکل کافیه ppa ورژن قدیمی را پاک کنید، دستور پاک کردن PPA به شکل زیر است:

sudo add-apt-repository --remove ppa:eivnaes/network-manager-sstp

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

با سلام و درود، تا الان که من دارم اینجا در مورد فورتی کلاینت روی لینوکس اوبونتو مطلب می نویسم همیشه مشکل نصب و وصل شدن به ssl vpn فورتی کلاینت از طریق لینوکس اوبونتو بوده، الان لینوکس ورژن ۲۲.۰۴ آخرین ورژن اوبونتو هست در حلی که داخل سایت فورتی نت آخرین نسخه اوبونتوی اون برای ۱۶.۰۴ هست!!!

البته میشه اون رو هم نصب کرد ولی من رو سیستم های مختلف باهاش همیشه مشکل داشتم 🙁

من هر وقت بخوام برای جایی دورکاری داشته باشم که از vpn های فورتی کلاینت (فورتیگیت) استفاده می کنند از openfortivpn استفاده می کنم. نصب و راه اندازیش دستورات زیر رو لازم داره:

sudo apt install openfortivpn

sudo openfortivpn : -u 

اگر دستور اتصال رو زدید و به cert گیز داد، میتونید اون cert که بهتون داده را به صورت زیر به انتهای دستور اتصال اضافه کنید:

sudo openfortivpn : -u   <--trusted-cert=>
sudo openfortivpn 92.152.519.161:11443 -u sadegh  --trusted-cert=548bdcdf82135d12sdg53351a659ccbb6a3c589f7

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

با سلام اگر بهنگام بروزرسانی یکی از cert های Let’s encrypt به مشکل زیر برخورد کردید:

Attempting to renew cert from /etc/letsencrypt/renewal/somedomain.com.conf produced an unexpected error: Problem binding to port 443: Could not bind to IPv4 or IPv6.. Skipping.فق
  

فقط کافیه وب سرور خودتون که آپاچی یا انجینیکس هست رو ابتدا stop کنید و سپس اقدام به آپدیت کردن سرتیفیکیت خود بکنید.

stop Nginx:

sudo systemctl stop nginx

stop Apache:

sudo systemctl stop apache2

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

اگر به ارور زیر برخورد کردید به این معنیست که توزیع لینوکس شما تنها ازresolvectl پشتیبانی می کند.

sudo : systemd-resolve: command not found

برای مثال جهت پاک کردن کش سیستم در اوبونتو ۲۲.۰۴ اگر مثل سابق از دستور زیر استفاده کنید ( پاک کردن کش dns در اوبونتو ):

sudo systemd-resolve --flush-caches

با ارور فوق مواجه خواهید شد، برای پاک کردن کش dns در اوبونتو ۲۲.۰۴ از دستور زیر استفاده کنید:

resolvectl flush-caches
resolvectl statistics

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقهغیرفعال سازی 2fa برای گیتلب سرور

زمان مطالعه: < 1 دقیقه

با سلام و درود، برای خودم اشتباه کرده بودم و ریکاوری کد های 2fa رو ذخیره نکرده بودم.

گوشیم سوخت و در نتیجه برای لاگین root به سرور گیتلب دسترسی به 2faنداشتم. بنابراین مجبور شدم برای غیر فعال سازی 2fa از دستور زیر برای غیر فعال کردن ورود دو مرحله ای برای تمامی کاربران استفاده کنم و بتونم لاگین کنم:

sudo gitlab-rails runner 'User.find_each(&:disable_two_factor!)'

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

با سلام برای بدست آوردن زمان expire شدن certificate برای مثال Let’s encrypt cert کافیه وارد پوشه ای که فایل cert.pem ساخته شده شوید و از دستور زیر استفاده نمایید:

ssl-cert-check -c cert.pem

اگر ssl-cert-check را نصب ندارید با دستور زیر نصب کنید:

sudo apt install ssl-cert-check

پوشه نگهداری cert ها برای Let’s Encrypt و اگر مطابق آموزش خودم داخل بلاگ (آموزش امن کردن Nginx با رمزگذاری Let’s Encrypt) انجام داده باشید به صورت زیر می باشد:

/etc/letsencrypt/live/example.com/

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

با سلام، برای اینکه ببینید چقدر از زمان سرتیفیکت مونده از دستور زیر استفاده کنید :

echo | openssl s_client -connect yourdomain.ir:443 -servername yourdomain.ir 2>/dev/null | openssl x509 -noout -dates

( بدست آوردن مقدار زمان باقیمانده از سرتیفیکیت Let’s encrypt در لینوکس )

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

با سلام، اگر با ارور زیر مواجه شدید حتما دارید با Let’s Encryptکار می کنید، پس در ادامه همراه باشید

There were too many requests of a given type :: Error creating new order :: too many failed authorizations recently: see https://letsencrypt.org/docs/rate-limits/

این ارور به وضوح داره میگه شما حداقل ۵ بار به سرور Let’s Encrypt درخوسات ناموفق داشتید و فعلا نمیتونید درخواست جدیدی بزنید!!

اول از همه این محدودیت به ازای هر ۵ ساعت هست، پس ناراحت نباشید و حداکثر ۱ ساعت بعد میتونید دوباره دستور خودتون که منجر به ارور بالا میشد رو تکرار کنید.

نکته: احتمالا برای renewکردن به Let’s Encrypt درخوسات داشتید، اگر برای تست request می زنید، بهتره از دستور certbot renew –dry-run استفاده کنید که محدودتی نداره یا به نوعی میشه گفت محدودیتش کم نیست و بعیده که شما رو ban کنه.

تمام

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

با سلام، اگر برای SSl وب سایت تان از Let’s Encrypt استفاده می کنید و بهنگام بروزرسانی SSLبا ارور زیر مواجه شدید، با ادامه مطلب همراه باشید.

Domain: example.com 
Type: connection Detail: Fetching http://arjunbroker.com/.well-known/acme-challenge/F9nlyrRISU7q2aX7t_o: 
Timeout during connect (likely firewall problem)

خب همون طور که خود ارور داره توضیح میده، احتمالا مشکل از فایروال باشه و با بستن پورت ها جلوی اتصال به سرور را گرفته، بهنگام renew کردن سرتیفیکیت sslباید حتما پورت های 80 و 443 به سرورتان باز باشد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

با سلام و درود، اگر قصد دارید داخل بلاک سرور Nginx تان، websocket requests را handle کند، خطوط زیر را به قسمت location از بلاک سرور Nginx مورد نظر جهت مدیریت کردن websocket اضافه کنید:

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

Tags: nginx, websocket

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

اول از همه بعد از نصب اکستنشن pg_stat_statements باید postgresqlرا ریست کنید و همچنین باید خط زیر را در postgresql.conf تغییر دهید:

shared_preload_libraries = ''

تغییر دهید به :

shared_preload_libraries = 'pg_stat_statements'

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

برای پیدا کردن مسیر فایل postgresql.conf کافیست داخل اوبونتو دستور زیر را وارد کنید :

sudo -u postgres psql -c 'SHOW config_file'

یا داخل psql دستور زیر را بزنید:

psql -U postgres -c 'SHOW config_file'
Tags: db, postgreqsl

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

با سلام و درود،

برای اینکه از **kwargs به عنوان فیلتر های کوئری ست داخل جنگو استفاده کنید کد نویسی مشابه زیر خواهد بود (فیلتر روی کوئری ست در جنگو):

allowed_filters = ('x', 'y')
kwargs = {}
for key, value in request.data.items():
    if key in allowed_filters:
        kwargs.update({key: value})


try:
    access_level_request_objs = AccessLevelRequest.objects.filter(**kwargs)
except IndexError:
    pass

در نمونه کد بالا رابطه بین فیلتر ها AND می باشد اگر بخواهیم رابطه بین آنها OR باشد باید از Q و _connector استفاده کنیم، به نمونه کد زیر توجه کنید:

Q(**filter_kwargs, _connector=Q.OR)

Tag: جنگو

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

با نام خدا و سلام، اکر قصد دارید ابتدای فیلد های یک ستون از پایگاه داده یا فقط یکی از ردیف های دیتابیس مقدار پیش فرضی اضافه کنید یا مقدار حرفی یا عددی اضافه کنید، کافی است از دستور زیر اسفاده کنید:

update mytable set mobile = '98' || mobile, name = 'آقای' || name;

اگر میخواهید پیشوند دیتابیس فقط نمایش داده شود از دستور زیر استفاده کنید:

select '98' || mobile as mobile, 'آقای' || name as name from user_profile;

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

با سلام و درود، اگر به حالتی برخوردید که تمامی صفحات سایت ورپرسی شما با ارور ۴۰۴ مواجه میشد بجز صفحه خانه (Home Page) احتمالا لینک های یکتای سایت به هر دلیلی دچار مشکل شده اند، برای رفع مشکل کافیست به تنظیمات (setting) و سپس پیوندهای یکتا (Permalinks) رفته و دکمه ذخیره در پایین صفحه را بزنید تا مجدد لینک ها را باز سازی کند.

به احتمال قوی مشکلتون باید حل شده باشه 🙂

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقهحل ارور Related Field has invalid lookup: icontains

زمان مطالعه: < 1 دقیقه

با سلام، تو این مطلب به حل ارور Related Field has invalid lookup: icontains در پایتون پرداخته شده، چی میشه که چنین اروری داریم؟؟

داستان از اینجا شروع میشه که شما داخل search_fields های admin.py از پروژه تون روی یه کلید خارجی امکان جستجو رو گذاشتید، برای مثال من یه مدل دارم که کلید خارجی داره به مدل کشور ها، داخل search_fields فقط عنوان فیلد کلید خارجی رو گذاشتم که این ارور رو میده، باید پس از فیلد کلید خارجی، با دو تا _ نام فیلد اون جدولی که کلید خارجی روش دارم رو نیز مشخص کنم.

باید خط زیر را:

search_fields = ['foreignkeyfield']

به خط زیر تغییر دهید (همراه با دو تا under score) :

search_fields = ['foreignkeyfield__name']

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

زمان مطالعه: < 1 دقیقه

با سلام و درود، سریع بریم سراغ اصل مطلب، شما یه فایل یا فولدر دارید که داخل .gitignore اضافه اش کردید، ولی وقتی pushمی کنید و از طرفی روی یه سیستم دیگه pullمی کنید، همچنان اون فایل یا فولدر انتقال داده می شه!!

چرا !؟؟ مگه داخل فایبل گیت ایگنور اضافه نکردیم؟ پس چرا باز فایل داره منتقل میشه!؟؟

در حقیقت گیت فایلی که قبل از ثبت آن در gitignore داخل پوشه بوده و track هم میشده را نمی تواند ignore کند.

در این موارد باید اون فایل را از trackشدن خارج کنید، برای این منظور از دستور زیر استفاده کنید:

git rm --cached 

برای مثال اپلیکیشن با جنگو می نوشتید، تصمیم به دپلوی کردن پروژه می گیرید و settings.py را داخل .gitignore می گذارید، ولی باز هم settings.py منتقل میشه! برای حل این مشکل کافییست پس از افزودن settings.py به فایل .gitignore نسبت به اجرای دستور زیر اقدام کنید:

git rm --cached settings.py
  • دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، به هنگام نصب requirementها داخل یک virtual environment احتمال داره به ارور زیر بر بخورید:

    ERROR: Could not find a version that satisfies the requirement apturl
    ERROR: No matching distribution found for apturl

    خب داره میگه نمیتونه ورژن مورد نظر از apturl رو پیدا کنه تا بخواد نصبش کنه، حق هم داره، چون که پکیج های apturl و apparmor پکیچ های اوبونتویی هستند و باید از requirement اونها رو پاک کنید و از طریق دستور زیر نصب کنید:

    apt install -y apparmor apturl && pip install -r requirements.txt

    احتمالا اشتباها system site packages را freeze کرده بودید که به اشتباه داخل فایل requirement اضافه شده بودند.

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهحل ارور Invalid data. Expected a dictionary, but got int.

    زمان مطالعه: < 1 دقیقه

    خب مشکل کجاست؟ شما یه سریالایزر دارید، که مدل استفاده شده داخل سریالایزر شما یه کلید خارجی داره، بهنگام آپدیت کردن احتمالا به این مشکل برخوردید،

    قدم اول احتمالا سریالایزر رو به صورت nested ساخته اید و در نتیجه بهنگام آپدیت کردن، فقط id اون کلید خارجی رو قبول نمیکنه و انتظار یه nested dictionary داره، راه حل خیلی ساده است، فقط کافیست یه سریالایزر جدید بسازید و serializers ها رو به دو دسته read و write تبدیل کنید تا به این مشکلات برنخورید.

    به مثال زیر توجه کنید:

    class HuntingDetailViewSerializer(serializers.ModelSerializer):
    
        species = HuntingSpeciesSerializer(many=True, read_only=True)
        technique = HuntingTechniqueTagSerializer()
    
        class Meta:
            model = HuntListing
            exclude = ('owner',)

    شما سریالایزر بالا را دارید، داخل view نیز کد زیر را دارید:

    listing_id = request.data.get('listing_id')
        listing = HuntListing.objects.get(id=listing_id)
    
        serializer = HuntingDetailViewSerializer(listing, data=request.data, partial=True)
    
        if serializer.is_valid():
            serializer.save()

    داده نمونه تون هم به صورت زیر هست :

    {"listing_id":9, "technique":1, ....}

    ولی ارور دارید به صورت زیر :

    Invalid data. Expected a dictionary, but got int.

    حل ارور:

    فقط کافیست همان طور که گفته شد، serializer های readو write رو از هم جدا کنید، پس سریالایزر جدید داریم :

    class HuntingDetailViewSerializer(serializers.ModelSerializer):
    
        species = HuntingSpeciesSerializer(many=True, read_only=True)
    
        class Meta:
            model = HuntListing
            exclude = ('owner',)

    همان طور که ملاحظه کردید، خط زیر را حذف کردیم.

     technique = HuntingTechniqueTagSerializer()

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، اگر اقدام به ضبط کردن صفحه Vmware کرده باشید احتمالا به این مشکل برخورد کرده اید که حرکت ماوس و action ها ماوس رو ضبط نمی کنه برای مثال بهنگام ضبط صفحه نمایش و برنامه vmware توسط Camtasia به این مشکل به احتمال زیاد برخواهید خورد.

    برای حل مشکل فوق کافیست از منوی خود نرم افزار Vmware وارد edit شوید. (ctl+p)

    سپس Prefrences را انتخاب کنید. در صفحه باز شده از منوی سمت چپ input را انتخاب کنید و سپس از لیست کشویی Opti,ize mouse for game گزینه ی Always رو انتخاب کنید.

    Tags: pc, vmware

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، سریع میرم سر اصل مطلب، ممکن موقع استفاده از composer با ارور زیر مواجه شوید:

     /var/www/kimai2/vendor does not exist and could not be created. 

    برای حل مشکل کافیست به صورت زیر پیش روید:

    اول از همه user خود را به گروه www-data اضافه کنید:

    sudo usermod -a -G www-data `whoami`

    سطح دسترسی درست را به /var/www دهید:

    sudo chown root:root /var/www
    sudo chmod 755 /var/www/

    سطرح دسترسی درست را به پروژه خود دهید:

    در ارور اولی که آورده بودم، پروژه من kimai2 میشه:

    sudo chown -R www-data:www-data /var/www/
    sudo chmod -R 774 /var/www/
    
    
    sudo chown -R www-data:www-data /var/www/kimai2
    sudo chmod -R 774 /var/www/kimai2

    و تمام 🙂

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، اگر لوکیشن سرورتون ایران باشه و قصد بروزرسانی clamavرا داشته باشید، بلاشک با مشکل بر میخورید و در قدم اول باید وی پی ان خودتون رو متصل کنید. و همچنین به هنگام اجرای دستور زیر ممکن است ارور داشته باشید:

     sudo freshclam
      
      
    ERROR: /var/log/clamav/freshclam.log is locked by another process
    ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).

    برای رفع ارور فوق، کافیست ابتدا سرویس clamav را stop کنید و سپس اقدام به بروزرسانی کنید.

    sudo systemctl stop clamav-freshclam.service
    
    sudo freshclam

    با دستورات فوق وارد بروزرسانی می شوید و فقط ممکن وسطای بروزرسانی مجدد با ارور زیر مواجه بشید:

    !Download failed (28) Wed Feb 24 07:29:35 2021 -> ! Message: Timeout was reached

    که خودش داره به وضوح میگه به مشکل timeout برخورده، برای حل مشکل کافیست به راحتی freshclam.conf را ویرایش کنید.

    sudo nano /etc/clamav/freshclam.conf

    و مقدار ReceiveTimeout را بیشتر از ۳۰ ثانیه بگذارید و مجدد اقدام به بروزرسانی کنید.

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    برای بدست آوردن سایز یک فولدر خاص از دستور زیر استفاده نمایید:

    du -hs /folderpath

    -h : عدد خوانا برای انسان

    -s : فقط به صورت خلاصه

    -c : مجموع سایز های دایرکتوری

    -h : مرتب کردن خوانا برای انسان

    -r : به صورت معکوس

    برای مثال بدست آوردن سایز دایرکتوری دانلود در اوبونتو :

    du -hs /home/sadegh-khan/Downloads

    از دستور زیر برای بدست آوردن سایز دایرکتوری و هر چه داخل آن است استفاده کنید:

    sudo du -h /home/sadegh_khan/Desktop

    می توانید نتایج رو مرتب (sort) نیز کنید:

    sudo du -h /home/sadegh_khan/Desktop | sort -rh

    به دو تا مثال زیر هم توجه کنید:

    sudo du -h --max-depth=2 /var/lib
    
    sudo du -sh --apparent-size /var/lib

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، اگر rabbitmq رو روی سرور B نصب کرده باشید و بخواهید از سرور A به آن اتصال داشته باشید، یه مقدار متفاوت از حالت localhost می باشد. تفاوت اصلی در مشخص کمردن user و pass به هنگام اتصال remote می باشد.

    برای این کار صرفا کافیست به فرمت زیر اتصال را برقرار کنید:

    app = Celery('tasks', broker='amqp://user:pass@serverB_IP')

    برای ساخت user جدید برای rabbitmq نیز می توانید از دستورات زیر استفاده کنید:

    $ sudo rabbitmqctl add_user myuser mypassword
    $ sudo rabbitmqctl add_vhost myvhost
    $ sudo rabbitmqctl set_user_tags myuser mytag
    $ sudo rabbitmqctl set_permissions -p myvhost myuser ".*" ".*" ".*"

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهآموزش اتصال ریموت به redis

    زمان مطالعه: < 1 دقیقه

    با سلام، اگر قصد داشته باشید redisخود رو روی یک ماشین دیگه اجرا کنید و مشخصا از ماشین دیگه ای هم بهش ریموت و دسترسی داشته باشید باید یه مقدار تغییرات در فایل conf ردیس انجام دهید.

    ۱- فایل تنظیمات redis در این آدرس می باشد: /etc/redis/redis.conf

    ۲- تغییر bind 127.0.0.1 به bind 0.0.0.0

    ۳- تغییر protected-mode yes به protected-mode no

    4- روی ماشینی که redisرا نصب کردید مطمین باشید اگر فایروال فعال هست، اجازه دسترسی به پورت ۶۳۷۹ را داده باشد. (ufw allow 6379 و ufw allow 6379/tcp)

    ۵- در انتها سرویس redis را یه ری استارت انجام بدید.

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام، ممکن در سلری به هنگام اجرا کردن که دستور زیر را زدید:

    celery -A tasks worker -l=INFO

    با ارور زیر مواجه شوید:

    Error: Invalid value for '-l' / '--loglevel': invalid choice: info. (choose from DEBUG, INFO, WARNING, ERROR, CRITICAL, FATAL)

    مشکل از کجاست!؟ فقط کافیه اون علامت مساوی رو بعد از -l بردارید و دستور رو به صورت زیر اجرا کنید:

    celery -A tasks worker -l INFO
  • دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، ممکن بهنگام بارگزاری فایلی داخل وردپرس، برای مثال گذاشتن یک تصویر روی یک پست، با ارور زیر مواجه شوید:

    Unable to create directory wp-content/uploads/. Is its parent directory writable by the server?

    به وضوح ارور داره میگه من دسترسی به پوشه wp-content/uploads/ ندارم، کافیست دسترسی var/www/wordpressName/wp-content/uploads را اصلاح کنید.

    برای اینکار اگر سرور وردپرسی تان لینوکسی و اوبونتو بود، دستور زیر مشکل شما را حل خواهد کرد:

    sudo chown -R www-data:www-data /var/www/sadegh-khan.ir/wp-content/uploads

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، به صورت پیش فرض شماره پورت پایگاه داده های MySQL مقدار ۳۳۰۶ می باشد، منتهی اگر پورت را خودتان تغییر داده اید و فراموش کرده اید، کافیست از دستور زیر داخل شل mysqlاستفاده کنید.

    sudo mysql
    mysql>SHOW GLOBAL VARIABLES LIKE 'PORT';

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام، احتمالا برخورد با این ارور بهنگام نصب sass خیلی وجود داره، متن ارور را زر آوردم، اما این ارور چی میگه؟ میگه که powershell امکان اجرا کردن اسکریپت را نداره و محدود شده، در نتیجه برای رفع این ارور باید محدودید execute کردن اسکریپت را از روی پاورشل برداریم.

    Roaming\npm\sass.ps1 cannot be loaded because running scripts is disabled on this system

    راه حل ارور sass.ps1 cannot be loaded because running scripts is disabled

    خب برای حل این مشکل باید از دستور Set-ExecutionPolicy استفاده کنیم،دستور به صورت کامل به شکل زیر است:

     PS C:\> Set-ExecutionPolicy RemoteSigned

    اما به صورت پیش فرض مقدار ExecutionPolicy چیست‌ ؟

    برای کلاینت ها : Restricted

    برای سرورها: RemoteSigned

    RemoteSigned به چه معنا است؟

    • سیاست اجرای پیش فرض برای کامپیوتر های ویندوز سروری می باشد.
    • اسکریپت ها می توانند اجرا شوند.
    • نیازمند امضای دیجیتال از منتشرکننده های معتبر برای اسکریپت ها و فایل های کانفیگ دانلود شده از اینترنت می باشد.
    • نیاز به امضای دیجیتال برای اسکریپت هایی که به صورت لوکال نوشته شده اند و از اینترنت دانلود نشده اند نمی باشد.
    • اسکریپت های دانلودی از اینترنت که امضا ندارند اگر Unblockشده باشند را می توان اجرا کرد. (استفاده از دستور Unblock-File cmdlet)

    Restricted به چه معنا است ؟

    • سیاست اجرای پیش فرض برای کاربران ویندوز
    • اجازه ی دستورات را می دهد اما اجازه اسکریپت را خیر
    • جلوی اجرای تمامی فایل های اسکریپتی را می گیرد، شامل فایل های فرمت و کانفیگ (.ps1xml) فایل های اسکریپت ماژول (.psm1) و پروفایل های پاورشل (.ps1)

    نکته: به هر ExecutionPolicy می توان یک scope نیز داد. در مورد scope و اطلاعات بیشتر از لینک زیر استفاده کنید.

    برای اطلاعات بیشتر می تویند یه سر به سایت اسناد خود ویندوز بزنید.

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، در این مطلب کوتاه در مورد مسیر ذخیره شدن لاگ های nginx و همچنین دستور ترمینال جهت مشاهده آخرین خطاهای nginx پرداخته شده است.

    مسیر ذخیره لاگ های nginx مسیر زیر می باشد:

    /var/log/nginx/error.log

    و اما برای مشاهده ۳۰ خطای اخیر در لینوکس می توانید از دستور زیر استفاده کنید:

    sudo tail -30 /var/log/nginx/error.log

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    برای برنامه نویسان مشتاق ایرانی احتمال اینکه موقع کار با dartpad برای کار با دارت -dart به ارور زیر بر بخورند خیلی زیاد می باشد،

    راه حل استفاده از VPNهست، متاسفانه به همین راحتی قابل حل هست.

    XMLHTTPrequest error -line1
    Tag: dart
  • خیلی ممنون. با فیلتر شکن حل شد. گفتم شاید برای دوستان دیگه لازم بشه که من از دی ان اس شکن یا دی ان اس مشابه استفاده کردم مشکل حل نشد. اما با فیلتر شکن حل شد. ممنون.

  • ربطی به فیلتر شکن نداره
    یا فایل جیسانی که داری استفاده میکنی مشکل داره یا قسمت هدر url خودتو درست وارد نکردی

  • سلام. ممنون بابت راهنمایی. من از DNSهای سایت “شکن” که برای گذر از تحریم هست استفاده کردم و مشکل برطرف شد.

  • دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، مشکل یا ارورFailed to create symbolic link: File exist بهنگامی رخ میده که شما قصد برقراری symbol linkبین دو فایل دارید، ولی فایل قبلا ساخته و لینک انجام شده بوده و به هر دلیلی مانند ویرایش نیاز دارید که مجدد لینک بشوند، برای حل مشکل کافیست ساخت لینک را forceکنید با اضافه کردن f به -s تابشه -sf به شکل زیر:

    sudo ln -sf ../sites-available/myproject ../sites-enabled/

    Tag: nginx

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، به ظنرم یکی از اعصاب خورد کن ترین ارورهای لینوکسیه :)) یه سرور رو تازه نصب کرید و همه کانفیگ ها درست و میخوای دستور sudo بزنی که هم دستورات کند هستند و طول میکشه اجرا بشوند و هم ارور میده sudo: unable to resolve host ”: Name or service not known ، و اما مسئله کجاست!

    مشکل از کجاست؟

    این مشکل از جایی آب میخوره که سیستم نمیتونه hostnameشما را تضخیص بده، یا hostname رو به تازگی تغییر دادید و به مشکل برخوردید یا سیستم عامل تازه نصب شده.

    پس باید دو سه تا جا مقدار hostname رو به طور صحیح و درست تعریف کنیم.

    اول از همه با دستور زیر ببینید hostnameفعلی سیستم شما چیست:

    hostname

    شما باید hostname رو مشاهده کنید ، برای مثال newpc.

    حال بریم دنبال رفع ارور،

    رفع ارور unable to resolve host

    خب ابتدا به این مسیر برید و ببینید چی داخلش هست :

    sudo vim /etc/hosts

    باید دارای خطوط زیر باشد، مخصوصا خط دوم:

    127.0.0.1 localhost  localhost.localdomain
    
    127.0.1.1 newpc

    تا اینجای کار باید مشکل حل شده باشه ولی بهتره که hostnameزو با دستور زیر چک کنید تا در اینجا نیز درست تنظیم شده باشد:

    sudo nano /etc/hostname

    در این فایل باید مقدار hostname که نمایش داده می شود همان newpc باشد

    به همین سادگی و تمام

  • unable to resolve hostسلام تراست والت دارم در گوشی که برای انتقال ارز این خطا را داد چطور حل کنیم.
    No address associotans host name
    باتشکر

  • دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، احتمالا خیلی رایج براتون تا بخواید روی سیستم لینوکسی بفهمید ip سیستم چنده یا اطلاعات dns رو بدست بیارید.

    برای بدست آوردن IP داخلی تان در لینوکس، کافی است از دستور زیر استفاده کنید:

    ip a

    برای بدست آو.ردن DNS Server فعلی که استفاده میشه در لینوکس از دستور زیر استفاده کنید:

    systemd-resolve --status | grep Current

    برای نمایش default gateway از دستور زیر استفاده کنید:

    ip r

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، احتمالا خیلی زیاد دیدید که فایل های نصلی برای لینوکس با فرمت پکیج های rpmباشند، برای نصب این فال ها ابتدا آنخا را به فایل با فرمت .deb تبدیل می کنیم و سپس اقدام به نصب آنها می کنیم.

    ابتدا با دستور زیر Alien را برای تبدیل فایل rpm به .deb نصب می کنیم.

    برای این منظور دستورات زیر را در ترمینال اجرا کنید:

    sudo add-apt-repository universe
    sudo apt update
    sudo apt install alien

    حال با دستور زیر با استفاده از Alien اقدام به تبدیل فایل با فرمت rpm می کنیم:

    sudo alien packagename.rpm

    پس از تبدیل، برای نصب فایل با فرمت .depاز دستور زیر استفاده کنید:

    sudo dpkg –i packagename.deb

    و تمام 🙂

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، احتمالا اگر در حال خوندن این مطلب هستید یه پرینتر اچ پی (HP) دارید که با کابل USB به سیستم با سیستم عامل لینوکس خودتون وصلش کردید و سیستم عامل هم اون رو شناخته و تو لیست پرینتر ها آورده ولی پرینت نمیگیره!!! تو لیست job ها پیرنتر پرینت ها را اضافه می کنه ولی پرینت نمیگیره !!!

    خب برای حل مشکل پرینتر های اچ پی در لینوکس کافی است ایتدا با دستور زیر python3-pyqt5 را نصب کنید:

    sudo apt-get install python3-pyqt5

    اگر نسخه اوبونتویی که دراید کمتر از ۱۸.۰۴ هست، دستور زیر را نیز استفاده کنید:

    sudo apt-get install python3-pyqt4

    حال دستور زیر را بزنید :

    sudo hp-setup

    تصویر زیر را مشاهده خواهید کرد:

    خب از قسمت GUI دکمه next رو بزنید و پیش برید، قسمتی رو برای دانلود hp plugin از سمت ترمینال باید دکمه d کیبورد را بزنید و سپس enterکنید.

    مشکل پرینتر HP شما روی لینوکس اوبونتو جل خواهد شد.

    Tags: hp, linux, printer, ubuntu
  • دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    خب برای فعال سازی مخفف ها برای زبان جاوااسکریپت کافیست وارد settings ویژوال کد شوید ، در نوار جستجو، emmet.includeLanguages را جستجو کنید و سپس add item را بزنید همانند شکل زیر javaScript را وارد کنید:

    به غیر از جاوااسکریپت، می توانید موارد دیگری را، مانند vue-html و غیره اضافه کنید:

        "javascript": "javascriptreact",
        "vue-html": "html",
        "razor": "html",
        "plaintext": "pug"

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، امروز با یه مفهوم ساده ای در جاوا اسکریپت همراهتون هستم، تفاوت عملگرهای == و === در چیست؟؟

    در یک کلام، تفاوت اصلی بین عملگرهای == و === در بررسی کردن type مقدار داده شده به هنگام مقایسه می باشد، اگر شما یک عدد «number» را با یک متن «String» مقایسه کنید، == اجازه ی این کار را می دهد، ولی === اجازه این کار را نمی دهد، چرا که نه تنها مقادیر را بررسی می کند، بلکه نوع «type» آنها را نیز بررسی می کند. اگر دو value در حال مقایسه دارای type متفاوتی باشند، === مقدار false را بر می گرداند، در حالیکه == مقدار true را بر می گرداند.

    if (2 == '2')   // TRUE
    if (2 === '2')  // FALSE
     
    0==false   // true, because false is equivalent of 0
    0===false  // false, because both operands are of different type
    2=="2"     // true, auto type coercion, string converted into number
    2==="2"    // false, since both operands are not of same type
    

    مطالعه بیشتر

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: 2 دقیقه

    با سلام و درود، مشکل از کجا شروع میشه !! از ارور زیر :

    ! [remote rejected] master -> master (pre-receive hook declined)
    error: failed to push some refs to

    به شما اجازه push کردن نمیده! به همین سادگی :)))

    قضیه از این قراراه که به احتمال قوی شما با مسئله Protected branches روبرو هستید، و نوع user فعلی شما اجازه pushکردن رو نداره، به تصویر ذیل نگاه کنید

    حال راه حل چیه؟؟ باید دسترسی branch Protection رو تغییر بدید، برا این کار ابتدا :

    ۱) وارد Settings شوید .

    ۲) سپس وارد Repository شوید. (Settings ➔ Repository)

    ۳) اسکرول کنید تا Protected branches را پیدا کنید.

    ۴) از منو دراپ دان Branch ، برنچ مورد نظر خودتون رو انتخاب کنید.

    ۵) حال branch انتخاب شده در لیست “Protected branches” نمایش داده می شود.

    ۶) حال به راحتی مقادری Allowed to push و allowed to merge رو میتونید تغییر بدید و روی maintainer+dfeveloper بگذارید.

    مرجع: https://docs.gitlab.com/ee/user/project/protected_branches.html

    Tags: error, git, push

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    برای بدست آوردن اینکه کدام display manager روی لینوکس شما نصب است کافیست از دستور زیر استفاده کنید:

    cat /etc/X11/default-display-manager

    خروجی دستور فوق به شکل زیر خواهد بود :

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: 2 دقیقه

    با سلام، احتمالا دارید از VSCode استفاده می کنید و یه پروژه پایتونی 🙂 حالا با ارور Class has no objects member مواجه شدید 😐

    اول از همه به نصب pylint-django اقدام کنید (از دستور زیر استفاده کنید):

    pip install pylint-django

    حال داخل محیط VS Code از کلید های Ctrl + Shift + P استفاده کنید تا Command Palette نمایش داده شود،

    حال خط زیر را در آن تایپ یا کپی کنید:

    Preferences: Configure Language Specific Settings

    و سپس pythonرا انتخاب کنید.

    حال در فایل باز شده داخل گیومه {} ، کدهای زیر را وارد نمایید:

    "python.linting.pylintArgs": [
            "--load-plugins=pylint_django",
        ]

    و تمام 🙂

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، برای اینکه بفهمیم در حال حاضر کدام یک از پورت های سیستم عامل در حال استفاده هستند (لیست پورت های لینوکس)، کافی است از یکی از دستورات زیر استفاده کنید:

    sudo lsof -i -P -n | grep LISTEN
    sudo netstat -tulpn | grep LISTEN
    sudo lsof -i:22 ## see a specific port such as 22 ##
    sudo nmap -sTU -O IP-address-Here

    در تصویر زیر از دو دستور متفاوت برای پیدا کردن پورت های در حال استفاده (استفاده شده) در لینوکس استفاده کردم که می توانید خروجی آنها را ببینید:

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، خب با رفع ارور Exception in thread “main” java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper در لینوکس و به هنگام اجرای فایل جاوا در خدمتتون هستم، برای رفع ارور کافی است فایل accessibility.properties در آدرس زیر را باز کرده :

    sudo nano /etc/java-8-openjdk/accessibility.properties

    و مقدار

    assistive_technologies=org.GNOME.Accessibility.AtkWrapper

    را کامنت کنید:

    #assistive_technologies=org.GNOME.Accessibility.AtkWrapper

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام درود، برای رفع ارور Parsing filters unsupported بهنگام استخراج یا آن زیپ کردن یک فایل زیپ کافیست دو دستوپر زیر را اجرا کنید (دو پکیج نصب کنید):

    sudo apt-get install unrar
    sudo apt-get install file-roller

    پس از اجرای دستورات فوق، مجدد استخراج یا آنزیپ کردن فایل زیر در لینوکس را امتحان کنید.

    Tag: unzip

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود در این آموزش به نحوه پیدا کردن نام منطقی شبکه یا network device logical name پرداخته شده.

    برای مشاهده نام منطقی ابزار شبکه خودتون کافیست دستور زیر را در ترمینال لینوکس اوبونتو وارد کنید :

    sudo lshw -C network
    نام منطقی ابزار شبکه در لینوکس

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، موقع استفاده از دستور sudo apt-get installیا داخل اپلیکیشن softwareاز اوبونتو و به هنگام نصب به ابزار جدید احتمالا با چنین اروری مواجه شوید، ارور داره میگه که یه دستور دیگه ای در حال نصب پکیج دیگه ای هست و به قلی لاک کرده و نمیشه شما هم زمان نصب پکیج داشته باشید، برای حل ارور اتول مطمین بشید در حال نصب پکیج در ترمینال دیگه ای نیستید و اگه مطمین شدید چیز دیگه ای در حال نصب نیست کافیست دستورات زیر را انجام دهید:

    sudo killall apt apt-get

    اگر دستور فوق مشکل را حل نکرد، دستورات زیر را اجرا کنید:

    sudo rm /var/lib/apt/lists/lock
    sudo rm /var/cache/apt/archives/lock
    sudo rm /var/lib/dpkg/lock*

    باز اگر مشکل حل نشد دیگه دسترو زیر حتما مشکل رو حل می کنه:

    sudo dpkg --configure -a

    و تمام

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، به هنگام نصب Gitlab روی اوبونتو سرور به ارور زیر بر خوردم:

    E: Unable to locate package gitlab-ee

    نسخه اوبونتو 20.04 بود، مشکل از اینجا بود که پکیج های گیتلب بر خلاف ادعای خود گیتلب روی اوبنتو فوکال (20.04) وجود نداشت.

    برای حل این مشکل کافیست پکیج نسخه ۱۹.۰۴ را اضافه کنیم و از روی همان نسخه گیت لب را نصب کنیم :

    curl -L -o gitlab-ee_13.0.6.deb https://packages.gitlab.com/gitlab/gitlab-ee/packages/debian/buster/gitlab-ee_13.0.6-ee.0_amd64.deb/download.deb
    sudo EXTERNAL_URL="https://gitlab.example.com" apt install ./gitlab-ee_13.0.6.deb
    

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام، یکی از مواردی که با ارور زیر برخواهید خورد این است که password authentication را برای root فعال کرده اید ولی از دستور sudo mysqlبرای دسترسی به shellدارید استفاده می کنید.

    ERROR 1045 (28000): Access denied for user 'sadegh-khan'@'localhost' (using password: NO)

    برای حل این ارور کافیست برای ورود به Shellاز دستور زیر استفاده کنید:

    mysql -u root -p

    به همین راحتی 🙂

  • دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام، ممکن به هنگام اجرای دستور sudo systemctl start mongod.service با ارور زیر مواجه بشید:

    Failed to start mongod.service: Unit mongod.service not found.

    برای حل این مشکل کافیست دستور زیر رو اجرا کنید :

    sudo systemctl unmask mongod

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهحل ارور Error opening directory ‘/media’: Permission denied در لینوکس

    زمان مطالعه: < 1 دقیقه

    خب داخل اپلیکیشن GIMP بودم که میخواستم یه فایل از درایور ویندوزم رو باز کنم که به ارور زیر برخوردم:

    Error opening directory ‘/media’: Permission denied

    واضحه که داره میگه دسترسی به درایو های دیگه نداری !

    مشکل به سادگی حل میشه، صرفا کافیه اپلیکیشن Ubuntu Software را باز کنید، اپلیکیشن مورد نظرتون رو داخل اون جستجو کنید و پس از پیدا کردن، وارد اون اپلیکیشن شود (قاعدتا باید تیک Installed را داشه باشه)، تب Permissions رو باز کنید و گزینه Read/Write files on removable storage devices را فعال کنید 🙂

    با توجه به تصویر زیر، آخرین گزینه می باشد

    حل ارور Error opening directory ‘/media’: Permission denied در لینوکس
    حل ارور Error opening directory '/media': Permission denied
    حل ارور Error opening directory ‘/media’: Permission denied

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام، اگر کلاس های کاستوم از django_cities_light ساخته بودید و به ارور زیر برخورد کردید :

    cities_light.Region.country: (fields.E304) Reverse accessor for 'Region.country' clashes with reverse accessor for 'Region.country'. HINT: Add or change a related_name argument to the definition for 'Region.country' or 'Region.country'.

    برای حل این مشکل با توجه به اسناد خود django_cities_light کافیست به تنظیمات دیجنگو خط زیر را اضافه کنید :

    CITIES_LIGHT_APP_NAME = ‘yourapp_name’

    yourapp_name باید نام اپ باشد که داخل مدل آن کلاس های کاستوم را ساخته اید.

    برای مثال اگر کلاسهای ساخته شده کاست.م در این آدرس باشند: geo/models.py پس خط اضافه شده در تنظیمات باید به شکل زیر باشد:

    CITIES_LIGHT_APP_NAME = 'geo'

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: 2 دقیقه

    با نام خدا وسلام، ارور no cached version available for offline mode رو ممکن است به هنگام اجرای پروژه باهاش مواجه شوید. این ارور داره میگه به یک ورژنی از گردل نیاز دارد ه شما در حال حاضر آن را ندارید، و چون حال آفلاین شما روشن می باشد، امکان دانلود آن را نیز ندارد و ارور ذیل را به شما نشان می دهد:

    no cached version available for offline mode

    برای حل مشکل تنها کافیست حالت آفلاین گردل را در انردوید استادیو(Android studio) یا IntelijIdea غیر فعال کنید.

    در اندروید استادیو ورژن های جدید ( من در حال حاضر ورژن ۳.۶.۱ را استفاده می کنم و عکس زیر از این ورژن می باشد)، برای غیر فعال کردن کافیست از سمت راست بالا (داک سمت راست)، روی آیکون گردل کلیک کنید تا داک از حالت پین (میخ شده) خارج شود :

    شکل زیر حالت پین شده را نشان می دهد:

    شکل زیر حال از پین خارج شده :

    باید روی آیکون کلیک کرده و از حالت آفلاین آن را خارج کنید تا به صورت زیر شود :

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام، تو این مطلب میخوام به این سوال بپردازم: چگونه اطلاعات اسلات های رم را در لینوکس بدست بیاوریم؟

    خب دستور اول استفاده از DMI Table Decoder است. با استفاده از دستور زیر، شما اطلعتی همچون تعداد اسلات ها و حداکثر مقدار رم رو به شما نمایش می دهد.

    sudo dmidecode -t 16

    برای نمایش اطلاعات کاملتر از دستور زیر استفاده کنید :

    sudo dmidecode -t 17

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام، هنگام برخورد با ارور فوق، به احتمال قوی سایتی که Scrapy را روی آن اجرا می کنید، جلوی فعالیت شما را گرفته است. به قولی شما را بَن کرده است. خزنده شما تلاش می کند robots.txt را بخواند، اما سایت مورد نظر اجازه نمی دهد 🙂

    اول از همه وارد Settings.py شوید و مطمین شوید مقدار ROBOTSTXT_OBEY برابر با False باشد (در نسخه های جدید از Scrapy این مقدار به صورت پیشفرض True است)

    اگر با تغییر فوق، باز هم مشکل داشتید، بهتر است userAgent خود را تغییر دهید، برای نمونه از UserAgent زیر در فایل Settings.pyاستفاده کنید. اگر مشکل حل شد که یا باشد دنبال یه پروکسی باشید که هر دفعه IP شما را عوض بکنه یا هر دفعه UserAgent متفاوت بسازید (در این مورد داخل بلاگ حتما یه پست خواهم گذاشت ، از بالای صفحه اصلی و قسمت جستجو با عبارت scrapy یه سرچی بکنید تا ببینید الان که این مطبی رو میخوانید مطلب مربوط به پروکسی را گذاشتم یا خیر)

    USER_AGENT=’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36′

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام ودرود، بحث ساده ای رو در پیش داریم، تغییر TimeZone در Django. به صورت پیشفرض TimeZone دردیجنگو فعال می باشد.

    برای تغییر TimeZone یا دیگر تنظیمات مربوط به آن باید به فایل Settings.py پروژه دیجنگوتان مراجعه کنید.

    خب تو تصویر فوق ملاحظه می کنید که مقدار USE_TZ برابر با True می باشد. به این معنی که از TimeZoneاستفاده می شود. برای تغییر کافیست مقدار TIME_ZONE = ‘Asia/Tehran’ را تغییر دهید.

    من تایمزون رو برابر با تهران قرار دادم، که هر مقداری می توانید قرار دهید. اینجا می توانید لیست تایمزون ها را ببینید.

  • دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، برای تغییر چینش محصولات در ووکامرس بستگی به نسخه ای از ووکامرس که استفاده می کنید، روش متفاوت است، اگر از نسخه ۳.۳ به بالا استفاده می کنید، کافیست به مسیر زیر بروید:

    Dashboard > Appearance > Customize > WooCommerce > Product Catalog

    برای نسخه های قدیمی تر به این مسیر بروید:

    WooCommerce > Settings > Products > Display

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام، برای به دست آوردن شماره سریال لپتاپ که لینوکس را روی آن اجرا می کنید، کافیست از دستور زیر استفاده کنید :

    sudo dmidecode -s system-serial-number

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام، امروز اومدم سایت رو چک کنم که دیدم هیچ کدوم از پست ها رو نشون نمیده 🙁 وارد هاست و phpmyadmin شدم و جدوا wp_posts را نگاهی انداختم که ارور زیر رو داد:

     - Table './DB_NAME/wp_posts' is marked as crashed and should be repaired 
    

    برای حل مشکل کافیه اون جدولی که مشکل داشت رو repair کرد، تو تصویر زیر روش کار مخصه:

  • دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام، من ارور رو به هنگام افزودن django-cities-light دریافت کردم:

    ImportError: cannot import name 'python_2_unicode_compatible' from 'django.utils.encoding'

    برای این منظور کافیه جایی که python_2_unicode_compatible را import کرده اید ویرایش کنید و به جای django.utils.encoding مقدار six را قرار دهید.

    همانطور که در تصویر زیر ملاحظه می کنید:

    آدرس فایل برای django-cities-light آدرس زیر می باشد:

    cities_light/abstract_models.py

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    من خودم حین نصب pgadmin4 روی سرور اوبونتو و virtualenv دارای پایتون ۳.۷.۱ به این مشکل بر خوردم و کامل ارور به شکل زیر بود:

    (.asemanenv) (base) sadegh_khan@aseman_ecommerce:~/w$ python .asemanenv/lib/python3.7/site-packages/pgadmin4/setup.py 
    Traceback (most recent call last):
      File ".asemanenv/lib/python3.7/site-packages/pgadmin4/setup.py", line 17, in 
        from pgadmin.model import db, User, Version, ServerGroup, Server, \
      File ".asemanenv/lib/python3.7/site-packages/pgadmin4/pgadmin/__init__.py", line 25, in 
        from flask_security import Security, SQLAlchemyUserDatastore, current_user
      File ".asemanenv/lib/python3.7/site-packages/flask_security/__init__.py", line 13, in 
        from .core import Security, RoleMixin, UserMixin, AnonymousUser, current_user
      File ".asemanenv/lib/python3.7/site-packages/flask_security/core.py", line 28, in 
        from .forms import ChangePasswordForm, ConfirmRegisterForm, \
      File ".asemanenv/lib/python3.7/site-packages/flask_security/forms.py", line 17, in 
        from flask_wtf import FlaskForm as BaseForm
      File ".asemanenv/lib/python3.7/site-packages/flask_wtf/__init__.py", line 17, in 
        from .recaptcha import *
      File ".asemanenv/lib/python3.7/site-packages/flask_wtf/recaptcha/__init__.py", line 2, in 
        from .fields import *
      File ".asemanenv/lib/python3.7/site-packages/flask_wtf/recaptcha/fields.py", line 3, in 
        from . import widgets
      File ".asemanenv/lib/python3.7/site-packages/flask_wtf/recaptcha/widgets.py", line 5, in 
        from werkzeug import url_encode
    ImportError: cannot import name 'url_encode' from 'werkzeug' (.asemanenv/lib/python3.7/site-packages/werkzeug/__init__.py)
    

    و اما مشکل از کجاست ؟؟

    مشکل میشه خط زیر :

    ImportError: cannot import name 'url_encode' from 'werkzeug'

    به نظر میرسه که ارور فوق ارور ورژنی باشد (versioning error)، ورژن جدید پکیج werkzeug دیگه دارای url_encode نیست که pgadmin4 داره دنبالش می گرده :))

    راه حل :

    نصب ورژنی پایینتر از ورژن فعلی werkzeug ، مشکل شما را حل خواهد کرد، برای مثال نصب ورژن werkzeug==0.16.0 با ساتفاده از دستور زیر:

    pip install werkzeug==0.16.0

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، ارور ذیل رو ممکن به هنگام نصب یکی از پکیج های پایتون باهاش برخورد کنید 🙂

    FileNotFoundError: [Errno 2] No such file or directory: ‘curl-config’: ‘curl-config’

    من خودم بهنگام نصب پکیج pyspider با ارور فوق برخورد داشتم. اما راه حل چیه؟؟

    خیلی ساده فقط کافیه دستور زیر رو داخل ترمینال اجرا کنید :

    sudo apt install libcurl4-openssl-dev libssl-dev

    قط توجه داشته باشید که ارور میتونه به شکل زیر باشه (در حقیقت ارور فوق داخل ارور زیر باشه):

    Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-install-z0gvhchc/pycurl/

    برای حل ارور فوق باید از دستور زیر استفاده کنید :

    pip install –upgrade setuptools

    اما به احتمال قوی با دستور فوق که برای ارور Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-install-z0gvhchc/pycurl/ استفاده کردید مشکل حل نخواهد شد و باید از همون دستور اولی استفاده کنید :

    sudo apt install libcurl4-openssl-dev libssl-dev

    برای فهم بیشتر اینکه ارور چطور زیر مجموعه یه ارور دیگه باشه، تصویر زیر رو مشاهده کنید:

    ارور های Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-install-z0gvhchc/pycurl/ و FileNotFoundError: [Errno 2] No such file or directory: ‘curl-config’: ‘curl-config’

    همونطور که می بینید ارور اون خط قرمز رنگ هست، منتهی دلیل ارور قرمز رنگ، اروری هست که در بالاتر ذکر شده

  • سلام وقتی دستورات رو توی ترموکس میزنم No such file or directoryمیاره باید چکار کنم هر دستوری میزنم خطا میزنه

    • خوب داداش نصب نداری فایلارو
      termux-change-repoاینو بزن بعد اوکی بعد یه دونه از اونایی که تو لیست بودش اونم بزن اوکی بزن بعد بزن pkg upاینو بزن بعد کد خودتو بزن درس میشه

    • سلام میشه یه مقدار با جزییات بیشتر بگید، دقیق برای انجام چه کاری و دقیق چه دستوری و برای چه کاری که می زنید این ارور رو میده

  • دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    کافیست فقط از دستور زیر استفاده کنید :

    sudo -u postgres psql postgres

    حال باید بعد از علامت #ظاهر شده، عبارت زیر را تایپ و enter کنید :

    \password postgres

    حال رمز جدید را وارد کنید و تمام

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    خب با فرض اینکه ما postgresql به درستی نصب کردیم، منتهی به هنگام نصب psycopg2 با ارور ذیل روبرو بشیم:

    You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application

    برای حل این ارور کافیه دستورات زیر را به ترتیب احرا کنید:

    sudo apt-get install postgresql
    
     sudo apt-get install python-psycopg2
    
    sudo apt-get install libpq-dev


    بهترهست برای اینکه به مشکلی احتمالاً بر نخورید از پیلترشکن استفاده کنید
    پس از سه دستور فوق، مجدد دستور زیر را اجرا کنید:

    pip install psycopg2

  • باسلام وقتتون بخیر
    ببخشید این مطالب برای ویندوز ههم درست هست یا فقط برای لینوکس میباشد
    اگر ممکنه پاسخ دهید
    ممنون

    • برای ویندوز رو متاسفانه اطلاع ندارم،
      داخل لینوکس کتابخانه libpq-dev مشکل را حل میکنه که باید به ترتیب بعد از نصب postgresql و python-psycopg2 نصب بشه

  • دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهحل ارور Syntax error: “(” unexpected

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، ارور Syntax error: “(” unexpected زمانی رخ میده که شما میخواید فایل bash را اجرا کنید ولی shebang در خط اول اون فایل نباشه

    برای حل مشکل کافیه فقط یه عبارت bash قبل از دستور مورد نظر تون بزنید، برای مثال اگر دستور ه صورت زیر بوده:

    ./start.sh

    کافیه bash رو قبل دستور وارد کنید :

    bash ./start.sh

    Tag: shebang

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، یه مشکلی معمولا کاربرها با بلوتوث در سیستم عامل اوبونتو دارند و اون چیه !!

    روشن نشدن بلوتوث !! یا به قولی ظاهرا در تنظیمات روشن شدن ولی در عمل روشن نشدن و Grayبودن آن 🙂

    برای رفع مشکل یه کار خیلی ساده هست کافیه فقط دستور زیر را در ترمینال اجرا کنید :

    sudo service bluetooth restart

    اگر دستور بالا کارساز نبود از دو دستور زیر برای ریست کردن bluetoothدر اوبونتو استفاده کنید:

    sudo rmmod btusb
    
    sudo modprobe btusb

    پس از دو دستور فوق، حتما بلوتوث رو از تنظیمات خاموش و روشن کنید

  • ممنون از راه حلتون من کلی سایت دیگه هم گشتم ولی همش چرت و پرت تحویل ادم میدادند و اصلا به راه حل اشاره نمی کردند

  • دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام، اگر از zshاستفاده می کنید. کافیه مراحل زیر رو برای حل مشکل انجام بدهید:

    ۱- فایل .zshrcرا باز کرده. (این فایل داخل پوشه home شما می باشد – hidden است)

    ۲- خط زیر را به آن اضافه کنید :

    export PATH="/home/username/anaconda3/bin:$PATH"

    توجه کنید که مسیر رو با توجه به محل نصب anaconda تغییر دهید (اگر داخل محل پیشفرض نصب کردید، فقط باید usernameا تغییر دهید)

    ۳- ترمینال را ببندید و باز کنید و یا از دستور زیر استفاده کنید:

    source ~/.zshrc

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقه

    با سلام و درود، امروز میخوام در مورد ارور:

    No toolchains found in the NDK toolchains folder for ABI with prefix mips64el-linux-android
    

    یا ارور زیر صحبت کنم:

    No toolchains found in the NDK toolchains folder for ABI with prefix mipsel-linux-android
    

    برای رفع این ارور کافیه تا گردل gradle خود رو به ورژن ۳.۱ یا بالاتر بروزرسانی کنید.

    برای این منظور کافیه فایل Build.gradle را باز کنید و خط مشابه زیر را نسخه اش را بالاتر از ۳.۱ کنید :

    classpath 'com.android.tools.build:gradle:3.2.1'

    الان خط بالایی نسخه ۳.۲.۱ هست که منجر به رف ارور میشه. فقط توجه داشته باشید که اگر از Ndk استفاده می کنید باید ورژن اون رو نیز بالاتر از ۱.۲.۵۱ انتخاب کنید (ورژن کوتلین – kotlin نیز از طریق همان فایل build.gradlerقابل تغییر می باشد)

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهپس از بروزرسانی به اندروید ۳ و گردل ۳ اگه یه سر به فایل build.gradle بزنید می بیندی که تمام compile  ها شدند implementation که این یکی از تغییراتی است که گوگل با انتشار گردل ۳ اون رو در اینجا ارائه کرده. و از این به بعد به جای compile باید از implementationاستفاده بشه.

    در ذیل نیز قسمتی از اسناد گردل در این مورد رو می بینید: 

    dependencies {
        api 'commons-httpclient:commons-httpclient:3.1'
        implementation 'org.apache.commons:commons-lang3:3.5' 
    }

    Dependencies appearing in the api configurations will be transitively exposed to consumers of the library, and as such will appear on the compile classpath of consumers.

    Dependencies found in the implementation configuration will, on the other hand, not be exposed to consumers, and therefore not leak into the consumers’ compile classpath. This comes with several benefits:

    • dependencies do not leak into the compile classpath of consumers anymore, so you will never accidentally depend on a transitive dependency
    • faster compilation thanks to reduced classpath size
    • less recompilations when implementation dependencies change: consumers would not need to be recompiled
    • cleaner publishing: when used in conjunction with the new maven-publish plugin, Java libraries produce POM files that distinguish exactly between what is required to compile against the library and what is required to use the library at runtime (in other words, don’t mix what is needed to compile the library itself and what is needed to compile against the library).

    The compile configuration still exists but should not be used as it will not offer the guarantees that the api and implementation configurations provide.

    و اما تغییرات به شکل زیر می شوند:

    • compile تبدیل به implementation
    • testCompile تبدیل به testImplementation
    • debugCompile تبدیل به debugImplementation
    • androidTestCompile تبدیل به androidTestImplementation
    • compileOnly اما هنوز پا برجاست :) 

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهبا سلام و درود، امروز میخوام یه اکستنشن خوب برای Gnomeمعرفی کنم و اونم تقویم پارسی یا جلالی برای لینوکس 🙂

     

    صفحه گیت هاب : امید راد

    روش نصب سادش با نصب اکستنشن از Gnome Extension با این آدرس هست.

    امیدوارم استفاده کنید ازش.

     

     

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهبا نام خدا و سلام. میخوام یه روش ساده توسط Terminal  برای دانلود کلیپ های یوتیوب (Youtube) معرفی کنم خدمتتون.

    قدم اول با استفاده از دستور زیر youtube-dl را دانلود کنید:

    sudo apt-get install youtube-dl
    

    حال داخل ترمینال ابتدا دستور  youtube-dl بزنید و سپس یه فاصله (space) و سپس لینک مورد نظرتون رو بنویسید  و تمام

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهخب هنگام run کردن سرور Django یکی از ارور های رایج  ModuleNotFoundError می باشد. که داره میگه ماژولی را در کد استفاده کردیم که نصب نیست و راه حل نصب ماژول مورد نظر هست. در ادامه یه چند تا از ماژول های رایج و کد نصبشون جهت حل مشکل مورد نظر را آوردم:

    مشکل : ModuleNotFoundError: No module named ‘httplib2’

    دستور جهت رفع ارور : 

    pip3 install httplib2 --upgrade
    

    مشکل : ModuleNotFoundError: No module named ‘oauth2client’

    دستور جهت رفع ارور : 

    pip3 install --upgrade oauth2client
    

    مشکل : ModuleNotFoundError: No module named ‘apiclient’

    دستور جهت رفع ارور: 

    pip3 install --upgrade google-api-python-client

     

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهحل ارور ModuleNotFoundError: No module named ‘requests’ در پایتون.

    خب ارور فوق مشخصه که داره میگه ماژولی با نام requests رو نصب نداریم. برای نصب کافیه دستور زیر را بزنیم:

    sudo pip3 install requests

    اگر در هنگام نصب با مشکلی مشابه زیر مواجه شدیم:

    sudo -H problem
    sudo -H problem

    من از این دستور استفاده کردم و مشکل حل شد :

    easy_install requests
    

    یک راهکار دیگه نیز میتونه باشه و اینکه شما سرور را با python اجرا کردید در صورتی که با pyhton3 اگر اجرا کنید مشکل حل خواهد شد (برای مثال):

    python3 manage.py runserver 8002

     

  • سلام من توی vscode یه تابع مینویسم و این پیغام رو میده
    python.python-2023.10.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher’ ‘56229’ ‘–‘ ‘-m’ ‘enter-your-module-name’
    C:\Users\Ya Ali\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\python.exe: No module named enter-your-module-name
    PS D:\my tools\python>

  • سلام
    من از هر ماژولی که دانلود میکنم با خطای ModuleNotFoundError مواجه میشم بعد که از دستور pip list استفاده میکنم میبینم که اسم ماژول هست و کامل نصب شده
    ولی نمیدونم چرا فراخاونی نمی کنه میشه یک راهنمایی کنید؟ اخرین نسخه pip هم نصب کردم یعنی 23.1.2
    راه حلی دارید؟

  • سلام من برای اجرای یک بات تلگرام با پایتون وقتی دستور اجرا رو میفرستم با همچین خطایی مواجه میشم من از پایتون3.8 استفاده میکنم
    Traceback (most recent call
    last):
    File “bot.py”, line 2, in
    from config import Config

    File “/root/MDOMultiBot/config.py”, line 4, in
    class Config:
    File “//root/MDOMultiBot/config.y”, line 5, in Config
    API_ID = int(os.environ.get(“7248171”))
    TypeError: int() argument must be a string, a bytes-like object or a number, not ‘NoneType’
    تمام ورودی های فایل کانفیگ رو هم درست نوشتم اما همش همین خطا رو میده

    • سلام و درود، با توجه به اروری که شما فرستید، مشکل جای دیگه است. تا کد رو ندید نمیشه گفت مشکل چیه، ولی باتوجه به ارور گفته شده، شما یه آرگومان از نوع intدارید که باید string شی ای از نوع byte یا یک عدد باشه ولی شما احتمالا یه شی خالی بهش دادید که NoneType رو عنوان کرده

  • سلام
    من پایتونم 3.8.3 هست … وقتی ران می کنم همچین اروری میده

    Traceback (most recent call last):
    File “C:/Users/IMAN/AppData/Local/Programs/Python/Python38/222.py”, line 3, in
    import requests
    ModuleNotFoundError: No module named ‘requests’

    البته در همین پست هم ظاهرا شما همین مشکل رو برای رفعش آموزش دادین … ولی نمیدونم اینهایی که گفتین رو دقیقا باید کجا وارد کنم ؟

    ممنون میشم راهنمائیم کنین

    • سلام، اگر داخل محیط لینوکس کار می کنید، کافیست محیط ترمینال را باز کنید و با دسترسی sudo دستوری که بالا ذکر شده را اجرا کنید.
      sudo pip3 install requests

      نکته:
      با توجه به اروری که نوشتید : C:/Users/IMAN/AppData/Local/Programs/Python/Python38/222.py تو محیط ویندوز در حال اجرای پایتون هستید، داخل ویندوز کافیست CMD (command prompt) را باز کنید و دستور را اجرا کنید .
      اگر هم pip را نصب ندارید، نصبش داخل ویندوز آموزش دیگه ای داره، اگر نیاز به آموزش نصبش داشتید بگید تا نصبش را کامل توضیح بدم.

  • سلام/ خیلی ممنون که وقت گذاشتید. بله مشکل error حل شد ولی الان ماژول های function و نمیشناسه و هیچ کدوم و نمیتونه ایمپورت کنه (راه حلی هست؟)
    ImportError Traceback (most recent call last)
    in
    8 # create_envelope calculates the surface of the first n particles from x,y, given r
    9 # create_envelope_selected calculates the surface only for the particles with indices given in nlist
    —> 10 from functions import circles,deposit_particles,create_envelope,create_envelope_selected
    11
    12 # interactions
    ImportError: cannot import name ‘circles’ from ‘functions’ (C:\Users\Win 8.1\Anaconda3\lib\site-packages\functions.py)

  • سلام، از پایتون ۳ استفاده می کنید؟ اگر آره، اجازه استفاده از پرانتز در آنپک کردن آرگومان ها در لامبدا برای پایتون ۳ وجود نداره. احتمال قوی ماژول مورد استفاده شما از پایتون ۳ پشتیبانی نمیکنه.
    در کل در پایتون ۳ بهنگام استفاده از لامبدا، باید بجای استفاده با پرانتز:
    lambda (k, v): (-v, k)
    به صورت زیر از لامبدا استفاده کنید:
    lambda kv: (-kv[1], kv[0])

    میتونید، خط ۶۸ از function.pyرا به همین صورت اصلاح کنید و ببینید مشکل حل میشه یا خیر

  • سلام/من در ایمپرت یه مودول دچار مشکل شدم البته نصب کردم ولی invalid syntax میده
    from functions import circles,deposit_particles,create_envelope,create_envelope_selected
    این ارور و میده
    from functions import circles,deposit_particles,create_envelope,create_envelope_selected

    File “C:\Users\Win 8.1\Anaconda3\lib\site-packages\functions.py”, line 68
    nodes = tuple(map(lambda (k, v): process_node(inner, k, v),
    ^
    SyntaxError: invalid syntax
    مشکل کجاست؟؟؟؟؟

  • دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهبا سلام برای بستن پورت مشخص در لینوکس کافی است از دستور زیر استفاده نمایید (برای مثال اگر قصد بستن پورت 8002 را داشته باشیم):

    sudo kill $(sudo lsof -t -i:8002)

     

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهبا نام خدا و سلام، من خودم ترجیح میدم postman رو به عنوان یه اپ native  روی سیستمم داشته باشم و نه به صورت یه app روی google chrome. برای اینکار ابتدا ostman را برای لینوکس دانلود کنید. برا دانلود از اینجا اقدام کنید.

    البته به جای دانلود می توانید دستورات زیر را نیز بزنید که جوابگو نیاز شما هست.

    wget https://dl.pstmn.io/download/latest/linux64 -O postman.tar.gz
    sudo tar -xzf postman.tar.gz -C /opt
    rm postman.tar.gz
    sudo ln -s /opt/Postman/Postman /usr/bin/postman

    دستورات بالا آخرین نسخه برای لنوکس ۶۴ بیت را دانلود می کنه سپس فایل را استخراج می کنه ، فایل دانلود شده را حذف و یه لینک برای دسترسی به فایل استخراج شده می سازد.

    حال برای اینکه فایل postmanبه unity desktopنیز اضافه بشه، کافیه دستورات زیر را درون terminal ک\ی کنید و سپس اینتر بزنید:

    cat > ~/.local/share/applications/postman.desktop <<EOL
    [Desktop Entry]
    Encoding=UTF-8
    Name=Postman
    Exec=postman
    Icon=/opt/Postman/resources/app/assets/icon.png
    Terminal=false
    Type=Application
    Categories=Development;
    EOL

     

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهبا نام خدا و سلام، برای نصب فایل ها با فرمت .bin در محیط لینوکس (اوبونتو) کافیه درون دایرکتوری که فایل با فرمت .binوجود داره دستور زیر را اجرا کنید:

    chmod a+x name_of_file.bin

    دقت کنید name_of_file.bin همون فایل مورد نظرتون هست که قصد نصب کردنش رو دارید.

    سپس دستور زیر را اجرا کنید:

    ./name_of_file.bin

    به همین سادگی 

     

     

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهبا سلام، خب ارور واضحه که داره میگه شما گیت را نصب ندارید و برای حل این ارور کافیه گیت را نصب کنید، برای نصب در لینوکس اوبونتو کافیه دستور زیر را استفاده کنید:

    sudo apt-get install git
    
    

    اگر روی ویندوز نیز این ارور را داشتید مطمین بشید که گیت به درستی نصب شده و داخل path نیز تنظیم شده باشد

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهبا سلام، اگر هنگام کلیک کردن بر روی دکمه run از اندروید استادیو با پیام “Please select Android SDK” برخوردید و صفحه زیر براتون نمایش داده شد:

    برای حل این مشکل کافیه به این مسیر بروید: Tools -> Android -> Sync Project with Gradle Files  (این مسیر برای اندروید استادیو ۳.۰.۱ می باشد)

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهبا سلام، ممکن نخواید آهنگ های یک فولدر مشخصی درون playerموبایل اندروییدیتان سینک بشه (برای مثال فایل های ضبط شده مکالمات تان)، برای حل این مشکل کافیه داخل فولدر مورد نظرتان یک فایل با نام (.nomedia) (اولش باید نقطه (.) باشد و سپس nomedia ، در حقیقت یک پسوند به حساب میاد) بسازید.

     

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهاگر هنگام باز کردن درایو با فرمت NTFS ، مانند هارد درایوهای اکسترنال به اروری مشابه ارور زیر بر خورد کردید:

    Failed to mount ‘/dev/sdc2’: Input/output error NTFS is either inconsistent,

    or there is a hardware fault, or it’s a SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows then reboot into Windows twice.

    The usage of the /f parameter is very important! If the device is a SoftRAID/FakeRAID then first activate it and mount a different device under the /dev/mapper/ directory, (e.g. /dev/mapper/nvidia_eahaabcc1). Please see the ‘dmraid’ documentation for more details.

    برای حل ارور زیر کافیه ntfs-3g را نصب کنید، برای اینکار دستور زیر را داخل ترمینال بزنید:

    sudo apt-get install ntfs-3g

    حال باید دستور زیر را بزنید:

    ntfsfix [options] device که به جای device باید نام درایو مشکل دار را بزنید و Option را نیز خالی بگذارید، برای مثال با توجه به ارور فوق دستور به صورت زیر می شود:

    sudo ntfsfix /dev/sdc2

     

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهبا سلام، برای تغییر برنامه های پیش فرض (برای مثال تغییر video player به vlc) کافیست وارد system setting بشید، سپس وارد details شوید و از آنجا نیز Default Applications را انتخاب کنید.

    لیستی از برنامه های پیش فرض رو ملاحظه خواهید کرد که می توانید برای هر کاری برنامه مورد نظر خودتون رو انتخاب کنید.

  • دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهبا سلام، داخل fragment اگر بخواهید به context دسترسی داشته باشید اگر از getApplicationContext() استفاده کنید به ارور زیر بر می خورید:

    The method getApplicationContext() is undefined

    برای حل مشکل کافیه به activity که شامل fragment میشه دسترسی پیدا کنید و  برای این کار کافیه از getActivity() استفاده کنید و د رنتیجه داریم:

    getActivity().getApplicationContext()

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهبا سلام، خب یکی از ارور هایی که هنگام استفاده از findViewById در fragment بهش بر می خوریم ارور زیر هست:

    cannot resolve method findviewbyid

    برای حل مشکل کافیه که قبل از findviewbyid از getView() استفاده کرد (داخل onViewCreated ). برای نمونه کد زیر را ببینید:

    @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            //return inflater.inflate(R.layout.fragment_t12, container, false);
    
            recyclerView = (RecyclerView) getView().findViewById(R.id.recycler_view);
    
            return view;
        }

    با این کار view ریشه از fragment برگشت داده می شود (return) .

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    زمان مطالعه: < 1 دقیقهتفاوت احرازهویت با مجوز در چیست؟

    • Authentication – احراز هویت: به فرآیندی که در آن به تایید این که شما چه کسی هستید می پردازد، گفته می شود. زمانی که داخل PC خودتون با استفاده از نام کاربری و رمز عبور وارد می شوید (Log in)، شما Authentication شده اید.
    • Authorization  – مجوز : به فرآیندی که در آن به تایید اینکه شما به چه چیز هایی دسترسی دارید می پردازد، مجوز گفته می شود. دسترسی به یک منبع (به عنوان مثال دسترسی به یک دایرکتوری روی دیسک سخت) با توجه به اینکه مجوز هایش به طوری پیکربندی شده است که به شما مجوز دسترسی را داده است.

     

     

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *